PageRenderTime 29ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/tools/occ21/include/predefhd.h

http://github.com/clj/kroc_scons
C Header | 323 lines | 227 code | 17 blank | 79 comment | 0 complexity | 8c84b819b33e7e43dc1293aff9aa8007 MD5 | raw file
Possible License(s): GPL-2.0
  1. /* $Id: predefhd.h,v 1.1 1996/04/15 10:52:18 djb1 Exp $ */
  2. /*
  3. * predefined routine numbers
  4. * Copyright (C) 1987 Inmos Limited
  5. * Modified by Fred Barnes
  6. *
  7. * This program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation; either version 2 of the License, or
  10. * (at your option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program; if not, write to the Free Software
  19. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  20. */
  21. /*{{{ Predefined routines defns. */
  22. /********************
  23. * The order of these matters because there are tables built up
  24. * in the same order
  25. *********************/
  26. #define PD_LONGADD 0
  27. #define PD_LONGSUM 1
  28. #define PD_LONGSUB 2
  29. #define PD_LONGDIFF 3
  30. #define PD_LONGPROD 4
  31. #define PD_LONGDIV 5
  32. #define PD_SHIFTRIGHT 6
  33. #define PD_SHIFTLEFT 7
  34. #define PD_NORMALISE 8
  35. #define PD_FRACMUL 9
  36. #define PD_ASHIFTRIGHT 10
  37. #define PD_ASHIFTLEFT 11
  38. #define PD_ROTATERIGHT 12
  39. #define PD_ROTATELEFT 13
  40. #define PD_CAUSEERROR 14
  41. #if 0
  42. #define PD_KERNELRUN 15
  43. #define PD_LOADINPUTCHANNEL 16
  44. #define PD_LOADOUTPUTCHANNEL 17
  45. #define PD_LOADINPUTCHANNELVECTOR 18
  46. #define PD_LOADOUTPUTCHANNELVECTOR 19
  47. #define PD_LOADBYTEVECTOR 20
  48. #endif
  49. #define PD_UNPACKSN 21
  50. #define PD_ROUNDSN 22
  51. #define PD_DRAW2D 23
  52. #define PD_CLIP2D 24
  53. #define PD_MOVE2D 25
  54. #define PD_CRCWORD 26
  55. #define PD_CRCBYTE 27
  56. #define PD_BITCOUNT 28
  57. #define PD_BITREVWORD 29
  58. #define PD_BITREVNBITS 30
  59. #define PD_ABS 31
  60. #define PD_ISNAN 32
  61. #define PD_NOTFINITE 33
  62. #define PD_ORDERED 34
  63. #define PD_MINUSX 35
  64. #define PD_MULBY2 36
  65. #define PD_DIVBY2 37
  66. #define PD_SQRT 38
  67. #define PD_FPINT 39
  68. #define PD_DABS 40
  69. #define PD_DISNAN 41
  70. #define PD_DNOTFINITE 42
  71. #define PD_DORDERED 43
  72. #define PD_DMINUSX 44
  73. #define PD_DMULBY2 45
  74. #define PD_DDIVBY2 46
  75. #define PD_DSQRT 47
  76. #define PD_DFPINT 48
  77. #define PD_SCALEB 49
  78. #define PD_DSCALEB 50
  79. #define PD_COPYSIGN 51
  80. #define PD_DCOPYSIGN 52
  81. #define PD_NEXTAFTER 53
  82. #define PD_DNEXTAFTER 54
  83. #define PD_LOGB 55
  84. #define PD_DLOGB 56
  85. #define PD_FLOATINGUNPACK 57
  86. #define PD_DFLOATINGUNPACK 58
  87. #define PD_ARGUMENTREDUCE 59
  88. #define PD_DARGUMENTREDUCE 60
  89. #define PD_REAL32OP 61
  90. #define PD_REAL64OP 62
  91. #define PD_IEEE32OP 63
  92. #define PD_IEEE64OP 64
  93. #define PD_REAL32REM 65
  94. #define PD_REAL64REM 66
  95. #define PD_REAL32EQ 67
  96. #define PD_REAL64EQ 68
  97. #define PD_REAL32GT 69
  98. #define PD_REAL64GT 70
  99. #define PD_IEEECOMPARE 71
  100. #define PD_DIEEECOMPARE 72
  101. #define PD_IEEE32REM 73
  102. #define PD_IEEE64REM 74
  103. #define PD_RESCHEDULE 75
  104. #define PD_ASSERT 76 /* added 25/9/90 */
  105. #define PD_WSSIZEOF 77 /* bug TS/1797 18/08/92 */
  106. #define PD_VSSIZEOF 78 /* bug TS/1797 18/08/92 */
  107. #if 0
  108. #define PD_UPDATE_PROFCOUNT 79 /* It is introduced and inlined by the
  109. compiler */
  110. #define PD_IMS_GET_PDATA 80 /* bug TS/1039 05/02/93 */
  111. #endif
  112. /*}}}*/
  113. /*{{{ Added by frmb for priority handling */
  114. #define PD_GETPRI 81 /* get process priority */
  115. #define PD_SETPRI 82 /* set process priority */
  116. #define PD_INCPRI 83 /* raise process priority */
  117. #define PD_DECPRI 84 /* lower process priority */
  118. /*}}} */
  119. /*{{{ Added by frmb for channel-type allocation handling */
  120. #define PD_ALLOC_CHAN_TYPE 85 /* manufacture a dynamic mobile chan type */
  121. /*}}} */
  122. /*{{{ added by frmb for encode/decode and friends */
  123. #if 0
  124. #define PD_PROTOCOL_HASH 86 /* INT FUNCTION PROTOCOL.HASH (<name>) */
  125. #define PD_DECODE_CHANNEL 87 /* PROC DECODE.CHANNEL (CHAN * in?, CHAN INT term?, CHAN * out!, CHAN BOOL go?)
  126. * note: the output channel must be (INT; INT) or (INT; INT; INT) underneath! -- checked for
  127. */
  128. #define PD_DECODE_CHANNEL3 88 /* PROC DECODE.CHANNEL (CHAN * in?, CHAN INT term?, CHAN * out!)
  129. * note: the output channel must be (INT; INT) or (INT; INT; INT) underneath! -- checked for
  130. */
  131. #define PD_ENCODE_CHANNEL 89 /* PROC ENCODE.CHANNEL (CHAN * in?, CHAN INT term?, CHAN * out!)
  132. * note: the input channel must be (INT; INT) or (INT; INT; INT) underneath! -- checked for
  133. */
  134. #define PD_DETACH_DYNMOB 90 /* PROC DETACH.DYNMOB (MOBILE []* v, RESULT INT addr, size) */
  135. #define PD_ATTACH_DYNMOB 91 /* PROC ATTACH.DYNMOB (VAL INT addr, size, MOBILE []* v) */
  136. #endif
  137. #define PD_DECODE_DATA 92 /* PROC DECODE.DATA (* item, RESULT INT addr, size) */
  138. /*}}}*/
  139. /*{{{ mobile-process related builtins*/
  140. #define PD_MPBARSYNC 93 /* mobile-process barrier sync */
  141. #define PD_MPBARRESIGN 94 /* mobile-process barrier resign */
  142. #define PD_MPPSERIALISE 95 /* mobile-process serialisation */
  143. #define PD_MPPDESERIALISE 96 /* mobile-process deserialisation */
  144. #define PD_MPPCHECKROUTINE 97 /* mobile-process check routine */
  145. #define PD_MPPLOADLIBRARY 98 /* mobile-process load library */
  146. #define PD_MPPUNLOADLIBRARY 99 /* mobile-process unload library */
  147. /*}}}*/
  148. /*{{{ process-group related builtins*/
  149. #if 0
  150. #define PD_PGRP_NEWGRP 100 /* create a new process group */
  151. #define PD_PGRP_INFO 101 /* process group info */
  152. #endif
  153. /*}}}*/
  154. /*{{{ other occam-pi builtins*/
  155. #if 0
  156. #define PD_LOAD_TYPE_DESC 102 /* load type descriptor: INT FUNCTION LOAD.TYPE.DESC (<name>) */
  157. #endif
  158. /*}}}*/
  159. /*{{{ architecture capability builtins*/
  160. #define PD_REAL32SIN 103 /* REAL32 FUNCTION SIN (VAL REAL32 rad) */
  161. #define PD_REAL64SIN 104 /* REAL64 FUNCTION DSIN (VAL REAL64 rad) */
  162. #define PD_REAL32COS 105 /* REAL32 FUNCTION COS (VAL REAL32 rad) */
  163. #define PD_REAL64COS 106 /* REAL64 FUNCTION DCOS (VAL REAL64 rad) */
  164. /*}}}*/
  165. /*{{{ processor affinity builtins*/
  166. #define PD_GETAFF 107
  167. #define PD_SETAFF 108
  168. /*}}}*/
  169. /*{{{ blocking system calls */
  170. #define PD_KILLCALL 109
  171. /*}}}*/
  172. /*{{{ RMoX interrupt handling */
  173. #define PD_WAIT_FOR_INTERRUPT 110
  174. /*}}}*/
  175. /*{{{ MOBILE manipulation */
  176. #define PD_BIND_MOBILE 111
  177. #define PD_BIND_MOBILE_HW 112
  178. #define PD_DMA_CAPABLE 113
  179. #define PD_MAKE_DMA_CAPABLE 114
  180. /*}}}*/
  181. /*{{{ further floating-point builtins*/
  182. #define PD_REAL32TAN 115 /* REAL32 FUNCTION TAN (VAL REAL32 rad) */
  183. #define PD_REAL64TAN 116 /* REAL64 FUNCTION DTAN (VAL REAL64 rad) */
  184. /*}}}*/
  185. /*{{{ memory barriers */
  186. #define PD_MEMORY_BARRIER 117
  187. #define PD_READ_MEMORY_BARRIER 118
  188. #define PD_WRITE_MEMORY_BARRIER 119
  189. /*}}}*/
  190. /*{{{ further MOBILE manipulation */
  191. #define PD_RESIZE_MOBILE_ARRAY_1D 120
  192. /*}}}*/
  193. /*{{{ Predefines for the configuration stuff */
  194. /*{{{ Predefines for the configurer */
  195. /* Validity flags: T=Txxx, H=T9000, C=C104, P=Partition,
  196. U=Unknown, E=ControlPort, R=Route, S=Software
  197. */
  198. #define PD_ATTR_LINK 200 /* []EDGE THCP.... */ /* NETWORK */
  199. #define PD_ATTR_TYPE 201 /* []BYTE THCP.... */ /* NETWORK */
  200. #define PD_ATTR_MEMSIZE 202 /* INT T....... */ /* NETWORK */
  201. #define PD_ATTR_ROMSIZE 203 /* INT T....... */ /* NETWORK */
  202. #define PD_ATTR_ROOT 204 /* BOOL TH...... */ /* NETWORK */
  203. /* I have added 2 new entries for T450 attributes , memstart and num.links at the end of the list - NICK */
  204. #define PD_ATTR_ORDER_CODE 205 /* INT .......S */ /* MAPPING */
  205. #define PD_ATTR_ORDER_VS 206 /* INT .......S */ /* MAPPING */
  206. #define PD_ATTR_LOCATION_CODE 207 /* INT .......S */ /* MAPPING */
  207. #define PD_ATTR_LOCATION_WS 208 /* INT .......S */ /* MAPPING */
  208. #define PD_ATTR_LOCATION_VS 209 /* INT .......S */ /* MAPPING */
  209. #define PD_ATTR_RESERVED 210 /* INT T....... */ /* MAPPING */
  210. #define PD_ATTR_TOLERANCE 211 /* INT .......S */ /* MAPPING */ /* ONLY applicable to non-NDL configurer */
  211. #define PD_ATTR_LINKQUOTA 212 /* INT .......S */ /* MAPPING */ /* ONLY applicable to non-NDL configurer */
  212. #define PD_ATTR_ROUTECOST 213 /* INT .......S */ /* MAPPING */ /* ONLY applicable to non-NDL configurer */
  213. #define PD_ATTR_ORDER_WS 214 /* INT .......S */ /* MAPPING */
  214. #define PD_ATTR_NODEBUG 215 /* BOOL .......S */ /* MAPPING */
  215. #define PD_ATTR_NOPROFILE 216 /* BOOL .......S */ /* MAPPING */
  216. /* The following are ONLY declared by the non-NDL configurer */
  217. #define PD_HOSTEDGE 218 /* EDGE ........ */ /* Pre-declared EDGE (HOST) */
  218. #define PD_DEFAULTNODE 219 /* NODE ........ */ /* Pre-declared NODE (DEFAULT) */
  219. /*}}}*/
  220. /*{{{ Predefines for the NDL reader */
  221. /* Validity flags: T=Txxx, H=T9000, C=C104, P=Partition,
  222. U=Unknown, E=ControlPort, R=Route, S=Software, L=C100
  223. */
  224. #define PD_ATTR_LINK_SPEED_MULTIPLY 220 /* INT .HC.....L */ /* NETWORK */
  225. #define PD_ATTR_LINK_SPEED_DIVIDE 221 /* []INT .HC.....L */ /* NETWORK */
  226. #define PD_ATTR_CONTROL_UP 222 /* EDGE .HC.U...L */ /* NETWORK */
  227. #define PD_ATTR_CONTROL_SPEED_DIVIDE 223 /* [2]INT .HC.....L */ /* NETWORK */
  228. #define PD_ATTR_MEMCONFIG 224 /* []BYTE .H....... */ /* NETWORK */
  229. #define PD_ATTR_PREAMBLE 225 /* []BYTE .H....... */ /* NETWORK */
  230. #define PD_ATTR_BOOTSTRAP 226 /* []BYTE .H....... */ /* NETWORK */
  231. #define PD_ATTR_MEMORY 227 /* [][3]INT .H....... */ /* NETWORK */
  232. #define PD_ATTR_CACHESIZE 228 /* INT .H....... */ /* NETWORK */
  233. #if 0
  234. #define PD_ATTR_LINK_TXMODE 229 /* [4]BOOL .H....... */ /* NETWORK */
  235. #endif
  236. #define PD_ATTR_LINK_BYTE_MODE 229 /* [4]BOOL .H....... */ /* NETWORK */
  237. #define PD_ATTR_EVENT_OUT 230 /* [4]BOOL .H....... */ /* NETWORK */
  238. #define PD_ATTR_LOCAL_ROM 231 /* BOOL .H....... */ /* NETWORK */
  239. #define PD_ATTR_SYSTEM_ROM 232 /* BOOL .H....... */ /* NETWORK */
  240. #define PD_ATTR_PMI_CONFIG_INROM 233 /* BOOL .H....... */ /* NETWORK */
  241. #define PD_ATTR_LINKSET_INROM 234 /* BOOL .H....... */ /* NETWORK */
  242. #define PD_ATTR_BOOTSTRAP_INROM 235 /* BOOL .H....... */ /* NETWORK */
  243. #define PD_ATTR_CACHE_CONFIG_INROM 236 /* BOOL .H....... */ /* NETWORK */
  244. #if 0
  245. #define PD_ATTR_INTERVAL 236 /* [][2]INT ..CP..... */ /* NETWORK */
  246. #endif
  247. #define PD_ATTR_LINK_SELECT 237 /* []INT ..CP..... */ /* NETWORK */
  248. #define PD_ATTR_DISCARD 238 /* []BOOL ..CP..... */ /* NETWORK */
  249. #define PD_ATTR_DELETE 239 /* []BOOL ..CP..... */ /* NETWORK */
  250. #define PD_ATTR_RANDOM 240 /* []BOOL ..CP..... */ /* NETWORK */
  251. #if 0
  252. #define PD_ATTR_RANDOMSEED 241 /* INT ..CP..... */ /* NETWORK */
  253. #endif
  254. #define PD_ATTR_RANDOM_INTERVAL 242 /* [2]INT ..CP..... */ /* NETWORK */
  255. #define PD_ATTR_NODE 243 /* NODE ...P..... */ /* NETWORK */
  256. #define PD_ATTR_LINKS 244 /* [][2]INT ...P..... */ /* NETWORK */
  257. #define PD_ATTR_START_CODE 245 /* BYTE ....U.... */ /* NETWORK */
  258. #define PD_ATTR_IDENTIFY_CODE 246 /* BYTE ....U.... */ /* NETWORK */
  259. #define PD_ATTR_IDENTIFY_RESPONSE 247 /* BYTE ....U.... */ /* NETWORK */
  260. #define PD_ATTR_EXPECTED_IDENTITY 248 /* INT ....U.... */ /* NETWORK */
  261. #define PD_ATTR_ERROR_RESPONSE 249 /* BYTE ....U.... */ /* NETWORK */
  262. #define PD_ATTR_ERROR_HANDSHAKE 250 /* BYTE ....U.... */ /* NETWORK */
  263. #define PD_ATTR_INITIALISATION 251 /* []INT ....U.... */ /* NETWORK */
  264. #define PD_ATTR_DATA 252 /* EDGE .....E... */ /* NETWORK */
  265. #define PD_ATTR_CONTROL 253 /* EDGE .....E... */ /* NETWORK */
  266. #define PD_ATTR_CONTROL_DOWN 254 /* EDGE .HC.U...L */ /* NETWORK */
  267. #define PD_ATTR_OUTWARD 255 /* ARC ......R.. */ /* NETWORK */
  268. #define PD_ATTR_RETURN 256 /* ARC ......R.. */ /* NETWORK */
  269. #define PD_ATTR_LINK_GROUPS 257 /* [][2]INT ..C...... */ /* NETWORK */
  270. #define PD_ATTR_INTERVAL_SEPARATOR 258 /* []INT ..CP..... */ /* NETWORK */
  271. #define PD_ATTR_ROM_FILE 259 /* []BYTE TH....... */ /* NETWORK */
  272. #define PD_ATTR_REBOOT_FROM_LINK 260 /* BOOL .H....... */ /* NETWORK */
  273. #define PD_ATTR_BOOT_FROM_ROM 261 /* BOOL .H....... */ /* NETWORK */
  274. #define PD_ATTR_MODE 262 /* INT ........L */ /* NETWORK */
  275. #define PD_ATTR_DS_LINK 263 /* []EDGE ........L */ /* NETWORK */
  276. /*}}}*/
  277. /*{{{ Further additions for the configurer and NDL reader added late for the T450 */
  278. #define PD_ATTR_MEMSTART 264 /* INT T....... */ /* NETWORK */
  279. #define PD_ATTR_NUM_LINKS 265 /* INT T....... */ /* NETWORK */
  280. /*}}}*/
  281. /*}}}*/
  282. /*{{{ Pragma details */
  283. typedef enum
  284. {
  285. pragma_name_translate,
  286. pragma_name_linkage,
  287. pragma_name_external,
  288. pragma_name_shared,
  289. pragma_name_comment,
  290. pragma_name_aliased,
  291. pragma_name_hardware,
  292. pragma_name_nestedtimer,
  293. pragma_name_nestedplace,
  294. pragma_name_nestedport,
  295. pragma_name_badlybehaved,
  296. pragma_name_assumeconst,
  297. pragma_name_defined,
  298. pragma_name_undefined,
  299. pragma_name_iospace,
  300. pragma_name_dyncall,
  301. pragma_name_dexternal,
  302. pragma_name_export,
  303. pragma_name_formalmodel,
  304. pragma_name_fmtypes
  305. } pragma_name_tag_t;
  306. /*}}}*/