wasitypes.inc 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 2020,2021 by the Free Pascal development team.
  4. Types and consts for The WebAssembly System Interface (WASI).
  5. See the file COPYING.FPC, included in this distribution,
  6. for details about the copyright.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10. **********************************************************************}
  11. type
  12. size_t = longint;
  13. PPUInt8 = ^PUInt8;
  14. P__wasi_size_t = ^__wasi_size_t;
  15. __wasi_size_t = longint;
  16. P__wasi_filesize_t = ^__wasi_filesize_t;
  17. __wasi_filesize_t = UInt64;
  18. P__wasi_timestamp_t = ^__wasi_timestamp_t;
  19. __wasi_timestamp_t = UInt64;
  20. P__wasi_clockid_t = ^__wasi_clockid_t;
  21. __wasi_clockid_t = UInt32;
  22. const
  23. __WASI_CLOCKID_REALTIME = 0;
  24. __WASI_CLOCKID_MONOTONIC = 1;
  25. __WASI_CLOCKID_PROCESS_CPUTIME_ID = 2;
  26. __WASI_CLOCKID_THREAD_CPUTIME_ID = 3;
  27. type
  28. P__wasi_errno_t = ^__wasi_errno_t;
  29. __wasi_errno_t = UInt16;
  30. const
  31. __WASI_ERRNO_SUCCESS = 0;
  32. __WASI_ERRNO_2BIG = 1;
  33. __WASI_ERRNO_ACCES = 2;
  34. __WASI_ERRNO_ADDRINUSE = 3;
  35. __WASI_ERRNO_ADDRNOTAVAIL = 4;
  36. __WASI_ERRNO_AFNOSUPPORT = 5;
  37. __WASI_ERRNO_AGAIN = 6;
  38. __WASI_ERRNO_ALREADY = 7;
  39. __WASI_ERRNO_BADF = 8;
  40. __WASI_ERRNO_BADMSG = 9;
  41. __WASI_ERRNO_BUSY = 10;
  42. __WASI_ERRNO_CANCELED = 11;
  43. __WASI_ERRNO_CHILD = 12;
  44. __WASI_ERRNO_CONNABORTED = 13;
  45. __WASI_ERRNO_CONNREFUSED = 14;
  46. __WASI_ERRNO_CONNRESET = 15;
  47. __WASI_ERRNO_DEADLK = 16;
  48. __WASI_ERRNO_DESTADDRREQ = 17;
  49. __WASI_ERRNO_DOM = 18;
  50. __WASI_ERRNO_DQUOT = 19;
  51. __WASI_ERRNO_EXIST = 20;
  52. __WASI_ERRNO_FAULT = 21;
  53. __WASI_ERRNO_FBIG = 22;
  54. __WASI_ERRNO_HOSTUNREACH = 23;
  55. __WASI_ERRNO_IDRM = 24;
  56. __WASI_ERRNO_ILSEQ = 25;
  57. __WASI_ERRNO_INPROGRESS = 26;
  58. __WASI_ERRNO_INTR = 27;
  59. __WASI_ERRNO_INVAL = 28;
  60. __WASI_ERRNO_IO = 29;
  61. __WASI_ERRNO_ISCONN = 30;
  62. __WASI_ERRNO_ISDIR = 31;
  63. __WASI_ERRNO_LOOP = 32;
  64. __WASI_ERRNO_MFILE = 33;
  65. __WASI_ERRNO_MLINK = 34;
  66. __WASI_ERRNO_MSGSIZE = 35;
  67. __WASI_ERRNO_MULTIHOP = 36;
  68. __WASI_ERRNO_NAMETOOLONG = 37;
  69. __WASI_ERRNO_NETDOWN = 38;
  70. __WASI_ERRNO_NETRESET = 39;
  71. __WASI_ERRNO_NETUNREACH = 40;
  72. __WASI_ERRNO_NFILE = 41;
  73. __WASI_ERRNO_NOBUFS = 42;
  74. __WASI_ERRNO_NODEV = 43;
  75. __WASI_ERRNO_NOENT = 44;
  76. __WASI_ERRNO_NOEXEC = 45;
  77. __WASI_ERRNO_NOLCK = 46;
  78. __WASI_ERRNO_NOLINK = 47;
  79. __WASI_ERRNO_NOMEM = 48;
  80. __WASI_ERRNO_NOMSG = 49;
  81. __WASI_ERRNO_NOPROTOOPT = 50;
  82. __WASI_ERRNO_NOSPC = 51;
  83. __WASI_ERRNO_NOSYS = 52;
  84. __WASI_ERRNO_NOTCONN = 53;
  85. __WASI_ERRNO_NOTDIR = 54;
  86. __WASI_ERRNO_NOTEMPTY = 55;
  87. __WASI_ERRNO_NOTRECOVERABLE = 56;
  88. __WASI_ERRNO_NOTSOCK = 57;
  89. __WASI_ERRNO_NOTSUP = 58;
  90. __WASI_ERRNO_NOTTY = 59;
  91. __WASI_ERRNO_NXIO = 60;
  92. __WASI_ERRNO_OVERFLOW = 61;
  93. __WASI_ERRNO_OWNERDEAD = 62;
  94. __WASI_ERRNO_PERM = 63;
  95. __WASI_ERRNO_PIPE = 64;
  96. __WASI_ERRNO_PROTO = 65;
  97. __WASI_ERRNO_PROTONOSUPPORT = 66;
  98. __WASI_ERRNO_PROTOTYPE = 67;
  99. __WASI_ERRNO_RANGE = 68;
  100. __WASI_ERRNO_ROFS = 69;
  101. __WASI_ERRNO_SPIPE = 70;
  102. __WASI_ERRNO_SRCH = 71;
  103. __WASI_ERRNO_STALE = 72;
  104. __WASI_ERRNO_TIMEDOUT = 73;
  105. __WASI_ERRNO_TXTBSY = 74;
  106. __WASI_ERRNO_XDEV = 75;
  107. __WASI_ERRNO_NOTCAPABLE = 76;
  108. type
  109. P__wasi_rights_t = ^__wasi_rights_t;
  110. __wasi_rights_t = UInt64;
  111. const
  112. __WASI_RIGHTS_FD_DATASYNC = 1;
  113. __WASI_RIGHTS_FD_READ = 2;
  114. __WASI_RIGHTS_FD_SEEK = 4;
  115. __WASI_RIGHTS_FD_FDSTAT_SET_FLAGS = 8;
  116. __WASI_RIGHTS_FD_SYNC = 16;
  117. __WASI_RIGHTS_FD_TELL = 32;
  118. __WASI_RIGHTS_FD_WRITE = 64;
  119. __WASI_RIGHTS_FD_ADVISE = 128;
  120. __WASI_RIGHTS_FD_ALLOCATE = 256;
  121. __WASI_RIGHTS_PATH_CREATE_DIRECTORY = 512;
  122. __WASI_RIGHTS_PATH_CREATE_FILE = 1024;
  123. __WASI_RIGHTS_PATH_LINK_SOURCE = 2048;
  124. __WASI_RIGHTS_PATH_LINK_TARGET = 4096;
  125. __WASI_RIGHTS_PATH_OPEN = 8192;
  126. __WASI_RIGHTS_FD_READDIR = 16384;
  127. __WASI_RIGHTS_PATH_READLINK = 32768;
  128. __WASI_RIGHTS_PATH_RENAME_SOURCE = 65536;
  129. __WASI_RIGHTS_PATH_RENAME_TARGET = 131072;
  130. __WASI_RIGHTS_PATH_FILESTAT_GET = 262144;
  131. __WASI_RIGHTS_PATH_FILESTAT_SET_SIZE = 524288;
  132. __WASI_RIGHTS_PATH_FILESTAT_SET_TIMES = 1048576;
  133. __WASI_RIGHTS_FD_FILESTAT_GET = 2097152;
  134. __WASI_RIGHTS_FD_FILESTAT_SET_SIZE = 4194304;
  135. __WASI_RIGHTS_FD_FILESTAT_SET_TIMES = 8388608;
  136. __WASI_RIGHTS_PATH_SYMLINK = 16777216;
  137. __WASI_RIGHTS_PATH_REMOVE_DIRECTORY = 33554432;
  138. __WASI_RIGHTS_PATH_UNLINK_FILE = 67108864;
  139. __WASI_RIGHTS_POLL_FD_READWRITE = 134217728;
  140. __WASI_RIGHTS_SOCK_SHUTDOWN = 268435456;
  141. type
  142. P__wasi_fd_t = ^__wasi_fd_t;
  143. __wasi_fd_t = longint;
  144. P__wasi_iovec_t = ^__wasi_iovec_t;
  145. __wasi_iovec_t = record
  146. buf: PUInt8;
  147. buf_len: __wasi_size_t;
  148. end;
  149. P__wasi_ciovec_t = ^__wasi_ciovec_t;
  150. __wasi_ciovec_t = record
  151. buf: PUInt8;
  152. buf_len: __wasi_size_t;
  153. end;
  154. P__wasi_filedelta_t = ^__wasi_filedelta_t;
  155. __wasi_filedelta_t = Int64;
  156. P__wasi_whence_t = ^__wasi_whence_t;
  157. __wasi_whence_t = UInt8;
  158. const
  159. __WASI_WHENCE_SET = 0;
  160. __WASI_WHENCE_CUR = 1;
  161. __WASI_WHENCE_END = 2;
  162. type
  163. P__wasi_dircookie_t = ^__wasi_dircookie_t;
  164. __wasi_dircookie_t = UInt64;
  165. P__wasi_dirnamlen_t = ^__wasi_dirnamlen_t;
  166. __wasi_dirnamlen_t = UInt32;
  167. P__wasi_inode_t = ^__wasi_inode_t;
  168. __wasi_inode_t = UInt64;
  169. P__wasi_filetype_t = ^__wasi_filetype_t;
  170. __wasi_filetype_t = UInt8;
  171. const
  172. __WASI_FILETYPE_UNKNOWN = 0;
  173. __WASI_FILETYPE_BLOCK_DEVICE = 1;
  174. __WASI_FILETYPE_CHARACTER_DEVICE = 2;
  175. __WASI_FILETYPE_DIRECTORY = 3;
  176. __WASI_FILETYPE_REGULAR_FILE = 4;
  177. __WASI_FILETYPE_SOCKET_DGRAM = 5;
  178. __WASI_FILETYPE_SOCKET_STREAM = 6;
  179. __WASI_FILETYPE_SYMBOLIC_LINK = 7;
  180. type
  181. P__wasi_dirent_t = ^__wasi_dirent_t;
  182. __wasi_dirent_t = record
  183. d_next: __wasi_dircookie_t;
  184. d_ino: __wasi_inode_t;
  185. d_namlen: __wasi_dirnamlen_t;
  186. d_type: __wasi_filetype_t;
  187. end;
  188. P__wasi_advice_t = ^__wasi_advice_t;
  189. __wasi_advice_t = UInt8;
  190. const
  191. __WASI_ADVICE_NORMAL = 0;
  192. __WASI_ADVICE_SEQUENTIAL = 1;
  193. __WASI_ADVICE_RANDOM = 2;
  194. __WASI_ADVICE_WILLNEED = 3;
  195. __WASI_ADVICE_DONTNEED = 4;
  196. __WASI_ADVICE_NOREUSE = 5;
  197. type
  198. P__wasi_fdflags_t = ^__wasi_fdflags_t;
  199. __wasi_fdflags_t = UInt16;
  200. const
  201. __WASI_FDFLAGS_APPEND = 1;
  202. __WASI_FDFLAGS_DSYNC = 2;
  203. __WASI_FDFLAGS_NONBLOCK = 4;
  204. __WASI_FDFLAGS_RSYNC = 8;
  205. __WASI_FDFLAGS_SYNC = 16;
  206. type
  207. P__wasi_fdstat_t = ^__wasi_fdstat_t;
  208. __wasi_fdstat_t = record
  209. fs_filetype: __wasi_filetype_t;
  210. fs_flags: __wasi_fdflags_t;
  211. fs_rights_base: __wasi_rights_t;
  212. fs_rights_inheriting: __wasi_rights_t;
  213. end;
  214. type
  215. P__wasi_device_t = ^__wasi_device_t;
  216. __wasi_device_t = UInt64;
  217. P__wasi_fstflags_t = ^__wasi_fstflags_t;
  218. __wasi_fstflags_t = UInt16;
  219. const
  220. __WASI_FSTFLAGS_ATIM = 1;
  221. __WASI_FSTFLAGS_ATIM_NOW = 2;
  222. __WASI_FSTFLAGS_MTIM = 4;
  223. __WASI_FSTFLAGS_MTIM_NOW = 8;
  224. type
  225. P__wasi_lookupflags_t = ^__wasi_lookupflags_t;
  226. __wasi_lookupflags_t = UInt32;
  227. const
  228. __WASI_LOOKUPFLAGS_SYMLINK_FOLLOW = 1;
  229. type
  230. P__wasi_oflags_t = ^__wasi_oflags_t;
  231. __wasi_oflags_t = UInt16;
  232. const
  233. __WASI_OFLAGS_CREAT = 1;
  234. __WASI_OFLAGS_DIRECTORY = 2;
  235. __WASI_OFLAGS_EXCL = 4;
  236. __WASI_OFLAGS_TRUNC = 8;
  237. type
  238. P__wasi_linkcount_t = ^__wasi_linkcount_t;
  239. __wasi_linkcount_t = UInt64;
  240. P__wasi_filestat_t = ^__wasi_filestat_t;
  241. __wasi_filestat_t = record
  242. dev: __wasi_device_t;
  243. ino: __wasi_inode_t;
  244. filetype: __wasi_filetype_t;
  245. nlink: __wasi_linkcount_t;
  246. size: __wasi_filesize_t;
  247. atim: __wasi_timestamp_t;
  248. mtim: __wasi_timestamp_t;
  249. ctim: __wasi_timestamp_t;
  250. end;
  251. P__wasi_userdata_t = ^__wasi_userdata_t;
  252. __wasi_userdata_t = UInt64;
  253. P__wasi_eventtype_t = ^__wasi_eventtype_t;
  254. __wasi_eventtype_t = UInt8;
  255. const
  256. __WASI_EVENTTYPE_CLOCK = 0;
  257. __WASI_EVENTTYPE_FD_READ = 1;
  258. __WASI_EVENTTYPE_FD_WRITE = 2;
  259. type
  260. P__wasi_eventrwflags_t = ^__wasi_eventrwflags_t;
  261. __wasi_eventrwflags_t = UInt16;
  262. const
  263. __WASI_EVENTRWFLAGS_FD_READWRITE_HANGUP = 1;
  264. type
  265. P__wasi_event_fd_readwrite_t = ^__wasi_event_fd_readwrite_t;
  266. __wasi_event_fd_readwrite_t = record
  267. nbytes: __wasi_filesize_t;
  268. flags: __wasi_eventrwflags_t;
  269. end;
  270. P__wasi_event_t = ^__wasi_event_t;
  271. __wasi_event_t = record
  272. userdata: __wasi_userdata_t;
  273. error: __wasi_errno_t;
  274. type_: __wasi_eventtype_t;
  275. fd_readwrite: __wasi_event_fd_readwrite_t;
  276. end;
  277. P__wasi_subclockflags_t = ^__wasi_subclockflags_t;
  278. __wasi_subclockflags_t = UInt16;
  279. const
  280. __WASI_SUBCLOCKFLAGS_SUBSCRIPTION_CLOCK_ABSTIME = 1;
  281. type
  282. P__wasi_subscription_clock_t = ^__wasi_subscription_clock_t;
  283. __wasi_subscription_clock_t = record
  284. id: __wasi_clockid_t;
  285. timeout: __wasi_timestamp_t;
  286. precision: __wasi_timestamp_t;
  287. flags: __wasi_subclockflags_t;
  288. end;
  289. P__wasi_subscription_fd_readwrite_t = ^__wasi_subscription_fd_readwrite_t;
  290. __wasi_subscription_fd_readwrite_t = record
  291. file_descriptor: __wasi_fd_t;
  292. end;
  293. P__wasi_subscription_u_u_t = ^__wasi_subscription_u_u_t;
  294. __wasi_subscription_u_u_t = record
  295. case integer of
  296. 0: (clock: __wasi_subscription_clock_t);
  297. 1: (fd_read: __wasi_subscription_fd_readwrite_t);
  298. 2: (fd_write: __wasi_subscription_fd_readwrite_t);
  299. end;
  300. P__wasi_subscription_u_t = ^__wasi_subscription_u_t;
  301. __wasi_subscription_u_t = record
  302. tag: __wasi_eventtype_t;
  303. u: __wasi_subscription_u_u_t;
  304. end;
  305. P__wasi_subscription_t = ^__wasi_subscription_t;
  306. __wasi_subscription_t = record
  307. userdata: __wasi_userdata_t;
  308. u: __wasi_subscription_u_t;
  309. end;
  310. P__wasi_exitcode_t = ^__wasi_exitcode_t;
  311. __wasi_exitcode_t = UInt32;
  312. P__wasi_signal_t = ^__wasi_signal_t;
  313. __wasi_signal_t = UInt8;
  314. const
  315. __WASI_SIGNAL_NONE = 0;
  316. __WASI_SIGNAL_HUP = 1;
  317. __WASI_SIGNAL_INT = 2;
  318. __WASI_SIGNAL_QUIT = 3;
  319. __WASI_SIGNAL_ILL = 4;
  320. __WASI_SIGNAL_TRAP = 5;
  321. __WASI_SIGNAL_ABRT = 6;
  322. __WASI_SIGNAL_BUS = 7;
  323. __WASI_SIGNAL_FPE = 8;
  324. __WASI_SIGNAL_KILL = 9;
  325. __WASI_SIGNAL_USR1 = 10;
  326. __WASI_SIGNAL_SEGV = 11;
  327. __WASI_SIGNAL_USR2 = 12;
  328. __WASI_SIGNAL_PIPE = 13;
  329. __WASI_SIGNAL_ALRM = 14;
  330. __WASI_SIGNAL_TERM = 15;
  331. __WASI_SIGNAL_CHLD = 16;
  332. __WASI_SIGNAL_CONT = 17;
  333. __WASI_SIGNAL_STOP = 18;
  334. __WASI_SIGNAL_TSTP = 19;
  335. __WASI_SIGNAL_TTIN = 20;
  336. __WASI_SIGNAL_TTOU = 21;
  337. __WASI_SIGNAL_URG = 22;
  338. __WASI_SIGNAL_XCPU = 23;
  339. __WASI_SIGNAL_XFSZ = 24;
  340. __WASI_SIGNAL_VTALRM = 25;
  341. __WASI_SIGNAL_PROF = 26;
  342. __WASI_SIGNAL_WINCH = 27;
  343. __WASI_SIGNAL_POLL = 28;
  344. __WASI_SIGNAL_PWR = 29;
  345. __WASI_SIGNAL_SYS = 30;
  346. type
  347. P__wasi_riflags_t = ^__wasi_riflags_t;
  348. __wasi_riflags_t = UInt16;
  349. const
  350. __WASI_RIFLAGS_RECV_PEEK = 1;
  351. __WASI_RIFLAGS_RECV_WAITALL = 2;
  352. type
  353. P__wasi_roflags_t = ^__wasi_roflags_t;
  354. __wasi_roflags_t = UInt16;
  355. const
  356. __WASI_ROFLAGS_RECV_DATA_TRUNCATED = 1;
  357. type
  358. P__wasi_siflags_t = ^__wasi_siflags_t;
  359. __wasi_siflags_t = UInt16;
  360. P__wasi_sdflags_t = ^__wasi_sdflags_t;
  361. __wasi_sdflags_t = UInt8;
  362. const
  363. __WASI_SDFLAGS_RD = 1;
  364. __WASI_SDFLAGS_WR = 2;
  365. type
  366. P__wasi_preopentype_t = ^__wasi_preopentype_t;
  367. __wasi_preopentype_t = UInt8;
  368. const
  369. __WASI_PREOPENTYPE_DIR = 0;
  370. type
  371. P__wasi_prestat_dir_t = ^__wasi_prestat_dir_t;
  372. __wasi_prestat_dir_t = record
  373. pr_name_len: __wasi_size_t;
  374. end;
  375. P__wasi_prestat_u_t = ^__wasi_prestat_u_t;
  376. __wasi_prestat_u_t = record
  377. case integer of
  378. 0: (dir: __wasi_prestat_dir_t);
  379. end;
  380. P__wasi_prestat_t = ^__wasi_prestat_t;
  381. __wasi_prestat_t = record
  382. tag: __wasi_preopentype_t;
  383. u: __wasi_prestat_u_t;
  384. end;