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