home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / programming / gnuc / os-include / inline / exec.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-12-28  |  43.2 KB  |  1,473 lines

  1. #ifndef _INLINE_EXEC_H
  2. #define _INLINE_EXEC_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL extern struct ExecBase * SysBase;
  11. #endif
  12. #ifndef BASE_PAR_DECL
  13. #define BASE_PAR_DECL
  14. #define BASE_PAR_DECL0 void
  15. #endif
  16. #ifndef BASE_NAME
  17. #define BASE_NAME SysBase
  18. #endif
  19.  
  20. static __inline void 
  21. AbortIO (BASE_PAR_DECL struct IORequest *ioRequest)
  22. {
  23.   BASE_EXT_DECL
  24.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  25.   register struct IORequest *a1 __asm("a1") = ioRequest;
  26.   __asm __volatile ("jsr a6@(-0x1e0)"
  27.   : /* no output */
  28.   : "r" (a6), "r" (a1)
  29.   : "a0","a1","d0","d1", "memory");
  30. }
  31. static __inline void 
  32. AddDevice (BASE_PAR_DECL struct Device *device)
  33. {
  34.   BASE_EXT_DECL
  35.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  36.   register struct Device *a1 __asm("a1") = device;
  37.   __asm __volatile ("jsr a6@(-0x1b0)"
  38.   : /* no output */
  39.   : "r" (a6), "r" (a1)
  40.   : "a0","a1","d0","d1", "memory");
  41. }
  42. static __inline void 
  43. AddHead (BASE_PAR_DECL struct List *list,struct Node *node)
  44. {
  45.   BASE_EXT_DECL
  46.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  47.   register struct List *a0 __asm("a0") = list;
  48.   register struct Node *a1 __asm("a1") = node;
  49.   __asm __volatile ("jsr a6@(-0xf0)"
  50.   : /* no output */
  51.   : "r" (a6), "r" (a0), "r" (a1)
  52.   : "a0","a1","d0","d1", "memory");
  53. }
  54. static __inline void 
  55. AddIntServer (BASE_PAR_DECL long intNumber,struct Interrupt *interrupt)
  56. {
  57.   BASE_EXT_DECL
  58.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  59.   register long d0 __asm("d0") = intNumber;
  60.   register struct Interrupt *a1 __asm("a1") = interrupt;
  61.   __asm __volatile ("jsr a6@(-0xa8)"
  62.   : /* no output */
  63.   : "r" (a6), "r" (d0), "r" (a1)
  64.   : "a0","a1","d0","d1", "memory");
  65. }
  66. static __inline void 
  67. AddLibrary (BASE_PAR_DECL struct Library *library)
  68. {
  69.   BASE_EXT_DECL
  70.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  71.   register struct Library *a1 __asm("a1") = library;
  72.   __asm __volatile ("jsr a6@(-0x18c)"
  73.   : /* no output */
  74.   : "r" (a6), "r" (a1)
  75.   : "a0","a1","d0","d1", "memory");
  76. }
  77. static __inline void 
  78. AddMemHandler (BASE_PAR_DECL struct Interrupt *memhand)
  79. {
  80.   BASE_EXT_DECL
  81.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  82.   register struct Interrupt *a1 __asm("a1") = memhand;
  83.   __asm __volatile ("jsr a6@(-0x306)"
  84.   : /* no output */
  85.   : "r" (a6), "r" (a1)
  86.   : "a0","a1","d0","d1", "memory");
  87. }
  88. static __inline ULONG 
  89. AddMemList (BASE_PAR_DECL unsigned long size,unsigned long attributes,unsigned long pri,APTR base,UBYTE *name)
  90. {
  91.   BASE_EXT_DECL
  92.   register ULONG  _res  __asm("d0");
  93.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  94.   register unsigned long d0 __asm("d0") = size;
  95.   register unsigned long d1 __asm("d1") = attributes;
  96.   register unsigned long d2 __asm("d2") = pri;
  97.   register APTR a0 __asm("a0") = base;
  98.   register UBYTE *a1 __asm("a1") = name;
  99.   __asm __volatile ("jsr a6@(-0x26a)"
  100.   : "=r" (_res)
  101.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (a0), "r" (a1)
  102.   : "a0","a1","d0","d1","d2", "memory");
  103.   return _res;
  104. }
  105. static __inline void 
  106. AddPort (BASE_PAR_DECL struct MsgPort *port)
  107. {
  108.   BASE_EXT_DECL
  109.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  110.   register struct MsgPort *a1 __asm("a1") = port;
  111.   __asm __volatile ("jsr a6@(-0x162)"
  112.   : /* no output */
  113.   : "r" (a6), "r" (a1)
  114.   : "a0","a1","d0","d1", "memory");
  115. }
  116. static __inline void 
  117. AddResource (BASE_PAR_DECL APTR resource)
  118. {
  119.   BASE_EXT_DECL
  120.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  121.   register APTR a1 __asm("a1") = resource;
  122.   __asm __volatile ("jsr a6@(-0x1e6)"
  123.   : /* no output */
  124.   : "r" (a6), "r" (a1)
  125.   : "a0","a1","d0","d1", "memory");
  126. }
  127. static __inline void 
  128. AddSemaphore (BASE_PAR_DECL struct SignalSemaphore *sigSem)
  129. {
  130.   BASE_EXT_DECL
  131.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  132.   register struct SignalSemaphore *a1 __asm("a1") = sigSem;
  133.   __asm __volatile ("jsr a6@(-0x258)"
  134.   : /* no output */
  135.   : "r" (a6), "r" (a1)
  136.   : "a0","a1","d0","d1", "memory");
  137. }
  138. static __inline void 
  139. AddTail (BASE_PAR_DECL struct List *list,struct Node *node)
  140. {
  141.   BASE_EXT_DECL
  142.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  143.   register struct List *a0 __asm("a0") = list;
  144.   register struct Node *a1 __asm("a1") = node;
  145.   __asm __volatile ("jsr a6@(-0xf6)"
  146.   : /* no output */
  147.   : "r" (a6), "r" (a0), "r" (a1)
  148.   : "a0","a1","d0","d1", "memory");
  149. }
  150. static __inline APTR 
  151. AddTask (BASE_PAR_DECL struct Task *task,APTR initPC,APTR finalPC)
  152. {
  153.   BASE_EXT_DECL
  154.   register APTR  _res  __asm("d0");
  155.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  156.   register struct Task *a1 __asm("a1") = task;
  157.   register APTR a2 __asm("a2") = initPC;
  158.   register APTR a3 __asm("a3") = finalPC;
  159.   __asm __volatile ("jsr a6@(-0x11a)"
  160.   : "=r" (_res)
  161.   : "r" (a6), "r" (a1), "r" (a2), "r" (a3)
  162.   : "a0","a1","a2","a3","d0","d1", "memory");
  163.   return _res;
  164. }
  165. static __inline void 
  166. Alert (BASE_PAR_DECL unsigned long alertNum)
  167. {
  168.   BASE_EXT_DECL
  169.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  170.   register unsigned long d7 __asm("d7") = alertNum;
  171.   __asm __volatile ("jsr a6@(-0x6c)"
  172.   : /* no output */
  173.   : "r" (a6), "r" (d7)
  174.   : "a0","a1","d0","d1","d7", "memory");
  175. }
  176. static __inline APTR 
  177. AllocAbs (BASE_PAR_DECL unsigned long byteSize,APTR location)
  178. {
  179.   BASE_EXT_DECL
  180.   register APTR  _res  __asm("d0");
  181.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  182.   register unsigned long d0 __asm("d0") = byteSize;
  183.   register APTR a1 __asm("a1") = location;
  184.   __asm __volatile ("jsr a6@(-0xcc)"
  185.   : "=r" (_res)
  186.   : "r" (a6), "r" (d0), "r" (a1)
  187.   : "a0","a1","d0","d1", "memory");
  188.   return _res;
  189. }
  190. static __inline struct MemList *
  191. AllocEntry (BASE_PAR_DECL struct MemList *entry)
  192. {
  193.   BASE_EXT_DECL
  194.   register struct MemList * _res  __asm("d0");
  195.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  196.   register struct MemList *a0 __asm("a0") = entry;
  197.   __asm __volatile ("jsr a6@(-0xde)"
  198.   : "=r" (_res)
  199.   : "r" (a6), "r" (a0)
  200.   : "a0","a1","d0","d1", "memory");
  201.   return _res;
  202. }
  203. static __inline APTR 
  204. AllocMem (BASE_PAR_DECL unsigned long byteSize,unsigned long requirements)
  205. {
  206.   BASE_EXT_DECL
  207.   register APTR  _res  __asm("d0");
  208.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  209.   register unsigned long d0 __asm("d0") = byteSize;
  210.   register unsigned long d1 __asm("d1") = requirements;
  211.   __asm __volatile ("jsr a6@(-0xc6)"
  212.   : "=r" (_res)
  213.   : "r" (a6), "r" (d0), "r" (d1)
  214.   : "a0","a1","d0","d1", "memory");
  215.   return _res;
  216. }
  217. static __inline APTR 
  218. AllocPooled (BASE_PAR_DECL APTR poolHeader,unsigned long memSize)
  219. {
  220.   BASE_EXT_DECL
  221.   register APTR  _res  __asm("d0");
  222.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  223.   register APTR a0 __asm("a0") = poolHeader;
  224.   register unsigned long d0 __asm("d0") = memSize;
  225.   __asm __volatile ("jsr a6@(-0x2c4)"
  226.   : "=r" (_res)
  227.   : "r" (a6), "r" (a0), "r" (d0)
  228.   : "a0","a1","d0","d1", "memory");
  229.   return _res;
  230. }
  231. static __inline BYTE 
  232. AllocSignal (BASE_PAR_DECL long signalNum)
  233. {
  234.   BASE_EXT_DECL
  235.   register BYTE  _res  __asm("d0");
  236.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  237.   register long d0 __asm("d0") = signalNum;
  238.   __asm __volatile ("jsr a6@(-0x14a)"
  239.   : "=r" (_res)
  240.   : "r" (a6), "r" (d0)
  241.   : "a0","a1","d0","d1", "memory");
  242.   return _res;
  243. }
  244. static __inline LONG 
  245. AllocTrap (BASE_PAR_DECL long trapNum)
  246. {
  247.   BASE_EXT_DECL
  248.   register LONG  _res  __asm("d0");
  249.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  250.   register long d0 __asm("d0") = trapNum;
  251.   __asm __volatile ("jsr a6@(-0x156)"
  252.   : "=r" (_res)
  253.   : "r" (a6), "r" (d0)
  254.   : "a0","a1","d0","d1", "memory");
  255.   return _res;
  256. }
  257. static __inline APTR 
  258. AllocVec (BASE_PAR_DECL unsigned long byteSize,unsigned long requirements)
  259. {
  260.   BASE_EXT_DECL
  261.   register APTR  _res  __asm("d0");
  262.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  263.   register unsigned long d0 __asm("d0") = byteSize;
  264.   register unsigned long d1 __asm("d1") = requirements;
  265.   __asm __volatile ("jsr a6@(-0x2ac)"
  266.   : "=r" (_res)
  267.   : "r" (a6), "r" (d0), "r" (d1)
  268.   : "a0","a1","d0","d1", "memory");
  269.   return _res;
  270. }
  271. static __inline APTR 
  272. Allocate (BASE_PAR_DECL struct MemHeader *freeList,unsigned long byteSize)
  273. {
  274.   BASE_EXT_DECL
  275.   register APTR  _res  __asm("d0");
  276.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  277.   register struct MemHeader *a0 __asm("a0") = freeList;
  278.   register unsigned long d0 __asm("d0") = byteSize;
  279.   __asm __volatile ("jsr a6@(-0xba)"
  280.   : "=r" (_res)
  281.   : "r" (a6), "r" (a0), "r" (d0)
  282.   : "a0","a1","d0","d1", "memory");
  283.   return _res;
  284. }
  285. static __inline ULONG 
  286. AttemptSemaphore (BASE_PAR_DECL struct SignalSemaphore *sigSem)
  287. {
  288.   BASE_EXT_DECL
  289.   register ULONG  _res  __asm("d0");
  290.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  291.   register struct SignalSemaphore *a0 __asm("a0") = sigSem;
  292.   __asm __volatile ("jsr a6@(-0x240)"
  293.   : "=r" (_res)
  294.   : "r" (a6), "r" (a0)
  295.   : "a0","a1","d0","d1", "memory");
  296.   return _res;
  297. }
  298. static __inline ULONG 
  299. AttemptSemaphoreShared (BASE_PAR_DECL struct SignalSemaphore *sigSem)
  300. {
  301.   BASE_EXT_DECL
  302.   register ULONG  _res  __asm("d0");
  303.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  304.   register struct SignalSemaphore *a0 __asm("a0") = sigSem;
  305.   __asm __volatile ("jsr a6@(-0x2d0)"
  306.   : "=r" (_res)
  307.   : "r" (a6), "r" (a0)
  308.   : "a0","a1","d0","d1", "memory");
  309.   return _res;
  310. }
  311. static __inline ULONG 
  312. AvailMem (BASE_PAR_DECL unsigned long requirements)
  313. {
  314.   BASE_EXT_DECL
  315.   register ULONG  _res  __asm("d0");
  316.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  317.   register unsigned long d1 __asm("d1") = requirements;
  318.   __asm __volatile ("jsr a6@(-0xd8)"
  319.   : "=r" (_res)
  320.   : "r" (a6), "r" (d1)
  321.   : "a0","a1","d0","d1", "memory");
  322.   return _res;
  323. }
  324. static __inline void 
  325. CacheClearE (BASE_PAR_DECL APTR address,unsigned long length,unsigned long caches)
  326. {
  327.   BASE_EXT_DECL
  328.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  329.   register APTR a0 __asm("a0") = address;
  330.   register unsigned long d0 __asm("d0") = length;
  331.   register unsigned long d1 __asm("d1") = caches;
  332.   __asm __volatile ("jsr a6@(-0x282)"
  333.   : /* no output */
  334.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  335.   : "a0","a1","d0","d1", "memory");
  336. }
  337. static __inline void 
  338. CacheClearU (BASE_PAR_DECL0)
  339. {
  340.   BASE_EXT_DECL
  341.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  342.   __asm __volatile ("jsr a6@(-0x27c)"
  343.   : /* no output */
  344.   : "r" (a6)
  345.   : "a0","a1","d0","d1", "memory");
  346. }
  347. static __inline ULONG 
  348. CacheControl (BASE_PAR_DECL unsigned long cacheBits,unsigned long cacheMask)
  349. {
  350.   BASE_EXT_DECL
  351.   register ULONG  _res  __asm("d0");
  352.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  353.   register unsigned long d0 __asm("d0") = cacheBits;
  354.   register unsigned long d1 __asm("d1") = cacheMask;
  355.   __asm __volatile ("jsr a6@(-0x288)"
  356.   : "=r" (_res)
  357.   : "r" (a6), "r" (d0), "r" (d1)
  358.   : "a0","a1","d0","d1", "memory");
  359.   return _res;
  360. }
  361. static __inline APTR 
  362. CachePostDMA (BASE_PAR_DECL APTR address,ULONG *length,unsigned long flags)
  363. {
  364.   BASE_EXT_DECL
  365.   register APTR  _res  __asm("d0");
  366.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  367.   register APTR a0 __asm("a0") = address;
  368.   register ULONG *a1 __asm("a1") = length;
  369.   register unsigned long d1 __asm("d1") = flags;
  370.   __asm __volatile ("jsr a6@(-0x300)"
  371.   : "=r" (_res)
  372.   : "r" (a6), "r" (a0), "r" (a1), "r" (d1)
  373.   : "a0","a1","d0","d1", "memory");
  374.   return _res;
  375. }
  376. static __inline APTR 
  377. CachePreDMA (BASE_PAR_DECL APTR address,ULONG *length,unsigned long flags)
  378. {
  379.   BASE_EXT_DECL
  380.   register APTR  _res  __asm("d0");
  381.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  382.   register APTR a0 __asm("a0") = address;
  383.   register ULONG *a1 __asm("a1") = length;
  384.   register unsigned long d1 __asm("d1") = flags;
  385.   __asm __volatile ("jsr a6@(-0x2fa)"
  386.   : "=r" (_res)
  387.   : "r" (a6), "r" (a0), "r" (a1), "r" (d1)
  388.   : "a0","a1","d0","d1", "memory");
  389.   return _res;
  390. }
  391. static __inline void 
  392. Cause (BASE_PAR_DECL struct Interrupt *interrupt)
  393. {
  394.   BASE_EXT_DECL
  395.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  396.   register struct Interrupt *a1 __asm("a1") = interrupt;
  397.   __asm __volatile ("jsr a6@(-0xb4)"
  398.   : /* no output */
  399.   : "r" (a6), "r" (a1)
  400.   : "a0","a1","d0","d1", "memory");
  401. }
  402. static __inline BOOL 
  403. CheckIO (BASE_PAR_DECL struct IORequest *ioRequest)
  404. {
  405.   BASE_EXT_DECL
  406.   register BOOL  _res  __asm("d0");
  407.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  408.   register struct IORequest *a1 __asm("a1") = ioRequest;
  409.   __asm __volatile ("jsr a6@(-0x1d4)"
  410.   : "=r" (_res)
  411.   : "r" (a6), "r" (a1)
  412.   : "a0","a1","d0","d1", "memory");
  413.   return _res;
  414. }
  415. static __inline void 
  416. ChildFree (BASE_PAR_DECL APTR tid)
  417. {
  418.   BASE_EXT_DECL
  419.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  420.   register APTR d0 __asm("d0") = tid;
  421.   __asm __volatile ("jsr a6@(-0x2e2)"
  422.   : /* no output */
  423.   : "r" (a6), "r" (d0)
  424.   : "a0","a1","d0","d1", "memory");
  425. }
  426. static __inline void 
  427. ChildOrphan (BASE_PAR_DECL APTR tid)
  428. {
  429.   BASE_EXT_DECL
  430.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  431.   register APTR d0 __asm("d0") = tid;
  432.   __asm __volatile ("jsr a6@(-0x2e8)"
  433.   : /* no output */
  434.   : "r" (a6), "r" (d0)
  435.   : "a0","a1","d0","d1", "memory");
  436. }
  437. static __inline void 
  438. ChildStatus (BASE_PAR_DECL APTR tid)
  439. {
  440.   BASE_EXT_DECL
  441.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  442.   register APTR d0 __asm("d0") = tid;
  443.   __asm __volatile ("jsr a6@(-0x2ee)"
  444.   : /* no output */
  445.   : "r" (a6), "r" (d0)
  446.   : "a0","a1","d0","d1", "memory");
  447. }
  448. static __inline void 
  449. ChildWait (BASE_PAR_DECL APTR tid)
  450. {
  451.   BASE_EXT_DECL
  452.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  453.   register APTR d0 __asm("d0") = tid;
  454.   __asm __volatile ("jsr a6@(-0x2f4)"
  455.   : /* no output */
  456.   : "r" (a6), "r" (d0)
  457.   : "a0","a1","d0","d1", "memory");
  458. }
  459. static __inline void 
  460. CloseDevice (BASE_PAR_DECL struct IORequest *ioRequest)
  461. {
  462.   BASE_EXT_DECL
  463.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  464.   register struct IORequest *a1 __asm("a1") = ioRequest;
  465.   __asm __volatile ("jsr a6@(-0x1c2)"
  466.   : /* no output */
  467.   : "r" (a6), "r" (a1)
  468.   : "a0","a1","d0","d1", "memory");
  469. }
  470. static __inline void 
  471. CloseLibrary (BASE_PAR_DECL struct Library *library)
  472. {
  473.   BASE_EXT_DECL
  474.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  475.   register struct Library *a1 __asm("a1") = library;
  476.   __asm __volatile ("jsr a6@(-0x19e)"
  477.   : /* no output */
  478.   : "r" (a6), "r" (a1)
  479.   : "a0","a1","d0","d1", "memory");
  480. }
  481. static __inline void 
  482. ColdReboot (BASE_PAR_DECL0)
  483. {
  484.   BASE_EXT_DECL
  485.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  486.   __asm __volatile ("jsr a6@(-0x2d6)"
  487.   : /* no output */
  488.   : "r" (a6)
  489.   : "a0","a1","d0","d1", "memory");
  490. }
  491. static __inline void 
  492. CopyMem (BASE_PAR_DECL APTR source,APTR dest,unsigned long size)
  493. {
  494.   BASE_EXT_DECL
  495.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  496.   register APTR a0 __asm("a0") = source;
  497.   register APTR a1 __asm("a1") = dest;
  498.   register unsigned long d0 __asm("d0") = size;
  499.   __asm __volatile ("jsr a6@(-0x270)"
  500.   : /* no output */
  501.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  502.   : "a0","a1","d0","d1", "memory");
  503. }
  504. static __inline void 
  505. CopyMemQuick (BASE_PAR_DECL APTR source,APTR dest,unsigned long size)
  506. {
  507.   BASE_EXT_DECL
  508.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  509.   register APTR a0 __asm("a0") = source;
  510.   register APTR a1 __asm("a1") = dest;
  511.   register unsigned long d0 __asm("d0") = size;
  512.   __asm __volatile ("jsr a6@(-0x276)"
  513.   : /* no output */
  514.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  515.   : "a0","a1","d0","d1", "memory");
  516. }
  517. static __inline APTR 
  518. CreateIORequest (BASE_PAR_DECL struct MsgPort *port,unsigned long size)
  519. {
  520.   BASE_EXT_DECL
  521.   register APTR  _res  __asm("d0");
  522.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  523.   register struct MsgPort *a0 __asm("a0") = port;
  524.   register unsigned long d0 __asm("d0") = size;
  525.   __asm __volatile ("jsr a6@(-0x28e)"
  526.   : "=r" (_res)
  527.   : "r" (a6), "r" (a0), "r" (d0)
  528.   : "a0","a1","d0","d1", "memory");
  529.   return _res;
  530. }
  531. static __inline struct MsgPort *
  532. CreateMsgPort (BASE_PAR_DECL0)
  533. {
  534.   BASE_EXT_DECL
  535.   register struct MsgPort * _res  __asm("d0");
  536.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  537.   __asm __volatile ("jsr a6@(-0x29a)"
  538.   : "=r" (_res)
  539.   : "r" (a6)
  540.   : "a0","a1","d0","d1", "memory");
  541.   return _res;
  542. }
  543. static __inline APTR 
  544. CreatePool (BASE_PAR_DECL unsigned long requirements,unsigned long puddleSize,unsigned long threshSize)
  545. {
  546.   BASE_EXT_DECL
  547.   register APTR  _res  __asm("d0");
  548.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  549.   register unsigned long d0 __asm("d0") = requirements;
  550.   register unsigned long d1 __asm("d1") = puddleSize;
  551.   register unsigned long d2 __asm("d2") = threshSize;
  552.   __asm __volatile ("jsr a6@(-0x2b8)"
  553.   : "=r" (_res)
  554.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2)
  555.   : "a0","a1","d0","d1","d2", "memory");
  556.   return _res;
  557. }
  558. static __inline void 
  559. Deallocate (BASE_PAR_DECL struct MemHeader *freeList,APTR memoryBlock,unsigned long byteSize)
  560. {
  561.   BASE_EXT_DECL
  562.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  563.   register struct MemHeader *a0 __asm("a0") = freeList;
  564.   register APTR a1 __asm("a1") = memoryBlock;
  565.   register unsigned long d0 __asm("d0") = byteSize;
  566.   __asm __volatile ("jsr a6@(-0xc0)"
  567.   : /* no output */
  568.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  569.   : "a0","a1","d0","d1", "memory");
  570. }
  571. static __inline void 
  572. Debug (BASE_PAR_DECL unsigned long flags)
  573. {
  574.   BASE_EXT_DECL
  575.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  576.   register unsigned long d0 __asm("d0") = flags;
  577.   __asm __volatile ("jsr a6@(-0x72)"
  578.   : /* no output */
  579.   : "r" (a6), "r" (d0)
  580.   : "a0","a1","d0","d1", "memory");
  581. }
  582. static __inline void 
  583. DeleteIORequest (BASE_PAR_DECL APTR iorequest)
  584. {
  585.   BASE_EXT_DECL
  586.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  587.   register APTR a0 __asm("a0") = iorequest;
  588.   __asm __volatile ("jsr a6@(-0x294)"
  589.   : /* no output */
  590.   : "r" (a6), "r" (a0)
  591.   : "a0","a1","d0","d1", "memory");
  592. }
  593. static __inline void 
  594. DeleteMsgPort (BASE_PAR_DECL struct MsgPort *port)
  595. {
  596.   BASE_EXT_DECL
  597.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  598.   register struct MsgPort *a0 __asm("a0") = port;
  599.   __asm __volatile ("jsr a6@(-0x2a0)"
  600.   : /* no output */
  601.   : "r" (a6), "r" (a0)
  602.   : "a0","a1","d0","d1", "memory");
  603. }
  604. static __inline void 
  605. DeletePool (BASE_PAR_DECL APTR poolHeader)
  606. {
  607.   BASE_EXT_DECL
  608.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  609.   register APTR a0 __asm("a0") = poolHeader;
  610.   __asm __volatile ("jsr a6@(-0x2be)"
  611.   : /* no output */
  612.   : "r" (a6), "r" (a0)
  613.   : "a0","a1","d0","d1", "memory");
  614. }
  615. static __inline void 
  616. Disable (BASE_PAR_DECL0)
  617. {
  618.   BASE_EXT_DECL
  619.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  620.   __asm __volatile ("jsr a6@(-0x78)"
  621.   : /* no output */
  622.   : "r" (a6)
  623.   : "a0","a1","d0","d1", "memory");
  624. }
  625. static __inline BYTE 
  626. DoIO (BASE_PAR_DECL struct IORequest *ioRequest)
  627. {
  628.   BASE_EXT_DECL
  629.   register BYTE  _res  __asm("d0");
  630.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  631.   register struct IORequest *a1 __asm("a1") = ioRequest;
  632.   __asm __volatile ("jsr a6@(-0x1c8)"
  633.   : "=r" (_res)
  634.   : "r" (a6), "r" (a1)
  635.   : "a0","a1","d0","d1", "memory");
  636.   return _res;
  637. }
  638. static __inline void 
  639. Enable (BASE_PAR_DECL0)
  640. {
  641.   BASE_EXT_DECL
  642.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  643.   __asm __volatile ("jsr a6@(-0x7e)"
  644.   : /* no output */
  645.   : "r" (a6)
  646.   : "a0","a1","d0","d1", "memory");
  647. }
  648. static __inline void 
  649. Enqueue (BASE_PAR_DECL struct List *list,struct Node *node)
  650. {
  651.   BASE_EXT_DECL
  652.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  653.   register struct List *a0 __asm("a0") = list;
  654.   register struct Node *a1 __asm("a1") = node;
  655.   __asm __volatile ("jsr a6@(-0x10e)"
  656.   : /* no output */
  657.   : "r" (a6), "r" (a0), "r" (a1)
  658.   : "a0","a1","d0","d1", "memory");
  659. }
  660. static __inline struct Node *
  661. FindName (BASE_PAR_DECL struct List *list,UBYTE *name)
  662. {
  663.   BASE_EXT_DECL
  664.   register struct Node * _res  __asm("d0");
  665.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  666.   register struct List *a0 __asm("a0") = list;
  667.   register UBYTE *a1 __asm("a1") = name;
  668.   __asm __volatile ("jsr a6@(-0x114)"
  669.   : "=r" (_res)
  670.   : "r" (a6), "r" (a0), "r" (a1)
  671.   : "a0","a1","d0","d1", "memory");
  672.   return _res;
  673. }
  674. static __inline struct MsgPort *
  675. FindPort (BASE_PAR_DECL UBYTE *name)
  676. {
  677.   BASE_EXT_DECL
  678.   register struct MsgPort * _res  __asm("d0");
  679.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  680.   register UBYTE *a1 __asm("a1") = name;
  681.   __asm __volatile ("jsr a6@(-0x186)"
  682.   : "=r" (_res)
  683.   : "r" (a6), "r" (a1)
  684.   : "a0","a1","d0","d1", "memory");
  685.   return _res;
  686. }
  687. static __inline struct Resident *
  688. FindResident (BASE_PAR_DECL UBYTE *name)
  689. {
  690.   BASE_EXT_DECL
  691.   register struct Resident * _res  __asm("d0");
  692.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  693.   register UBYTE *a1 __asm("a1") = name;
  694.   __asm __volatile ("jsr a6@(-0x60)"
  695.   : "=r" (_res)
  696.   : "r" (a6), "r" (a1)
  697.   : "a0","a1","d0","d1", "memory");
  698.   return _res;
  699. }
  700. static __inline struct SignalSemaphore *
  701. FindSemaphore (BASE_PAR_DECL UBYTE *sigSem)
  702. {
  703.   BASE_EXT_DECL
  704.   register struct SignalSemaphore * _res  __asm("d0");
  705.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  706.   register UBYTE *a1 __asm("a1") = sigSem;
  707.   __asm __volatile ("jsr a6@(-0x252)"
  708.   : "=r" (_res)
  709.   : "r" (a6), "r" (a1)
  710.   : "a0","a1","d0","d1", "memory");
  711.   return _res;
  712. }
  713. static __inline struct Task *
  714. FindTask (BASE_PAR_DECL UBYTE *name)
  715. {
  716.   BASE_EXT_DECL
  717.   register struct Task * _res  __asm("d0");
  718.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  719.   register UBYTE *a1 __asm("a1") = name;
  720.   __asm __volatile ("jsr a6@(-0x126)"
  721.   : "=r" (_res)
  722.   : "r" (a6), "r" (a1)
  723.   : "a0","a1","d0","d1", "memory");
  724.   return _res;
  725. }
  726. static __inline void 
  727. Forbid (BASE_PAR_DECL0)
  728. {
  729.   BASE_EXT_DECL
  730.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  731.   __asm __volatile ("jsr a6@(-0x84)"
  732.   : /* no output */
  733.   : "r" (a6)
  734.   : "a0","a1","d0","d1", "memory");
  735. }
  736. static __inline void 
  737. FreeEntry (BASE_PAR_DECL struct MemList *entry)
  738. {
  739.   BASE_EXT_DECL
  740.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  741.   register struct MemList *a0 __asm("a0") = entry;
  742.   __asm __volatile ("jsr a6@(-0xe4)"
  743.   : /* no output */
  744.   : "r" (a6), "r" (a0)
  745.   : "a0","a1","d0","d1", "memory");
  746. }
  747. static __inline void 
  748. FreeMem (BASE_PAR_DECL APTR memoryBlock,unsigned long byteSize)
  749. {
  750.   BASE_EXT_DECL
  751.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  752.   register APTR a1 __asm("a1") = memoryBlock;
  753.   register unsigned long d0 __asm("d0") = byteSize;
  754.   __asm __volatile ("jsr a6@(-0xd2)"
  755.   : /* no output */
  756.   : "r" (a6), "r" (a1), "r" (d0)
  757.   : "a0","a1","d0","d1", "memory");
  758. }
  759. static __inline void 
  760. FreePooled (BASE_PAR_DECL APTR poolHeader,APTR memory,unsigned long memSize)
  761. {
  762.   BASE_EXT_DECL
  763.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  764.   register APTR a0 __asm("a0") = poolHeader;
  765.   register APTR a1 __asm("a1") = memory;
  766.   register unsigned long d0 __asm("d0") = memSize;
  767.   __asm __volatile ("jsr a6@(-0x2ca)"
  768.   : /* no output */
  769.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  770.   : "a0","a1","d0","d1", "memory");
  771. }
  772. static __inline void 
  773. FreeSignal (BASE_PAR_DECL long signalNum)
  774. {
  775.   BASE_EXT_DECL
  776.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  777.   register long d0 __asm("d0") = signalNum;
  778.   __asm __volatile ("jsr a6@(-0x150)"
  779.   : /* no output */
  780.   : "r" (a6), "r" (d0)
  781.   : "a0","a1","d0","d1", "memory");
  782. }
  783. static __inline void 
  784. FreeTrap (BASE_PAR_DECL long trapNum)
  785. {
  786.   BASE_EXT_DECL
  787.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  788.   register long d0 __asm("d0") = trapNum;
  789.   __asm __volatile ("jsr a6@(-0x15c)"
  790.   : /* no output */
  791.   : "r" (a6), "r" (d0)
  792.   : "a0","a1","d0","d1", "memory");
  793. }
  794. static __inline void 
  795. FreeVec (BASE_PAR_DECL APTR memoryBlock)
  796. {
  797.   BASE_EXT_DECL
  798.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  799.   register APTR a1 __asm("a1") = memoryBlock;
  800.   __asm __volatile ("jsr a6@(-0x2b2)"
  801.   : /* no output */
  802.   : "r" (a6), "r" (a1)
  803.   : "a0","a1","d0","d1", "memory");
  804. }
  805. static __inline ULONG 
  806. GetCC (BASE_PAR_DECL0)
  807. {
  808.   BASE_EXT_DECL
  809.   register ULONG  _res  __asm("d0");
  810.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  811.   __asm __volatile ("jsr a6@(-0x210)"
  812.   : "=r" (_res)
  813.   : "r" (a6)
  814.   : "a0","a1","d0","d1", "memory");
  815.   return _res;
  816. }
  817. static __inline struct Message *
  818. GetMsg (BASE_PAR_DECL struct MsgPort *port)
  819. {
  820.   BASE_EXT_DECL
  821.   register struct Message * _res  __asm("d0");
  822.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  823.   register struct MsgPort *a0 __asm("a0") = port;
  824.   __asm __volatile ("jsr a6@(-0x174)"
  825.   : "=r" (_res)
  826.   : "r" (a6), "r" (a0)
  827.   : "a0","a1","d0","d1", "memory");
  828.   return _res;
  829. }
  830. static __inline void 
  831. InitCode (BASE_PAR_DECL unsigned long startClass,unsigned long version)
  832. {
  833.   BASE_EXT_DECL
  834.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  835.   register unsigned long d0 __asm("d0") = startClass;
  836.   register unsigned long d1 __asm("d1") = version;
  837.   __asm __volatile ("jsr a6@(-0x48)"
  838.   : /* no output */
  839.   : "r" (a6), "r" (d0), "r" (d1)
  840.   : "a0","a1","d0","d1", "memory");
  841. }
  842. static __inline APTR 
  843. InitResident (BASE_PAR_DECL struct Resident *resident,unsigned long segList)
  844. {
  845.   BASE_EXT_DECL
  846.   register APTR  _res  __asm("d0");
  847.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  848.   register struct Resident *a1 __asm("a1") = resident;
  849.   register unsigned long d1 __asm("d1") = segList;
  850.   __asm __volatile ("jsr a6@(-0x66)"
  851.   : "=r" (_res)
  852.   : "r" (a6), "r" (a1), "r" (d1)
  853.   : "a0","a1","d0","d1", "memory");
  854.   return _res;
  855. }
  856. static __inline void 
  857. InitSemaphore (BASE_PAR_DECL struct SignalSemaphore *sigSem)
  858. {
  859.   BASE_EXT_DECL
  860.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  861.   register struct SignalSemaphore *a0 __asm("a0") = sigSem;
  862.   __asm __volatile ("jsr a6@(-0x22e)"
  863.   : /* no output */
  864.   : "r" (a6), "r" (a0)
  865.   : "a0","a1","d0","d1", "memory");
  866. }
  867. static __inline void 
  868. InitStruct (BASE_PAR_DECL APTR initTable,APTR memory,unsigned long size)
  869. {
  870.   BASE_EXT_DECL
  871.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  872.   register APTR a1 __asm("a1") = initTable;
  873.   register APTR a2 __asm("a2") = memory;
  874.   register unsigned long d0 __asm("d0") = size;
  875.   __asm __volatile ("jsr a6@(-0x4e)"
  876.   : /* no output */
  877.   : "r" (a6), "r" (a1), "r" (a2), "r" (d0)
  878.   : "a0","a1","a2","d0","d1", "memory");
  879. }
  880. static __inline void 
  881. Insert (BASE_PAR_DECL struct List *list,struct Node *node,struct Node *pred)
  882. {
  883.   BASE_EXT_DECL
  884.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  885.   register struct List *a0 __asm("a0") = list;
  886.   register struct Node *a1 __asm("a1") = node;
  887.   register struct Node *a2 __asm("a2") = pred;
  888.   __asm __volatile ("jsr a6@(-0xea)"
  889.   : /* no output */
  890.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  891.   : "a0","a1","a2","d0","d1", "memory");
  892. }
  893. static __inline void 
  894. MakeFunctions (BASE_PAR_DECL APTR target,APTR functionArray,unsigned long funcDispBase)
  895. {
  896.   BASE_EXT_DECL
  897.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  898.   register APTR a0 __asm("a0") = target;
  899.   register APTR a1 __asm("a1") = functionArray;
  900.   register unsigned long a2 __asm("a2") = funcDispBase;
  901.   __asm __volatile ("jsr a6@(-0x5a)"
  902.   : /* no output */
  903.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  904.   : "a0","a1","a2","d0","d1", "memory");
  905. }
  906. static __inline struct Library *
  907. MakeLibrary (BASE_PAR_DECL APTR funcInit,APTR structInit,unsigned long (*libInit)(),unsigned long dataSize,unsigned long segList)
  908. {
  909.   BASE_EXT_DECL
  910.   register struct Library * _res  __asm("d0");
  911.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  912.   register APTR a0 __asm("a0") = funcInit;
  913.   register APTR a1 __asm("a1") = structInit;
  914.   register unsigned long (*a2)() __asm("a2") = libInit;
  915.   register unsigned long d0 __asm("d0") = dataSize;
  916.   register unsigned long d1 __asm("d1") = segList;
  917.   __asm __volatile ("jsr a6@(-0x54)"
  918.   : "=r" (_res)
  919.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (d0), "r" (d1)
  920.   : "a0","a1","a2","d0","d1", "memory");
  921.   return _res;
  922. }
  923. static __inline void 
  924. ObtainSemaphore (BASE_PAR_DECL struct SignalSemaphore *sigSem)
  925. {
  926.   BASE_EXT_DECL
  927.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  928.   register struct SignalSemaphore *a0 __asm("a0") = sigSem;
  929.   __asm __volatile ("jsr a6@(-0x234)"
  930.   : /* no output */
  931.   : "r" (a6), "r" (a0)
  932.   : "a0","a1","d0","d1", "memory");
  933. }
  934. static __inline void 
  935. ObtainSemaphoreList (BASE_PAR_DECL struct List *sigSem)
  936. {
  937.   BASE_EXT_DECL
  938.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  939.   register struct List *a0 __asm("a0") = sigSem;
  940.   __asm __volatile ("jsr a6@(-0x246)"
  941.   : /* no output */
  942.   : "r" (a6), "r" (a0)
  943.   : "a0","a1","d0","d1", "memory");
  944. }
  945. static __inline void 
  946. ObtainSemaphoreShared (BASE_PAR_DECL struct SignalSemaphore *sigSem)
  947. {
  948.   BASE_EXT_DECL
  949.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  950.   register struct SignalSemaphore *a0 __asm("a0") = sigSem;
  951.   __asm __volatile ("jsr a6@(-0x2a6)"
  952.   : /* no output */
  953.   : "r" (a6), "r" (a0)
  954.   : "a0","a1","d0","d1", "memory");
  955. }
  956. static __inline struct Library *
  957. OldOpenLibrary (BASE_PAR_DECL UBYTE *libName)
  958. {
  959.   BASE_EXT_DECL
  960.   register struct Library * _res  __asm("d0");
  961.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  962.   register UBYTE *a1 __asm("a1") = libName;
  963.   __asm __volatile ("jsr a6@(-0x198)"
  964.   : "=r" (_res)
  965.   : "r" (a6), "r" (a1)
  966.   : "a0","a1","d0","d1", "memory");
  967.   return _res;
  968. }
  969. static __inline BYTE 
  970. OpenDevice (BASE_PAR_DECL UBYTE *devName,unsigned long unit,struct IORequest *ioRequest,unsigned long flags)
  971. {
  972.   BASE_EXT_DECL
  973.   register BYTE  _res  __asm("d0");
  974.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  975.   register UBYTE *a0 __asm("a0") = devName;
  976.   register unsigned long d0 __asm("d0") = unit;
  977.   register struct IORequest *a1 __asm("a1") = ioRequest;
  978.   register unsigned long d1 __asm("d1") = flags;
  979.   __asm __volatile ("jsr a6@(-0x1bc)"
  980.   : "=r" (_res)
  981.   : "r" (a6), "r" (a0), "r" (d0), "r" (a1), "r" (d1)
  982.   : "a0","a1","d0","d1", "memory");
  983.   return _res;
  984. }
  985. static __inline struct Library *
  986. OpenLibrary (BASE_PAR_DECL UBYTE *libName,unsigned long version)
  987. {
  988.   BASE_EXT_DECL
  989.   register struct Library * _res  __asm("d0");
  990.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  991.   register UBYTE *a1 __asm("a1") = libName;
  992.   register unsigned long d0 __asm("d0") = version;
  993.   __asm __volatile ("jsr a6@(-0x228)"
  994.   : "=r" (_res)
  995.   : "r" (a6), "r" (a1), "r" (d0)
  996.   : "a0","a1","d0","d1", "memory");
  997.   return _res;
  998. }
  999. static __inline APTR 
  1000. OpenResource (BASE_PAR_DECL UBYTE *resName)
  1001. {
  1002.   BASE_EXT_DECL
  1003.   register APTR  _res  __asm("d0");
  1004.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1005.   register UBYTE *a1 __asm("a1") = resName;
  1006.   __asm __volatile ("jsr a6@(-0x1f2)"
  1007.   : "=r" (_res)
  1008.   : "r" (a6), "r" (a1)
  1009.   : "a0","a1","d0","d1", "memory");
  1010.   return _res;
  1011. }
  1012. static __inline void 
  1013. Permit (BASE_PAR_DECL0)
  1014. {
  1015.   BASE_EXT_DECL
  1016.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1017.   __asm __volatile ("jsr a6@(-0x8a)"
  1018.   : /* no output */
  1019.   : "r" (a6)
  1020.   : "a0","a1","d0","d1", "memory");
  1021. }
  1022. static __inline ULONG 
  1023. Procure (BASE_PAR_DECL struct SignalSemaphore *sigSem,struct SemaphoreMessage *bidMsg)
  1024. {
  1025.   BASE_EXT_DECL
  1026.   register ULONG  _res  __asm("d0");
  1027.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1028.   register struct SignalSemaphore *a0 __asm("a0") = sigSem;
  1029.   register struct SemaphoreMessage *a1 __asm("a1") = bidMsg;
  1030.   __asm __volatile ("jsr a6@(-0x21c)"
  1031.   : "=r" (_res)
  1032.   : "r" (a6), "r" (a0), "r" (a1)
  1033.   : "a0","a1","d0","d1", "memory");
  1034.   return _res;
  1035. }
  1036. static __inline void 
  1037. PutMsg (BASE_PAR_DECL struct MsgPort *port,struct Message *message)
  1038. {
  1039.   BASE_EXT_DECL
  1040.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1041.   register struct MsgPort *a0 __asm("a0") = port;
  1042.   register struct Message *a1 __asm("a1") = message;
  1043.   __asm __volatile ("jsr a6@(-0x16e)"
  1044.   : /* no output */
  1045.   : "r" (a6), "r" (a0), "r" (a1)
  1046.   : "a0","a1","d0","d1", "memory");
  1047. }
  1048. static __inline void 
  1049. RawDoFmt (BASE_PAR_DECL UBYTE *formatString,APTR dataStream,void (*putChProc)(),APTR putChData)
  1050. {
  1051.   BASE_EXT_DECL
  1052.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1053.   register UBYTE *a0 __asm("a0") = formatString;
  1054.   register APTR a1 __asm("a1") = dataStream;
  1055.   register void (*a2)() __asm("a2") = putChProc;
  1056.   register APTR a3 __asm("a3") = putChData;
  1057.   __asm __volatile ("jsr a6@(-0x20a)"
  1058.   : /* no output */
  1059.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (a3)
  1060.   : "a0","a1","a2","a3","d0","d1", "memory");
  1061. }
  1062. static __inline void 
  1063. ReleaseSemaphore (BASE_PAR_DECL struct SignalSemaphore *sigSem)
  1064. {
  1065.   BASE_EXT_DECL
  1066.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1067.   register struct SignalSemaphore *a0 __asm("a0") = sigSem;
  1068.   __asm __volatile ("jsr a6@(-0x23a)"
  1069.   : /* no output */
  1070.   : "r" (a6), "r" (a0)
  1071.   : "a0","a1","d0","d1", "memory");
  1072. }
  1073. static __inline void 
  1074. ReleaseSemaphoreList (BASE_PAR_DECL struct List *sigSem)
  1075. {
  1076.   BASE_EXT_DECL
  1077.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1078.   register struct List *a0 __asm("a0") = sigSem;
  1079.   __asm __volatile ("jsr a6@(-0x24c)"
  1080.   : /* no output */
  1081.   : "r" (a6), "r" (a0)
  1082.   : "a0","a1","d0","d1", "memory");
  1083. }
  1084. static __inline void 
  1085. RemDevice (BASE_PAR_DECL struct Device *device)
  1086. {
  1087.   BASE_EXT_DECL
  1088.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1089.   register struct Device *a1 __asm("a1") = device;
  1090.   __asm __volatile ("jsr a6@(-0x1b6)"
  1091.   : /* no output */
  1092.   : "r" (a6), "r" (a1)
  1093.   : "a0","a1","d0","d1", "memory");
  1094. }
  1095. static __inline struct Node *
  1096. RemHead (BASE_PAR_DECL struct List *list)
  1097. {
  1098.   BASE_EXT_DECL
  1099.   register struct Node * _res  __asm("d0");
  1100.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1101.   register struct List *a0 __asm("a0") = list;
  1102.   __asm __volatile ("jsr a6@(-0x102)"
  1103.   : "=r" (_res)
  1104.   : "r" (a6), "r" (a0)
  1105.   : "a0","a1","d0","d1", "memory");
  1106.   return _res;
  1107. }
  1108. static __inline void 
  1109. RemIntServer (BASE_PAR_DECL long intNumber,struct Interrupt *interrupt)
  1110. {
  1111.   BASE_EXT_DECL
  1112.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1113.   register long d0 __asm("d0") = intNumber;
  1114.   register struct Interrupt *a1 __asm("a1") = interrupt;
  1115.   __asm __volatile ("jsr a6@(-0xae)"
  1116.   : /* no output */
  1117.   : "r" (a6), "r" (d0), "r" (a1)
  1118.   : "a0","a1","d0","d1", "memory");
  1119. }
  1120. static __inline void 
  1121. RemLibrary (BASE_PAR_DECL struct Library *library)
  1122. {
  1123.   BASE_EXT_DECL
  1124.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1125.   register struct Library *a1 __asm("a1") = library;
  1126.   __asm __volatile ("jsr a6@(-0x192)"
  1127.   : /* no output */
  1128.   : "r" (a6), "r" (a1)
  1129.   : "a0","a1","d0","d1", "memory");
  1130. }
  1131. static __inline void 
  1132. RemMemHandler (BASE_PAR_DECL struct Interrupt *memhand)
  1133. {
  1134.   BASE_EXT_DECL
  1135.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1136.   register struct Interrupt *a1 __asm("a1") = memhand;
  1137.   __asm __volatile ("jsr a6@(-0x30c)"
  1138.   : /* no output */
  1139.   : "r" (a6), "r" (a1)
  1140.   : "a0","a1","d0","d1", "memory");
  1141. }
  1142. static __inline void 
  1143. RemPort (BASE_PAR_DECL struct MsgPort *port)
  1144. {
  1145.   BASE_EXT_DECL
  1146.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1147.   register struct MsgPort *a1 __asm("a1") = port;
  1148.   __asm __volatile ("jsr a6@(-0x168)"
  1149.   : /* no output */
  1150.   : "r" (a6), "r" (a1)
  1151.   : "a0","a1","d0","d1", "memory");
  1152. }
  1153. static __inline void 
  1154. RemResource (BASE_PAR_DECL APTR resource)
  1155. {
  1156.   BASE_EXT_DECL
  1157.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1158.   register APTR a1 __asm("a1") = resource;
  1159.   __asm __volatile ("jsr a6@(-0x1ec)"
  1160.   : /* no output */
  1161.   : "r" (a6), "r" (a1)
  1162.   : "a0","a1","d0","d1", "memory");
  1163. }
  1164. static __inline void 
  1165. RemSemaphore (BASE_PAR_DECL struct SignalSemaphore *sigSem)
  1166. {
  1167.   BASE_EXT_DECL
  1168.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1169.   register struct SignalSemaphore *a1 __asm("a1") = sigSem;
  1170.   __asm __volatile ("jsr a6@(-0x25e)"
  1171.   : /* no output */
  1172.   : "r" (a6), "r" (a1)
  1173.   : "a0","a1","d0","d1", "memory");
  1174. }
  1175. static __inline struct Node *
  1176. RemTail (BASE_PAR_DECL struct List *list)
  1177. {
  1178.   BASE_EXT_DECL
  1179.   register struct Node * _res  __asm("d0");
  1180.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1181.   register struct List *a0 __asm("a0") = list;
  1182.   __asm __volatile ("jsr a6@(-0x108)"
  1183.   : "=r" (_res)
  1184.   : "r" (a6), "r" (a0)
  1185.   : "a0","a1","d0","d1", "memory");
  1186.   return _res;
  1187. }
  1188. static __inline void 
  1189. RemTask (BASE_PAR_DECL struct Task *task)
  1190. {
  1191.   BASE_EXT_DECL
  1192.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1193.   register struct Task *a1 __asm("a1") = task;
  1194.   __asm __volatile ("jsr a6@(-0x120)"
  1195.   : /* no output */
  1196.   : "r" (a6), "r" (a1)
  1197.   : "a0","a1","d0","d1", "memory");
  1198. }
  1199. static __inline void 
  1200. Remove (BASE_PAR_DECL struct Node *node)
  1201. {
  1202.   BASE_EXT_DECL
  1203.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1204.   register struct Node *a1 __asm("a1") = node;
  1205.   __asm __volatile ("jsr a6@(-0xfc)"
  1206.   : /* no output */
  1207.   : "r" (a6), "r" (a1)
  1208.   : "a0","a1","d0","d1", "memory");
  1209. }
  1210. static __inline void 
  1211. ReplyMsg (BASE_PAR_DECL struct Message *message)
  1212. {
  1213.   BASE_EXT_DECL
  1214.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1215.   register struct Message *a1 __asm("a1") = message;
  1216.   __asm __volatile ("jsr a6@(-0x17a)"
  1217.   : /* no output */
  1218.   : "r" (a6), "r" (a1)
  1219.   : "a0","a1","d0","d1", "memory");
  1220. }
  1221. static __inline void 
  1222. SendIO (BASE_PAR_DECL struct IORequest *ioRequest)
  1223. {
  1224.   BASE_EXT_DECL
  1225.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1226.   register struct IORequest *a1 __asm("a1") = ioRequest;
  1227.   __asm __volatile ("jsr a6@(-0x1ce)"
  1228.   : /* no output */
  1229.   : "r" (a6), "r" (a1)
  1230.   : "a0","a1","d0","d1", "memory");
  1231. }
  1232. static __inline ULONG 
  1233. SetExcept (BASE_PAR_DECL unsigned long newSignals,unsigned long signalSet)
  1234. {
  1235.   BASE_EXT_DECL
  1236.   register ULONG  _res  __asm("d0");
  1237.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1238.   register unsigned long d0 __asm("d0") = newSignals;
  1239.   register unsigned long d1 __asm("d1") = signalSet;
  1240.   __asm __volatile ("jsr a6@(-0x138)"
  1241.   : "=r" (_res)
  1242.   : "r" (a6), "r" (d0), "r" (d1)
  1243.   : "a0","a1","d0","d1", "memory");
  1244.   return _res;
  1245. }
  1246. static __inline APTR 
  1247. SetFunction (BASE_PAR_DECL struct Library *library,long funcOffset,unsigned long (*newFunction)())
  1248. {
  1249.   BASE_EXT_DECL
  1250.   register APTR  _res  __asm("d0");
  1251.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1252.   register struct Library *a1 __asm("a1") = library;
  1253.   register long a0 __asm("a0") = funcOffset;
  1254.   register unsigned long (*d0)() __asm("d0") = newFunction;
  1255.   __asm __volatile ("jsr a6@(-0x1a4)"
  1256.   : "=r" (_res)
  1257.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0)
  1258.   : "a0","a1","d0","d1", "memory");
  1259.   return _res;
  1260. }
  1261. static __inline struct Interrupt *
  1262. SetIntVector (BASE_PAR_DECL long intNumber,struct Interrupt *interrupt)
  1263. {
  1264.   BASE_EXT_DECL
  1265.   register struct Interrupt * _res  __asm("d0");
  1266.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1267.   register long d0 __asm("d0") = intNumber;
  1268.   register struct Interrupt *a1 __asm("a1") = interrupt;
  1269.   __asm __volatile ("jsr a6@(-0xa2)"
  1270.   : "=r" (_res)
  1271.   : "r" (a6), "r" (d0), "r" (a1)
  1272.   : "a0","a1","d0","d1", "memory");
  1273.   return _res;
  1274. }
  1275. static __inline ULONG 
  1276. SetSR (BASE_PAR_DECL unsigned long newSR,unsigned long mask)
  1277. {
  1278.   BASE_EXT_DECL
  1279.   register ULONG  _res  __asm("d0");
  1280.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1281.   register unsigned long d0 __asm("d0") = newSR;
  1282.   register unsigned long d1 __asm("d1") = mask;
  1283.   __asm __volatile ("jsr a6@(-0x90)"
  1284.   : "=r" (_res)
  1285.   : "r" (a6), "r" (d0), "r" (d1)
  1286.   : "a0","a1","d0","d1", "memory");
  1287.   return _res;
  1288. }
  1289. static __inline ULONG 
  1290. SetSignal (BASE_PAR_DECL unsigned long newSignals,unsigned long signalSet)
  1291. {
  1292.   BASE_EXT_DECL
  1293.   register ULONG  _res  __asm("d0");
  1294.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1295.   register unsigned long d0 __asm("d0") = newSignals;
  1296.   register unsigned long d1 __asm("d1") = signalSet;
  1297.   __asm __volatile ("jsr a6@(-0x132)"
  1298.   : "=r" (_res)
  1299.   : "r" (a6), "r" (d0), "r" (d1)
  1300.   : "a0","a1","d0","d1", "memory");
  1301.   return _res;
  1302. }
  1303. static __inline BYTE 
  1304. SetTaskPri (BASE_PAR_DECL struct Task *task,long priority)
  1305. {
  1306.   BASE_EXT_DECL
  1307.   register BYTE  _res  __asm("d0");
  1308.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1309.   register struct Task *a1 __asm("a1") = task;
  1310.   register long d0 __asm("d0") = priority;
  1311.   __asm __volatile ("jsr a6@(-0x12c)"
  1312.   : "=r" (_res)
  1313.   : "r" (a6), "r" (a1), "r" (d0)
  1314.   : "a0","a1","d0","d1", "memory");
  1315.   return _res;
  1316. }
  1317. static __inline void 
  1318. Signal (BASE_PAR_DECL struct Task *task,unsigned long signalSet)
  1319. {
  1320.   BASE_EXT_DECL
  1321.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1322.   register struct Task *a1 __asm("a1") = task;
  1323.   register unsigned long d0 __asm("d0") = signalSet;
  1324.   __asm __volatile ("jsr a6@(-0x144)"
  1325.   : /* no output */
  1326.   : "r" (a6), "r" (a1), "r" (d0)
  1327.   : "a0","a1","d0","d1", "memory");
  1328. }
  1329. static __inline void 
  1330. StackSwap (BASE_PAR_DECL APTR newSize,APTR newSP,APTR newStack)
  1331. {
  1332.   BASE_EXT_DECL
  1333.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1334.   register APTR d0 __asm("d0") = newSize;
  1335.   register APTR d1 __asm("d1") = newSP;
  1336.   register APTR a0 __asm("a0") = newStack;
  1337.   __asm __volatile ("jsr a6@(-0x2dc)"
  1338.   : /* no output */
  1339.   : "r" (a6), "r" (d0), "r" (d1), "r" (a0)
  1340.   : "a0","a1","d0","d1", "memory");
  1341. }
  1342. static __inline ULONG 
  1343. SumKickData (BASE_PAR_DECL0)
  1344. {
  1345.   BASE_EXT_DECL
  1346.   register ULONG  _res  __asm("d0");
  1347.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1348.   __asm __volatile ("jsr a6@(-0x264)"
  1349.   : "=r" (_res)
  1350.   : "r" (a6)
  1351.   : "a0","a1","d0","d1", "memory");
  1352.   return _res;
  1353. }
  1354. static __inline void 
  1355. SumLibrary (BASE_PAR_DECL struct Library *library)
  1356. {
  1357.   BASE_EXT_DECL
  1358.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1359.   register struct Library *a1 __asm("a1") = library;
  1360.   __asm __volatile ("jsr a6@(-0x1aa)"
  1361.   : /* no output */
  1362.   : "r" (a6), "r" (a1)
  1363.   : "a0","a1","d0","d1", "memory");
  1364. }
  1365. static __inline APTR 
  1366. SuperState (BASE_PAR_DECL0)
  1367. {
  1368.   BASE_EXT_DECL
  1369.   register APTR  _res  __asm("d0");
  1370.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1371.   __asm __volatile ("jsr a6@(-0x96)"
  1372.   : "=r" (_res)
  1373.   : "r" (a6)
  1374.   : "a0","a1","d0","d1", "memory");
  1375.   return _res;
  1376. }
  1377. static __inline ULONG 
  1378. Supervisor (BASE_PAR_DECL unsigned long (*userFunction)())
  1379. {
  1380.   BASE_EXT_DECL
  1381.   register ULONG  _res  __asm("d0");
  1382.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1383.   register unsigned long (*a5)() __asm("d7") = userFunction;
  1384.   __asm __volatile ("exg d7,a5; jsr a6@(-0x1e); exg d7,a5"
  1385.   : "=r" (_res)
  1386.   : "r" (a6), "r" (a5)
  1387.   : "a0","a1","d0","d1","d7", "memory");
  1388.   return _res;
  1389. }
  1390. static __inline ULONG 
  1391. TypeOfMem (BASE_PAR_DECL APTR address)
  1392. {
  1393.   BASE_EXT_DECL
  1394.   register ULONG  _res  __asm("d0");
  1395.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1396.   register APTR a1 __asm("a1") = address;
  1397.   __asm __volatile ("jsr a6@(-0x216)"
  1398.   : "=r" (_res)
  1399.   : "r" (a6), "r" (a1)
  1400.   : "a0","a1","d0","d1", "memory");
  1401.   return _res;
  1402. }
  1403. static __inline void 
  1404. UserState (BASE_PAR_DECL APTR sysStack)
  1405. {
  1406.   BASE_EXT_DECL
  1407.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1408.   register APTR d0 __asm("d0") = sysStack;
  1409.   __asm __volatile ("jsr a6@(-0x9c)"
  1410.   : /* no output */
  1411.   : "r" (a6), "r" (d0)
  1412.   : "a0","a1","d0","d1", "memory");
  1413. }
  1414. static __inline void 
  1415. Vacate (BASE_PAR_DECL struct SignalSemaphore *sigSem,struct SemaphoreMessage *bidMsg)
  1416. {
  1417.   BASE_EXT_DECL
  1418.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1419.   register struct SignalSemaphore *a0 __asm("a0") = sigSem;
  1420.   register struct SemaphoreMessage *a1 __asm("a1") = bidMsg;
  1421.   __asm __volatile ("jsr a6@(-0x222)"
  1422.   : /* no output */
  1423.   : "r" (a6), "r" (a0), "r" (a1)
  1424.   : "a0","a1","d0","d1", "memory");
  1425. }
  1426. static __inline ULONG 
  1427. Wait (BASE_PAR_DECL unsigned long signalSet)
  1428. {
  1429.   BASE_EXT_DECL
  1430.   register ULONG  _res  __asm("d0");
  1431.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1432.   register unsigned long d0 __asm("d0") = signalSet;
  1433.   __asm __volatile ("jsr a6@(-0x13e)"
  1434.   : "=r" (_res)
  1435.   : "r" (a6), "r" (d0)
  1436.   : "a0","a1","d0","d1", "memory");
  1437.   return _res;
  1438. }
  1439. static __inline BYTE 
  1440. WaitIO (BASE_PAR_DECL struct IORequest *ioRequest)
  1441. {
  1442.   BASE_EXT_DECL
  1443.   register BYTE  _res  __asm("d0");
  1444.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1445.   register struct IORequest *a1 __asm("a1") = ioRequest;
  1446.   __asm __volatile ("jsr a6@(-0x1da)"
  1447.   : "=r" (_res)
  1448.   : "r" (a6), "r" (a1)
  1449.   : "a0","a1","d0","d1", "memory");
  1450.   return _res;
  1451. }
  1452. static __inline struct Message *
  1453. WaitPort (BASE_PAR_DECL struct MsgPort *port)
  1454. {
  1455.   BASE_EXT_DECL
  1456.   register struct Message * _res  __asm("d0");
  1457.   register struct ExecBase *a6 __asm("a6") = BASE_NAME;
  1458.   register struct MsgPort *a0 __asm("a0") = port;
  1459.   __asm __volatile ("jsr a6@(-0x180)"
  1460.   : "=r" (_res)
  1461.   : "r" (a6), "r" (a0)
  1462.   : "a0","a1","d0","d1", "memory");
  1463.   return _res;
  1464. }
  1465. #undef BASE_EXT_DECL
  1466. #undef BASE_PAR_DECL
  1467. #undef BASE_PAR_DECL0
  1468. #undef BASE_NAME
  1469.  
  1470. __END_DECLS
  1471.  
  1472. #endif /* _INLINE_EXEC_H */
  1473.