123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259[@@@warning"-9-27"]includeCtypesletliftx=xopenCtypes_staticletrecfield:typeta.ttyp->string->atyp->(a,t)field=funsfnameftype->matchs,fnamewith|Struct({tag="st_mysql_time";_}ass'),"second_part"->letf={ftype;fname;foffset=24}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_time";_}ass'),"second"->letf={ftype;fname;foffset=20}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_time";_}ass'),"minute"->letf={ftype;fname;foffset=16}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_time";_}ass'),"hour"->letf={ftype;fname;foffset=12}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_time";_}ass'),"day"->letf={ftype;fname;foffset=8}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_time";_}ass'),"month"->letf={ftype;fname;foffset=4}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_time";_}ass'),"year"->letf={ftype;fname;foffset=0}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_field";_}ass'),"type"->letf={ftype;fname;foffset=112}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_field";_}ass'),"flags"->letf={ftype;fname;foffset=100}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_field";_}ass'),"max_length"->letf={ftype;fname;foffset=64}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_field";_}ass'),"name"->letf={ftype;fname;foffset=0}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_bind";_}ass'),"is_unsigned"->letf={ftype;fname;foffset=101}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_bind";_}ass'),"buffer_type"->letf={ftype;fname;foffset=96}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_bind";_}ass'),"buffer_length"->letf={ftype;fname;foffset=64}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_bind";_}ass'),"error"->letf={ftype;fname;foffset=24}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_bind";_}ass'),"buffer"->letf={ftype;fname;foffset=16}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_bind";_}ass'),"is_null"->letf={ftype;fname;foffset=8}in(s'.fields<-BoxedFieldf::s'.fields;f)|Struct({tag="st_mysql_bind";_}ass'),"length"->letf={ftype;fname;foffset=0}in(s'.fields<-BoxedFieldf::s'.fields;f)|View{ty;_},_->let{ftype;foffset;fname}=fieldtyfnameftypein{ftype;foffset;fname}|_->failwith("Unexpected field "^fname)letrecseal:typea.atyp->unit=function|Struct({tag="st_mysql_time";spec=Incomplete_;_}ass')->s'.spec<-Complete{size=40;align=8}|Struct({tag="st_mysql_field";spec=Incomplete_;_}ass')->s'.spec<-Complete{size=128;align=8}|Struct({tag="st_mysql_bind";spec=Incomplete_;_}ass')->s'.spec<-Complete{size=112;align=8}|Struct{tag;spec=Complete_;_}->raise(ModifyingSealedTypetag)|Union{utag;uspec=Some_;_}->raise(ModifyingSealedTypeutag)|View{ty;_}->sealty|_->raise(Unsupported"Sealing a non-structured type")type'aconst='aletconstant(typet)name(t:ttyp):t=matcht,namewith|Ctypes_static.PrimitiveCstubs_internals.Uint,"UNSIGNED_FLAG"->Unsigned.UInt.of_string"32"|Ctypes_static.PrimitiveCstubs_internals.Uint,"NOT_NULL_FLAG"->Unsigned.UInt.of_string"1"|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_DATA_TRUNCATED"->101|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_NO_DATA"->100|Ctypes_static.PrimitiveCstubs_internals.Int,"STMT_ATTR_PREFETCH_ROWS"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"STMT_ATTR_CURSOR_TYPE"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"STMT_ATTR_UPDATE_MAX_LENGTH"->0|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_TIMESTAMP"->7|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_DATETIME"->12|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_DATE"->10|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_TIME"->11|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_BIT"->16|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_LONG_BLOB"->251|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_MEDIUM_BLOB"->250|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_BLOB"->252|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_TINY_BLOB"->249|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_VAR_STRING"->253|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_STRING"->254|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_NEWDECIMAL"->246|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_DECIMAL"->0|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_DOUBLE"->5|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_LONGLONG"->8|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_FLOAT"->4|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_LONG"->3|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_INT24"->9|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_SHORT"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_YEAR"->13|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_TINY"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_TYPE_NULL"->6|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_WAIT_TIMEOUT"->8|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_WAIT_EXCEPT"->4|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_WAIT_WRITE"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_WAIT_READ"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPTION_MULTI_STATEMENTS_OFF"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPTION_MULTI_STATEMENTS_ON"->0|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_REMEMBER_OPTIONS"->-2147483648l|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_SSL"->2048l|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_ODBC"->64l|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_NO_SCHEMA"->16l|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_MULTI_STATEMENTS"->65536l|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_MULTI_RESULTS"->131072l|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_LOCAL_FILES"->128l|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_INTERACTIVE"->1024l|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_IGNORE_SPACE"->256l|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_IGNORE_SIGPIPE"->4096l|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_FOUND_ROWS"->2l|Ctypes_static.PrimitiveCstubs_internals.Int32_t,"CLIENT_COMPRESS"->32l|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_NONBLOCK"->6000|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_ENABLE_CLEARTEXT_PLUGIN"->36|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_SERVER_PUBLIC_KEY"->35|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_CONNECT_ATTR_DELETE"->34|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_CONNECT_ATTR_ADD"->33|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_CONNECT_ATTR_RESET"->32|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_SSL_CRLPATH"->31|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_SSL_CRL"->30|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_SSL_CIPHER"->29|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_SSL_CAPATH"->28|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_SSL_CA"->27|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_SSL_CERT"->26|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_SSL_KEY"->25|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_BIND"->24|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_DEFAULT_AUTH"->23|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_PLUGIN_DIR"->22|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_SSL_VERIFY_SERVER_CERT"->21|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_RECONNECT"->20|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_REPORT_DATA_TRUNCATION"->19|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_SECURE_AUTH"->18|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_WRITE_TIMEOUT"->12|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_READ_TIMEOUT"->11|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_SHARED_MEMORY_BASE_NAME"->10|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_PROTOCOL"->9|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_LOCAL_INFILE"->8|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_SET_CHARSET_NAME"->7|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_SET_CHARSET_DIR"->6|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_READ_DEFAULT_GROUP"->5|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_READ_DEFAULT_FILE"->4|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_INIT_COMMAND"->3|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_NAMED_PIPE"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_COMPRESS"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_OPT_CONNECT_TIMEOUT"->0|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_PROTOCOL_MEMORY"->4|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_PROTOCOL_PIPE"->3|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_PROTOCOL_SOCKET"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_PROTOCOL_TCP"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"MYSQL_PROTOCOL_DEFAULT"->0|_,s->failwith("unmatched constant: "^s)letenum(typea)name?typedef?unexpected(alist:(a*int64)list)=matchnamewith|s->failwith("unmatched enum: "^s)