osdep.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. <h1>OSDEP Native API</h1>
  2. <a name="Extensions"></a><h1>Extensions</h1>
  3. <table class="apiIndex" title="Extensions">
  4. </table>
  5. <a name="Functions"></a><h1>Functions</h1>
  6. <table class="apiIndex" title="Functions">
  7. </table>
  8. <a name="Typedefs"></a><h1>Typedefs</h1>
  9. <table class="apiIndex" title="typedefs">
  10. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a7bac74916a564105339bcd5a9323c366" class="nameRef">Offset</a></td><td class="apiBrief">Signed file offset data type.</td></tr>
  11. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1af9381320a2640ea84038579d8f143c01" class="nameRef">Socket</a></td><td class="apiBrief">Argument for sockets.</td></tr>
  12. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a7e81f05ea37d05efc10e7c45c1111d0d" class="nameRef">Socklen</a></td><td class="apiBrief">Size to hold the length of a socket address.</td></tr>
  13. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a06650984137cfde185bac06dd2a4f355" class="nameRef">Ticks</a></td><td class="apiBrief">Elapsed time data type.</td></tr>
  14. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="nameRef">bool</a></td><td class="apiBrief">Boolean data type.</td></tr>
  15. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="nameRef">cchar</a></td><td class="apiBrief">Constant char data type.</td></tr>
  16. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a1f6289ab1328cf3c7852d75c397838a2" class="nameRef">cint</a></td><td class="apiBrief">Constant int data type.</td></tr>
  17. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1ad5d9ae5e2ea7e75aa605e36485987fc2" class="nameRef">cuchar</a></td><td class="apiBrief">Unsigned char data type.</td></tr>
  18. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a585ef5c0f4567945e1f3e7f32670accb" class="nameRef">cushort</a></td><td class="apiBrief">Constant unsigned short data type.</td></tr>
  19. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a5272042f7e0f5c53e2fd4b49ff47d92d" class="nameRef">cvoid</a></td><td class="apiBrief">Constant void data type.</td></tr>
  20. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a4355d16fcf9f644c9ac84293f0b1801f" class="nameRef">int16</a></td><td class="apiBrief">Integer 16 bits data type.</td></tr>
  21. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a56f1a81c92849566ae864511088eb7e8" class="nameRef">int32</a></td><td class="apiBrief">Integer 32 bits data type.</td></tr>
  22. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1ae47c588f3ab8c61121c1c7ab7edc47cd" class="nameRef">int8</a></td><td class="apiBrief">Integer 8 bits data type.</td></tr>
  23. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a0fd9ce9d735064461bebfe6037026093" class="nameRef">schar</a></td><td class="apiBrief">Signed char data type.</td></tr>
  24. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="nameRef">ssize</a></td><td class="apiBrief">Signed integer size field large enough to hold a pointer offset.</td></tr>
  25. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a65f85814a8290f9797005d3b28e7e5fc" class="nameRef">uchar</a></td><td class="apiBrief">Unsigned char data type.</td></tr>
  26. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a91ad9478d81a7aaf2593e8d9c3d06a14" class="nameRef">uint</a></td><td class="apiBrief">Unsigned integer (machine dependent bit size) data type.</td></tr>
  27. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a05f6b0ae8f6a6e135b0e290c25fe0e4e" class="nameRef">uint16</a></td><td class="apiBrief">Unsigned integer 16 bits data type.</td></tr>
  28. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a1134b580f8da4de94ca6b1de4d37975e" class="nameRef">uint32</a></td><td class="apiBrief">Unsigned integer 32 bits data type.</td></tr>
  29. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1adde6aaee8457bee49c2a92621fe22b79" class="nameRef">uint8</a></td><td class="apiBrief">Unsigned integer 8 bits data type.</td></tr>
  30. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1a718b4eb2652c286f4d42dc18a8e71a1a" class="nameRef">ulong</a></td><td class="apiBrief">Unsigned long (machine dependent bit size) data type.</td></tr>
  31. <tr class="apiDef"><td class="apiName"><a href="#osdep_8h_1ab95f123a6c9bcfee6a343170ef8c5f69" class="nameRef">ushort</a></td><td class="apiBrief">Unsigned short data type.</td></tr>
  32. </table>
  33. <a name="Defines"></a><h1>Defines</h1>
  34. <table class="apiIndex" title="Defines">
  35. <tr class="apiDef">
  36. <td>#define</td><td><a href="#osdep_8h_1a736241a28d828a05b8d709862bf7990f" class="nameRef">ME_BIG_ENDIAN</a>&nbsp;&nbsp;&nbsp;2</td>
  37. </tr>
  38. <tr class="apiBrief"><td>&nbsp;</td><td>Big endian byte ordering.</td></tr>
  39. <tr class="apiDef">
  40. <td>#define</td><td><a href="#osdep_8h_1a2f0a736986e64f8420db89ca8e4b70cd" class="nameRef">ME_BUFSIZE</a>&nbsp;&nbsp;&nbsp;4096</td>
  41. </tr>
  42. <tr class="apiBrief"><td>&nbsp;</td><td>Reasonable size for buffers.</td></tr>
  43. <tr class="apiDef">
  44. <td>#define</td><td><a href="#osdep_8h_1a443dca52b386807bfe6c7162d4b2a023" class="nameRef">ME_CPU_ARM</a>&nbsp;&nbsp;&nbsp;1</td>
  45. </tr>
  46. <tr class="apiBrief"><td>&nbsp;</td><td>Arm.</td></tr>
  47. <tr class="apiDef">
  48. <td>#define</td><td><a href="#osdep_8h_1ac339037b29b2fd949d7e62419793d12b" class="nameRef">ME_CPU_ITANIUM</a>&nbsp;&nbsp;&nbsp;2</td>
  49. </tr>
  50. <tr class="apiBrief"><td>&nbsp;</td><td>Intel Itanium.</td></tr>
  51. <tr class="apiDef">
  52. <td>#define</td><td><a href="#osdep_8h_1a1a583c909fba02ea516592a81773effd" class="nameRef">ME_CPU_MIPS</a>&nbsp;&nbsp;&nbsp;5</td>
  53. </tr>
  54. <tr class="apiBrief"><td>&nbsp;</td><td>Mips.</td></tr>
  55. <tr class="apiDef">
  56. <td>#define</td><td><a href="#osdep_8h_1a0d138a774a2c7d7a518f103589872ba7" class="nameRef">ME_CPU_PPC</a>&nbsp;&nbsp;&nbsp;6</td>
  57. </tr>
  58. <tr class="apiBrief"><td>&nbsp;</td><td>Power PC.</td></tr>
  59. <tr class="apiDef">
  60. <td>#define</td><td><a href="#osdep_8h_1a37fea4c5334adbdcc9756911d5dc3c69" class="nameRef">ME_CPU_SH</a>&nbsp;&nbsp;&nbsp;9</td>
  61. </tr>
  62. <tr class="apiBrief"><td>&nbsp;</td><td>SuperH.</td></tr>
  63. <tr class="apiDef">
  64. <td>#define</td><td><a href="#osdep_8h_1a0d7a6b6d52476cde608ffd4095e65d85" class="nameRef">ME_CPU_SPARC</a>&nbsp;&nbsp;&nbsp;7</td>
  65. </tr>
  66. <tr class="apiBrief"><td>&nbsp;</td><td>Sparc.</td></tr>
  67. <tr class="apiDef">
  68. <td>#define</td><td><a href="#osdep_8h_1a48107de6359e4eb347016f48bb4a3c3b" class="nameRef">ME_CPU_TIDSP</a>&nbsp;&nbsp;&nbsp;8</td>
  69. </tr>
  70. <tr class="apiBrief"><td>&nbsp;</td><td>TI DSP.</td></tr>
  71. <tr class="apiDef">
  72. <td>#define</td><td><a href="#osdep_8h_1a5674b5b2a7b04cee2b46f74920d52d8f" class="nameRef">ME_CPU_X64</a>&nbsp;&nbsp;&nbsp;4</td>
  73. </tr>
  74. <tr class="apiBrief"><td>&nbsp;</td><td>AMD64 or EMT64.</td></tr>
  75. <tr class="apiDef">
  76. <td>#define</td><td><a href="#osdep_8h_1aaacaa5832d9cfa8111ca25864d0c12ee" class="nameRef">ME_CPU_X86</a>&nbsp;&nbsp;&nbsp;3</td>
  77. </tr>
  78. <tr class="apiBrief"><td>&nbsp;</td><td>X86.</td></tr>
  79. <tr class="apiDef">
  80. <td>#define</td><td><a href="#osdep_8h_1a7f3e8d87a594a800e4ad8a6e6c131985" class="nameRef">ME_DEBUG</a>&nbsp;&nbsp;&nbsp;0</td>
  81. </tr>
  82. <tr class="apiBrief"><td>&nbsp;</td><td><a class="ref" href="#osdep_8h_source">osdep.h</a><ndash/> O/S abstraction for products using MakeMe.</td></tr>
  83. <tr class="apiDef">
  84. <td>#define</td><td><a href="#osdep_8h_1aa748d8e11fc5b0402c59831885b65ad0" class="nameRef">ME_LITTLE_ENDIAN</a>&nbsp;&nbsp;&nbsp;1</td>
  85. </tr>
  86. <tr class="apiBrief"><td>&nbsp;</td><td>Little endian byte ordering.</td></tr>
  87. <tr class="apiDef">
  88. <td>#define</td><td><a href="#osdep_8h_1a1acfc74ba25c25a18f5e3ec6d65975fd" class="nameRef">ME_MAX_ARGC</a>&nbsp;&nbsp;&nbsp;32</td>
  89. </tr>
  90. <tr class="apiBrief"><td>&nbsp;</td><td>Maximum number of command line args if using MAIN().</td></tr>
  91. <tr class="apiDef">
  92. <td>#define</td><td><a href="#osdep_8h_1af1506a7b55be80f6a003874d76c8b689" class="nameRef">ME_MAX_BUFFER</a>&nbsp;&nbsp;&nbsp;4096</td>
  93. </tr>
  94. <tr class="apiBrief"><td>&nbsp;</td><td>Reasonable size for buffers.</td></tr>
  95. <tr class="apiDef">
  96. <td>#define</td><td><a href="#osdep_8h_1a9d78235891c980fb95e8bdd6bbaae123" class="nameRef">ME_MAX_FNAME</a>&nbsp;&nbsp;&nbsp;256</td>
  97. </tr>
  98. <tr class="apiBrief"><td>&nbsp;</td><td>Reasonable filename size.</td></tr>
  99. <tr class="apiDef">
  100. <td>#define</td><td><a href="#osdep_8h_1ac26162cd12a36bec6a00e9c6942d3c57" class="nameRef">ME_MAX_PATH</a>&nbsp;&nbsp;&nbsp;1024</td>
  101. </tr>
  102. <tr class="apiBrief"><td>&nbsp;</td><td>Reasonable filename size.</td></tr>
  103. <tr class="apiDef">
  104. <td>#define</td><td><a href="#osdep_8h_1a90bb49312ca043c1eaf731d4aca5cdaa" class="nameRef">ME_STACK_SIZE</a>&nbsp;&nbsp;&nbsp;(128 * 1024)</td>
  105. </tr>
  106. <tr class="apiBrief"><td>&nbsp;</td><td>Default thread stack size (0 means use system default).</td></tr>
  107. <tr class="apiDef">
  108. <td>#define</td><td><a href="#osdep_8h_1a5a4b32e0a7ed302b1959f2d663eb9207" class="nameRef">TPS</a>&nbsp;&nbsp;&nbsp;1000</td>
  109. </tr>
  110. <tr class="apiBrief"><td>&nbsp;</td><td>Time/Ticks units per second (milliseconds).</td></tr>
  111. </table>
  112. <h2>Functions</h2>
  113. <h2>Typedefs</h2>
  114. <a name="osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0"></a>
  115. <div class="api">
  116. <div class="prototype">
  117. typedef char bool.
  118. </div>
  119. <div class="apiDetail">
  120. <p>Boolean data type.</p>
  121. </div>
  122. </div>
  123. <a name="osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e"></a>
  124. <div class="api">
  125. <div class="prototype">
  126. typedef const char cchar.
  127. </div>
  128. <div class="apiDetail">
  129. <p>Constant char data type.</p>
  130. </div>
  131. </div>
  132. <a name="osdep_8h_1a1f6289ab1328cf3c7852d75c397838a2"></a>
  133. <div class="api">
  134. <div class="prototype">
  135. typedef const int cint.
  136. </div>
  137. <div class="apiDetail">
  138. <p>Constant int data type.</p>
  139. </div>
  140. </div>
  141. <a name="osdep_8h_1ad5d9ae5e2ea7e75aa605e36485987fc2"></a>
  142. <div class="api">
  143. <div class="prototype">
  144. typedef const unsigned char cuchar.
  145. </div>
  146. <div class="apiDetail">
  147. <p>Unsigned char data type.</p>
  148. </div>
  149. </div>
  150. <a name="osdep_8h_1a585ef5c0f4567945e1f3e7f32670accb"></a>
  151. <div class="api">
  152. <div class="prototype">
  153. typedef const unsigned short cushort.
  154. </div>
  155. <div class="apiDetail">
  156. <p>Constant unsigned short data type.</p>
  157. </div>
  158. </div>
  159. <a name="osdep_8h_1a5272042f7e0f5c53e2fd4b49ff47d92d"></a>
  160. <div class="api">
  161. <div class="prototype">
  162. typedef const void cvoid.
  163. </div>
  164. <div class="apiDetail">
  165. <p>Constant void data type.</p>
  166. </div>
  167. </div>
  168. <a name="osdep_8h_1a4355d16fcf9f644c9ac84293f0b1801f"></a>
  169. <div class="api">
  170. <div class="prototype">
  171. typedef short int16.
  172. </div>
  173. <div class="apiDetail">
  174. <p>Integer 16 bits data type.</p>
  175. </div>
  176. </div>
  177. <a name="osdep_8h_1a56f1a81c92849566ae864511088eb7e8"></a>
  178. <div class="api">
  179. <div class="prototype">
  180. typedef int int32.
  181. </div>
  182. <div class="apiDetail">
  183. <p>Integer 32 bits data type.</p>
  184. </div>
  185. </div>
  186. <a name="osdep_8h_1ae47c588f3ab8c61121c1c7ab7edc47cd"></a>
  187. <div class="api">
  188. <div class="prototype">
  189. typedef char int8.
  190. </div>
  191. <div class="apiDetail">
  192. <p>Integer 8 bits data type.</p>
  193. </div>
  194. </div>
  195. <a name="osdep_8h_1a7bac74916a564105339bcd5a9323c366"></a>
  196. <div class="api">
  197. <div class="prototype">
  198. typedef int64 Offset.
  199. </div>
  200. <div class="apiDetail">
  201. <p>Signed file offset data type.</p>
  202. Supports large files greater than 4GB in size on all systems
  203. </div>
  204. </div>
  205. <a name="osdep_8h_1a0fd9ce9d735064461bebfe6037026093"></a>
  206. <div class="api">
  207. <div class="prototype">
  208. typedef signed char schar.
  209. </div>
  210. <div class="apiDetail">
  211. <p>Signed char data type.</p>
  212. </div>
  213. </div>
  214. <a name="osdep_8h_1af9381320a2640ea84038579d8f143c01"></a>
  215. <div class="api">
  216. <div class="prototype">
  217. typedef int Socket.
  218. </div>
  219. <div class="apiDetail">
  220. <p>Argument for sockets.</p>
  221. </div>
  222. </div>
  223. <a name="osdep_8h_1a7e81f05ea37d05efc10e7c45c1111d0d"></a>
  224. <div class="api">
  225. <div class="prototype">
  226. typedef int Socklen.
  227. </div>
  228. <div class="apiDetail">
  229. <p>Size to hold the length of a socket address.</p>
  230. </div>
  231. </div>
  232. <a name="osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1"></a>
  233. <div class="api">
  234. <div class="prototype">
  235. typedef ssize_t ssize.
  236. </div>
  237. <div class="apiDetail">
  238. <p>Signed integer size field large enough to hold a pointer offset.</p>
  239. </div>
  240. </div>
  241. <a name="osdep_8h_1a06650984137cfde185bac06dd2a4f355"></a>
  242. <div class="api">
  243. <div class="prototype">
  244. typedef int64 Ticks.
  245. </div>
  246. <div class="apiDetail">
  247. <p>Elapsed time data type.</p>
  248. Stores time in milliseconds from some arbitrary start epoch
  249. </div>
  250. </div>
  251. <a name="osdep_8h_1a65f85814a8290f9797005d3b28e7e5fc"></a>
  252. <div class="api">
  253. <div class="prototype">
  254. typedef unsigned char uchar.
  255. </div>
  256. <div class="apiDetail">
  257. <p>Unsigned char data type.</p>
  258. </div>
  259. </div>
  260. <a name="osdep_8h_1a91ad9478d81a7aaf2593e8d9c3d06a14"></a>
  261. <div class="api">
  262. <div class="prototype">
  263. typedef unsigned int uint.
  264. </div>
  265. <div class="apiDetail">
  266. <p>Unsigned integer (machine dependent bit size) data type.</p>
  267. </div>
  268. </div>
  269. <a name="osdep_8h_1a05f6b0ae8f6a6e135b0e290c25fe0e4e"></a>
  270. <div class="api">
  271. <div class="prototype">
  272. typedef unsigned short uint16.
  273. </div>
  274. <div class="apiDetail">
  275. <p>Unsigned integer 16 bits data type.</p>
  276. </div>
  277. </div>
  278. <a name="osdep_8h_1a1134b580f8da4de94ca6b1de4d37975e"></a>
  279. <div class="api">
  280. <div class="prototype">
  281. typedef unsigned int uint32.
  282. </div>
  283. <div class="apiDetail">
  284. <p>Unsigned integer 32 bits data type.</p>
  285. </div>
  286. </div>
  287. <a name="osdep_8h_1adde6aaee8457bee49c2a92621fe22b79"></a>
  288. <div class="api">
  289. <div class="prototype">
  290. typedef unsigned char uint8.
  291. </div>
  292. <div class="apiDetail">
  293. <p>Unsigned integer 8 bits data type.</p>
  294. </div>
  295. </div>
  296. <a name="osdep_8h_1a718b4eb2652c286f4d42dc18a8e71a1a"></a>
  297. <div class="api">
  298. <div class="prototype">
  299. typedef unsigned long ulong.
  300. </div>
  301. <div class="apiDetail">
  302. <p>Unsigned long (machine dependent bit size) data type.</p>
  303. </div>
  304. </div>
  305. <a name="osdep_8h_1ab95f123a6c9bcfee6a343170ef8c5f69"></a>
  306. <div class="api">
  307. <div class="prototype">
  308. typedef unsigned short ushort.
  309. </div>
  310. <div class="apiDetail">
  311. <p>Unsigned short data type.</p>
  312. </div>
  313. </div>