home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / gnu / os-include / inline / amigaguide.h < prev    next >
C/C++ Source or Header  |  1994-09-22  |  9KB  |  304 lines

  1. #ifndef _INLINE_AMIGAGUIDE_H
  2. #define _INLINE_AMIGAGUIDE_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
  11. #define BASE_EXT_DECL0 extern struct Library * AmigaGuideBase;
  12. #endif
  13. #ifndef BASE_PAR_DECL
  14. #define BASE_PAR_DECL
  15. #define BASE_PAR_DECL0 void
  16. #endif
  17. #ifndef BASE_NAME
  18. #define BASE_NAME AmigaGuideBase
  19. #endif
  20.  
  21. BASE_EXT_DECL0
  22.  
  23. extern __inline APTR 
  24. AddAmigaGuideHostA (BASE_PAR_DECL struct Hook *h,STRPTR name,struct TagItem *attrs)
  25. {
  26.   BASE_EXT_DECL
  27.   register APTR  _res  __asm("d0");
  28.   register struct Library *a6 __asm("a6") = BASE_NAME;
  29.   register struct Hook *a0 __asm("a0") = h;
  30.   register STRPTR d0 __asm("d0") = name;
  31.   register struct TagItem *a1 __asm("a1") = attrs;
  32.   __asm __volatile ("jsr a6@(-0x8a)"
  33.   : "=r" (_res)
  34.   : "r" (a6), "r" (a0), "r" (d0), "r" (a1)
  35.   : "a0","a1","d0","d1", "memory");
  36.   return _res;
  37. }
  38. #ifndef NO_INLINE_STDARG
  39. #define AddAmigaGuideHost(a0, a1, tags...) \
  40.   ({ struct TagItem _tags[] = { tags }; AddAmigaGuideHostA ((a0), (a1), _tags); })
  41. #endif /* not NO_INLINE_STDARG */
  42. extern __inline ULONG 
  43. AmigaGuideSignal (BASE_PAR_DECL APTR cl)
  44. {
  45.   BASE_EXT_DECL
  46.   register ULONG  _res  __asm("d0");
  47.   register struct Library *a6 __asm("a6") = BASE_NAME;
  48.   register APTR a0 __asm("a0") = cl;
  49.   __asm __volatile ("jsr a6@(-0x48)"
  50.   : "=r" (_res)
  51.   : "r" (a6), "r" (a0)
  52.   : "a0","a1","d0","d1", "memory");
  53.   return _res;
  54. }
  55. extern __inline void 
  56. CloseAmigaGuide (BASE_PAR_DECL APTR cl)
  57. {
  58.   BASE_EXT_DECL
  59.   register struct Library *a6 __asm("a6") = BASE_NAME;
  60.   register APTR a0 __asm("a0") = cl;
  61.   __asm __volatile ("jsr a6@(-0x42)"
  62.   : /* no output */
  63.   : "r" (a6), "r" (a0)
  64.   : "a0","a1","d0","d1", "memory");
  65. }
  66. extern __inline void 
  67. ExpungeXRef (BASE_PAR_DECL0)
  68. {
  69.   BASE_EXT_DECL
  70.   register struct Library *a6 __asm("a6") = BASE_NAME;
  71.   __asm __volatile ("jsr a6@(-0x84)"
  72.   : /* no output */
  73.   : "r" (a6)
  74.   : "a0","a1","d0","d1", "memory");
  75. }
  76. extern __inline LONG 
  77. GetAmigaGuideAttr (BASE_PAR_DECL Tag tag,APTR cl,ULONG *storage)
  78. {
  79.   BASE_EXT_DECL
  80.   register LONG  _res  __asm("d0");
  81.   register struct Library *a6 __asm("a6") = BASE_NAME;
  82.   register Tag d0 __asm("d0") = tag;
  83.   register APTR a0 __asm("a0") = cl;
  84.   register ULONG *a1 __asm("a1") = storage;
  85.   __asm __volatile ("jsr a6@(-0x72)"
  86.   : "=r" (_res)
  87.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  88.   : "a0","a1","d0","d1", "memory");
  89.   return _res;
  90. }
  91. extern __inline struct AmigaGuideMsg *
  92. GetAmigaGuideMsg (BASE_PAR_DECL APTR cl)
  93. {
  94.   BASE_EXT_DECL
  95.   register struct AmigaGuideMsg * _res  __asm("d0");
  96.   register struct Library *a6 __asm("a6") = BASE_NAME;
  97.   register APTR a0 __asm("a0") = cl;
  98.   __asm __volatile ("jsr a6@(-0x4e)"
  99.   : "=r" (_res)
  100.   : "r" (a6), "r" (a0)
  101.   : "a0","a1","d0","d1", "memory");
  102.   return _res;
  103. }
  104. extern __inline STRPTR 
  105. GetAmigaGuideString (BASE_PAR_DECL long id)
  106. {
  107.   BASE_EXT_DECL
  108.   register STRPTR  _res  __asm("d0");
  109.   register struct Library *a6 __asm("a6") = BASE_NAME;
  110.   register long d0 __asm("d0") = id;
  111.   __asm __volatile ("jsr a6@(-0xd2)"
  112.   : "=r" (_res)
  113.   : "r" (a6), "r" (d0)
  114.   : "a0","a1","d0","d1", "memory");
  115.   return _res;
  116. }
  117. extern __inline LONG 
  118. LoadXRef (BASE_PAR_DECL BPTR lock,STRPTR name)
  119. {
  120.   BASE_EXT_DECL
  121.   register LONG  _res  __asm("d0");
  122.   register struct Library *a6 __asm("a6") = BASE_NAME;
  123.   register BPTR a0 __asm("a0") = lock;
  124.   register STRPTR a1 __asm("a1") = name;
  125.   __asm __volatile ("jsr a6@(-0x7e)"
  126.   : "=r" (_res)
  127.   : "r" (a6), "r" (a0), "r" (a1)
  128.   : "a0","a1","d0","d1", "memory");
  129.   return _res;
  130. }
  131. extern __inline LONG 
  132. LockAmigaGuideBase (BASE_PAR_DECL APTR handle)
  133. {
  134.   BASE_EXT_DECL
  135.   register LONG  _res  __asm("d0");
  136.   register struct Library *a6 __asm("a6") = BASE_NAME;
  137.   register APTR a0 __asm("a0") = handle;
  138.   __asm __volatile ("jsr a6@(-0x24)"
  139.   : "=r" (_res)
  140.   : "r" (a6), "r" (a0)
  141.   : "a0","a1","d0","d1", "memory");
  142.   return _res;
  143. }
  144. extern __inline APTR 
  145. OpenAmigaGuideA (BASE_PAR_DECL struct NewAmigaGuide *nag,struct TagItem *tags)
  146. {
  147.   BASE_EXT_DECL
  148.   register APTR  _res  __asm("d0");
  149.   register struct Library *a6 __asm("a6") = BASE_NAME;
  150.   register struct NewAmigaGuide *a0 __asm("a0") = nag;
  151.   register struct TagItem *a1 __asm("a1") = tags;
  152.   __asm __volatile ("jsr a6@(-0x36)"
  153.   : "=r" (_res)
  154.   : "r" (a6), "r" (a0), "r" (a1)
  155.   : "a0","a1","d0","d1", "memory");
  156.   return _res;
  157. }
  158. #ifndef NO_INLINE_STDARG
  159. #define OpenAmigaGuide(a0, tags...) \
  160.   ({ struct TagItem _tags[] = { tags }; OpenAmigaGuideA ((a0), _tags); })
  161. #endif /* not NO_INLINE_STDARG */
  162. extern __inline APTR 
  163. OpenAmigaGuideAsyncA (BASE_PAR_DECL struct NewAmigaGuide *nag,struct TagItem *attrs)
  164. {
  165.   BASE_EXT_DECL
  166.   register APTR  _res  __asm("d0");
  167.   register struct Library *a6 __asm("a6") = BASE_NAME;
  168.   register struct NewAmigaGuide *a0 __asm("a0") = nag;
  169.   register struct TagItem *d0 __asm("d0") = attrs;
  170.   __asm __volatile ("jsr a6@(-0x3c)"
  171.   : "=r" (_res)
  172.   : "r" (a6), "r" (a0), "r" (d0)
  173.   : "a0","a1","d0","d1", "memory");
  174.   return _res;
  175. }
  176. #ifndef NO_INLINE_STDARG
  177. #define OpenAmigaGuideAsync(a0, tags...) \
  178.   ({ struct TagItem _tags[] = { tags }; OpenAmigaGuideAsyncA ((a0), _tags); })
  179. #endif /* not NO_INLINE_STDARG */
  180. extern __inline LONG 
  181. RemoveAmigaGuideHostA (BASE_PAR_DECL APTR hh,struct TagItem *attrs)
  182. {
  183.   BASE_EXT_DECL
  184.   register LONG  _res  __asm("d0");
  185.   register struct Library *a6 __asm("a6") = BASE_NAME;
  186.   register APTR a0 __asm("a0") = hh;
  187.   register struct TagItem *a1 __asm("a1") = attrs;
  188.   __asm __volatile ("jsr a6@(-0x90)"
  189.   : "=r" (_res)
  190.   : "r" (a6), "r" (a0), "r" (a1)
  191.   : "a0","a1","d0","d1", "memory");
  192.   return _res;
  193. }
  194. #ifndef NO_INLINE_STDARG
  195. #define RemoveAmigaGuideHost(a0, tags...) \
  196.   ({ struct TagItem _tags[] = { tags }; RemoveAmigaGuideHostA ((a0), _tags); })
  197. #endif /* not NO_INLINE_STDARG */
  198. extern __inline void 
  199. ReplyAmigaGuideMsg (BASE_PAR_DECL struct AmigaGuideMsg *amsg)
  200. {
  201.   BASE_EXT_DECL
  202.   register struct Library *a6 __asm("a6") = BASE_NAME;
  203.   register struct AmigaGuideMsg *a0 __asm("a0") = amsg;
  204.   __asm __volatile ("jsr a6@(-0x54)"
  205.   : /* no output */
  206.   : "r" (a6), "r" (a0)
  207.   : "a0","a1","d0","d1", "memory");
  208. }
  209. extern __inline LONG 
  210. SendAmigaGuideCmdA (BASE_PAR_DECL APTR cl,STRPTR cmd,struct TagItem *attrs)
  211. {
  212.   BASE_EXT_DECL
  213.   register LONG  _res  __asm("d0");
  214.   register struct Library *a6 __asm("a6") = BASE_NAME;
  215.   register APTR a0 __asm("a0") = cl;
  216.   register STRPTR d0 __asm("d0") = cmd;
  217.   register struct TagItem *d1 __asm("d1") = attrs;
  218.   __asm __volatile ("jsr a6@(-0x66)"
  219.   : "=r" (_res)
  220.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  221.   : "a0","a1","d0","d1", "memory");
  222.   return _res;
  223. }
  224. #ifndef NO_INLINE_STDARG
  225. #define SendAmigaGuideCmd(a0, a1, tags...) \
  226.   ({ struct TagItem _tags[] = { tags }; SendAmigaGuideCmdA ((a0), (a1), _tags); })
  227. #endif /* not NO_INLINE_STDARG */
  228. extern __inline LONG 
  229. SendAmigaGuideContextA (BASE_PAR_DECL APTR cl,struct TagItem *attrs)
  230. {
  231.   BASE_EXT_DECL
  232.   register LONG  _res  __asm("d0");
  233.   register struct Library *a6 __asm("a6") = BASE_NAME;
  234.   register APTR a0 __asm("a0") = cl;
  235.   register struct TagItem *d0 __asm("d0") = attrs;
  236.   __asm __volatile ("jsr a6@(-0x60)"
  237.   : "=r" (_res)
  238.   : "r" (a6), "r" (a0), "r" (d0)
  239.   : "a0","a1","d0","d1", "memory");
  240.   return _res;
  241. }
  242. #ifndef NO_INLINE_STDARG
  243. #define SendAmigaGuideContext(a0, tags...) \
  244.   ({ struct TagItem _tags[] = { tags }; SendAmigaGuideContextA ((a0), _tags); })
  245. #endif /* not NO_INLINE_STDARG */
  246. extern __inline LONG 
  247. SetAmigaGuideAttrsA (BASE_PAR_DECL APTR cl,struct TagItem *attrs)
  248. {
  249.   BASE_EXT_DECL
  250.   register LONG  _res  __asm("d0");
  251.   register struct Library *a6 __asm("a6") = BASE_NAME;
  252.   register APTR a0 __asm("a0") = cl;
  253.   register struct TagItem *a1 __asm("a1") = attrs;
  254.   __asm __volatile ("jsr a6@(-0x6c)"
  255.   : "=r" (_res)
  256.   : "r" (a6), "r" (a0), "r" (a1)
  257.   : "a0","a1","d0","d1", "memory");
  258.   return _res;
  259. }
  260. #ifndef NO_INLINE_STDARG
  261. #define SetAmigaGuideAttrs(a0, tags...) \
  262.   ({ struct TagItem _tags[] = { tags }; SetAmigaGuideAttrsA ((a0), _tags); })
  263. #endif /* not NO_INLINE_STDARG */
  264. extern __inline LONG 
  265. SetAmigaGuideContextA (BASE_PAR_DECL APTR cl,unsigned long id,struct TagItem *attrs)
  266. {
  267.   BASE_EXT_DECL
  268.   register LONG  _res  __asm("d0");
  269.   register struct Library *a6 __asm("a6") = BASE_NAME;
  270.   register APTR a