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