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