home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / c / gcc233.lha / os-include / inline / amigaguide.h next >
C/C++ Source or Header  |  1992-12-29  |  13KB  |  448 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 Library*  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 LONG 
  21. ARexxHost (BASE_PAR_DECL struct RexxMsg *rmsg,STRPTR *result)
  22. {
  23.   BASE_EXT_DECL
  24.   register LONG  _res  __asm("d0");
  25.   register struct Library* a6 __asm("a6") = BASE_NAME;
  26.   register struct RexxMsg *a0 __asm("a0") = rmsg;
  27.   register STRPTR *a1 __asm("a1") = result;
  28.   __asm __volatile ("jsr a6@(-0x1e)"
  29.   : "=r" (_res)
  30.   : "r" (a6), "r" (a0), "r" (a1)
  31.   : "a0","a1","d0","d1", "memory");
  32.   return _res;
  33. }
  34. static __inline ULONG 
  35. AddAmigaGuideHostA (BASE_PAR_DECL struct Hook *h,STRPTR name,struct TagItem *attrs)
  36. {
  37.   BASE_EXT_DECL
  38.   register ULONG  _res  __asm("d0");
  39.   register struct Library* a6 __asm("a6") = BASE_NAME;
  40.   register struct Hook *a0 __asm("a0") = h;
  41.   register STRPTR d0 __asm("d0") = name;
  42.   register struct TagItem *a1 __asm("a1") = attrs;
  43.   __asm __volatile ("jsr a6@(-0x8a)"
  44.   : "=r" (_res)
  45.   : "r" (a6), "r" (a0), "r" (d0), "r" (a1)
  46.   : "a0","a1","d0","d1", "memory");
  47.   return _res;
  48. }
  49. static __inline BPTR 
  50. AddPathEntries (BASE_PAR_DECL BPTR path,STRPTR *argptr)
  51. {
  52.   BASE_EXT_DECL
  53.   register BPTR  _res  __asm("d0");
  54.   register struct Library* a6 __asm("a6") = BASE_NAME;
  55.   register BPTR a0 __asm("a0") = path;
  56.   register STRPTR *d0 __asm("d0") = argptr;
  57.   __asm __volatile ("jsr a6@(-0xa8)"
  58.   : "=r" (_res)
  59.   : "r" (a6), "r" (a0), "r" (d0)
  60.   : "a0","a1","d0","d1", "memory");
  61.   return _res;
  62. }
  63. static __inline ULONG 
  64. AmigaGuideSignal (BASE_PAR_DECL APTR cl)
  65. {
  66.   BASE_EXT_DECL
  67.   register ULONG  _res  __asm("d0");
  68.   register struct Library* a6 __asm("a6") = BASE_NAME;
  69.   register APTR a0 __asm("a0") = cl;
  70.   __asm __volatile ("jsr a6@(-0x48)"
  71.   : "=r" (_res)
  72.   : "r" (a6), "r" (a0)
  73.   : "a0","a1","d0","d1", "memory");
  74.   return _res;
  75. }
  76. static __inline void 
  77. CloseAmigaGuide (BASE_PAR_DECL APTR cl)
  78. {
  79.   BASE_EXT_DECL
  80.   register struct Library* a6 __asm("a6") = BASE_NAME;
  81.   register APTR a0 __asm("a0") = cl;
  82.   __asm __volatile ("jsr a6@(-0x42)"
  83.   : /* no output */
  84.   : "r" (a6), "r" (a0)
  85.   : "a0","a1","d0","d1", "memory");
  86. }
  87. static __inline LONG 
  88. CloseDataBase (BASE_PAR_DECL struct DataBase *db)
  89. {
  90.   BASE_EXT_DECL
  91.   register LONG  _res  __asm("d0");
  92.   register struct Library* a6 __asm("a6") = BASE_NAME;
  93.   register struct DataBase *a0 __asm("a0") = db;
  94.   __asm __volatile ("jsr a6@(-0xcc)"
  95.   : "=r" (_res)
  96.   : "r" (a6), "r" (a0)
  97.   : "a0","a1","d0","d1", "memory");
  98.   return _res;
  99. }
  100. static __inline BPTR 
  101. CopyPathList (BASE_PAR_DECL BPTR path)
  102. {
  103.   BASE_EXT_DECL
  104.   register BPTR  _res  __asm("d0");
  105.   register struct Library* a6 __asm("a6") = BASE_NAME;
  106.   register BPTR a0 __asm("a0") = path;
  107.   __asm __volatile ("jsr a6@(-0xa2)"
  108.   : "=r" (_res)
  109.   : "r" (a6), "r" (a0)
  110.   : "a0","a1","d0","d1", "memory");
  111.   return _res;
  112. }
  113. static __inline void 
  114. ExpungeDataBases (BASE_PAR_DECL long flush)
  115. {
  116.   BASE_EXT_DECL
  117.   register struct Library* a6 __asm("a6") = BASE_NAME;
  118.   register long d0 __asm("d0") = flush;
  119.   __asm __volatile ("jsr a6@(-0x30)"
  120.   : /* no output */
  121.   : "r" (a6), "r" (d0)
  122.   : "a0","a1","d0","d1", "memory");
  123. }
  124. static __inline void 
  125. ExpungeXRef (BASE_PAR_DECL0)
  126. {
  127.   BASE_EXT_DECL
  128.   register struct Library* a6 __asm("a6") = BASE_NAME;
  129.   __asm __volatile ("jsr a6@(-0x84)"
  130.   : /* no output */
  131.   : "r" (a6)
  132.   : "a0","a1","d0","d1", "memory");
  133. }
  134. static __inline void 
  135. FreePathList (BASE_PAR_DECL BPTR path)
  136. {
  137.   BASE_EXT_DECL
  138.   register struct Library* a6 __asm("a6") = BASE_NAME;
  139.   register BPTR a0 __asm("a0") = path;
  140.   __asm __volatile ("jsr a6@(-0xae)"
  141.   : /* no output */
  142.   : "r" (a6), "r" (a0)
  143.   : "a0","a1","d0","d1", "memory");
  144. }
  145. static __inline LONG 
  146. GetAmigaGuideAttr (BASE_PAR_DECL ULONG tag,APTR cl,ULONG *storage)
  147. {
  148.   BASE_EXT_DECL
  149.   register LONG  _res  __asm("d0");
  150.   register struct Library* a6 __asm("a6") = BASE_NAME;
  151.   register ULONG d0 __asm("d0") = tag;
  152.   register APTR a0 __asm("a0") = cl;
  153.   register ULONG *a1 __asm("a1") = storage;
  154.   __asm __volatile ("jsr a6@(-0x72)"
  155.   : "=r" (_res)
  156.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  157.   : "a0","a1","d0","d1", "memory");
  158.   return _res;
  159. }
  160. static __inline struct AmigaGuideMsg *
  161. GetAmigaGuideMsg (BASE_PAR_DECL APTR cl)
  162. {
  163.   BASE_EXT_DECL
  164.   register struct AmigaGuideMsg * _res  __asm("d0");
  165.   register struct Library* a6 __asm("a6") = BASE_NAME;
  166.   register APTR a0 __asm("a0") = cl;
  167.   __asm __volatile ("jsr a6@(-0x4e)"
  168.   : "=r" (_res)
  169.   : "r" (a6), "r" (a0)
  170.   : "a0","a1","d0","d1", "memory");
  171.   return _res;
  172. }
  173. static __inline STRPTR 
  174. GetAmigaGuideString (BASE_PAR_DECL long id)
  175. {
  176.   BASE_EXT_DECL
  177.   register STRPTR  _res  __asm("d0");
  178.   register struct Library* a6 __asm("a6") = BASE_NAME;
  179.   register long d0 __asm("d0") = id;
  180.   __asm __volatile ("jsr a6@(-0xd2)"
  181.   : "=r" (_res)
  182.   : "r" (a6), "r" (d0)
  183.   : "a0","a1","d0","d1", "memory");
  184.   return _res;
  185. }
  186. static __inline LONG 
  187. LoadNode (BASE_PAR_DECL APTR cl,struct DataBase *db,struct HelpNode *hn)
  188. {
  189.   BASE_EXT_DECL
  190.   register LONG  _res  __asm("d0");
  191.   register struct Library* a6 __asm("a6") = BASE_NAME;
  192.   register APTR a0 __asm("a0") = cl;
  193.   register struct DataBase *a1 __asm("a1") = db;
  194.   register struct HelpNode *a2 __asm("a2") = hn;
  195.   __asm __volatile ("jsr a6@(-0xc0)"
  196.   : "=r" (_res)
  197.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  198.   : "a0","a1","a2","d0","d1", "memory");
  199.   return _res;
  200. }
  201. static __inline LONG 
  202. LoadXRef (BASE_PAR_DECL BPTR lock,STRPTR name)
  203. {
  204.   BASE_EXT_DECL
  205.   register LONG  _res  __asm("d0");
  206.   register struct Library* a6 __asm("a6") = BASE_NAME;
  207.   register BPTR a0 __asm("a0") = lock;
  208.   register STRPTR a1 __asm("a1") = name;
  209.   __asm __volatile ("jsr a6@(-0x7e)"
  210.   : "=r" (_res)
  211.   : "r" (a6), "r" (a0), "r" (a1)
  212.   : "a0","a1","d0","d1", "memory");
  213.   return _res;
  214. }
  215. static __inline LONG 
  216. LockAmigaGuideBase (BASE_PAR_DECL APTR handle)
  217. {
  218.   BASE_EXT_DECL
  219.   register LONG  _res  __asm("d0");
  220.   register struct Library* a6 __asm("a6") = BASE_NAME;
  221.   register APTR a0 __asm("a0") = handle;
  222.   __asm __volatile ("jsr a6@(-0x24)"
  223.   : "=r" (_res)
  224.   : "r" (a6), "r" (a0)
  225.   : "a0","a1","d0","d1", "memory");
  226.   return _res;
  227. }
  228. static __inline BPTR 
  229. LockE (BASE_PAR_DECL BPTR path,STRPTR name,long mode)
  230. {
  231.   BASE_EXT_DECL
  232.   register BPTR  _res  __asm("d0");
  233.   register struct Library* a6 __asm("a6") = BASE_NAME;
  234.   register BPTR a0 __asm("a0") = path;
  235.   register STRPTR d1 __asm("d1") = name;
  236.   register long d2 __asm("d2") = mode;
  237.   __asm __volatile ("jsr a6@(-0x9c)"
  238.   : "=r" (_res)
  239.   : "r" (a6), "r" (a0), "r" (d1), "r" (d2)
  240.   : "a0","a1","d0","d1","d2", "memory");
  241.   return _res;
  242. }
  243. static __inline APTR 
  244. OpenAmigaGuideA (BASE_PAR_DECL struct NewAmigaGuide *nag,struct TagItem *tag)
  245. {
  246.   BASE_EXT_DECL
  247.   register APTR  _res  __asm("d0");
  248.   register struct Library* a6 __asm("a6") = BASE_NAME;
  249.   register struct NewAmigaGuide *a0 __asm("a0") = nag;
  250.   register struct TagItem * a1 __asm("a1") = tag;
  251.   __asm __volatile ("jsr a6@(-0x36)"
  252.   : "=r" (_res)
  253.   : "r" (a6), "r" (a0), "r" (a1)
  254.   : "a0","a1","d0","d1", "memory");
  255.   return _res;
  256. }
  257. static __inline APTR 
  258. OpenAmigaGuideAsyncA (BASE_PAR_DECL struct NewAmigaGuide *nag,struct TagItem *attrs)
  259. {
  260.   BASE_EXT_DECL
  261.   register APTR  _res  __asm("d0");
  262.   register struct Library* a6 __asm("a6") = BASE_NAME;
  263.   register struct NewAmigaGuide *a0 __asm("a0") = nag;
  264.   register struct TagItem *d0 __asm("d0") = attrs;
  265.   __asm __volatile ("jsr a6@(-0x3c)"
  266.   : "=r" (_res)
  267.   : "r" (a6), "r" (a0), "r" (d0)
  268.   : "a0","a1","d0","d1", "memory");
  269.   return _res;
  270. }
  271. static __inline struct DataBase *
  272. OpenDataBase (BASE_PAR_DECL BPTR lock,STRPTR name)
  273. {
  274.   BASE_EXT_DECL
  275.   register struct DataBase * _res  __asm("d0");
  276.   register struct Library* a6 __asm("a6") = BASE_NAME;
  277.   register BPTR a0 __asm("a0") = lock;
  278.   register STRPTR a1 __asm("a1") = name;
  279.   __asm __volatile ("jsr a6@(-0xba)"
  280.   : "=r" (_res)
  281.   : "r" (a6), "r" (a0), "r" (a1)
  282.   : "a0","a1","d0","d1", "memory");
  283.   return _res;
  284. }
  285. static __inline BPTR 
  286. OpenE (BASE_PAR_DECL BPTR path,STRPTR name,long mode)
  287. {
  288.   BASE_EXT_DECL
  289.   register BPTR  _res  __asm("d0");
  290.   register struct Library* a6 __asm("a6") = BASE_NAME;
  291.   register BPTR a0 __asm("a0") = path;
  292.   register STRPTR d1 __asm("d1") = name;
  293.   register long d2 __asm("d2") = mode;
  294.   __asm __volatile ("jsr a6@(-0x96)"
  295.   : "=r" (_res)
  296.   : "r" (a6), "r" (a0), "r" (d1), "r" (d2)
  297.   : "a0","a1","d0","d1","d2", "memory");
  298.   return _res;
  299. }
  300. static __inline ULONG 
  301. ParsePathString (BASE_PAR_DECL STRPTR line,STRPTR *argv,unsigned long max)
  302. {
  303.   BASE_EXT_DECL
  304.   register ULONG  _res  __asm("d0");
  305.   register struct Library* a6 __asm("a6") = BASE_NAME;
  306.   register STRPTR d0 __asm("d0") = line;
  307.   register STRPTR *a0 __asm("a0") = argv;
  308.   register unsigned long d1 __asm("d1") = max;
  309.   __asm __volatile ("jsr a6@(-0xb4)"
  310.   : "=r" (_res)
  311.   : "r" (a6), "r" (d0), "r" (a0), "r" (d1)
  312.   : "a0","a1","d0","d1", "memory");
  313.   return _res;
  314. }
  315. static __inline LONG 
  316. RemoveAmigaGuideHostA (BASE_PAR_DECL APTR hh,struct TagItem *attrs)
  317. {
  318.   BASE_EXT_DECL
  319.   register LONG  _res  __asm("d0");
  320.   register struct Library* a6 __asm("a6") = BASE_NAME;
  321.   register APTR a0 __asm("a0") = hh;
  322.   register struct TagItem *a1 __asm("a1") = attrs;
  323.   __asm __volatile ("jsr a6@(-0x90)"
  324.   : "=r" (_res)
  325.   : "r" (a6), "r" (a0), "r" (a1)
  326.   : "a0","a1","d0","d1", "memory");
  327.   return _res;
  328. }
  329. static __inline void 
  330. ReplyAmigaGuideMsg (BASE_PAR_DECL struct AmigaGuideMsg *amsg)
  331. {
  332.   BASE_EXT_DECL
  333.   register struct Library* a6 __asm("a6") = BASE_NAME;
  334.   register struct AmigaGuideMsg *a0 __asm("a0") = amsg;
  335.   __asm __volatile ("jsr a6@(-0x54)"
  336.   : /* no output */
  337.   : "r" (a6), "r" (a0)
  338.   : "a0","a1","d0","d1", "memory");
  339. }
  340. static __inline LONG 
  341. SendAmigaGuideCmdA (BASE_PAR_DECL APTR cl,STRPTR cmd,struct TagItem *attrs)
  342. {
  343.   BASE_EXT_DECL
  344.   register LONG  _res  __asm("d0");
  345.   register struct Library* a6 __asm("a6") = BASE_NAME;
  346.   register APTR a0 __asm("a0") = cl;
  347.   register STRPTR d0 __asm("d0") = cmd;
  348.   register struct TagItem *d1 __asm("d1") = attrs;
  349.   __asm __volatile ("jsr a6@(-0x66)"
  350.   : "=r" (_res)
  351.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  352.   : "a0","a1","d0","d1", "memory");
  353.   return _res;
  354. }
  355. static __inline LONG 
  356. SendAmigaGuideContextA (BASE_PAR_DECL APTR cl,struct TagItem *attrs)
  357. {
  358.   BASE_EXT_DECL
  359.   register LONG  _res  __asm("d0");
  360.   register struct Library* a6 __asm("a6") = BASE_NAME;
  361.   register APTR a0 __asm("a0") = cl;
  362.   register struct TagItem *d0 __asm("d0") = attrs;
  363.   __asm __volatile ("jsr a6@(-0x60)"
  364.   : "=r" (_res)
  365.   : "r" (a6), "r" (a0), "r" (d0)
  366.   : "a0","a1","d0","d1", "memory");
  367.   return _res;
  368. }
  369. static __inline LONG 
  370. SetAmigaGuideAttrsA (BASE_PAR_DECL APTR cl,struct TagItem *attrs)
  371. {
  372.   BASE_EXT_DECL
  373.   register LONG  _res  __asm("d0");
  374.   register struct Library* a6 __asm("a6") = BASE_NAME;
  375.   register APTR a0 __asm("a0") = cl;
  376.   register struct TagItem *a1 __asm("a1") = attrs;
  377.   __asm __volatile ("jsr a6@(-0x6c)"
  378.   : "=r" (_res)
  379.   : "r" (a6), "r" (a0), "r" (a1)
  380.   : "a0","a1","d0","d1", "memory");
  381.   return _res;
  382. }
  383. static __inline LONG 
  384. SetAmigaGuideContextA (BASE_PAR_DECL APTR cl,unsigned long id,struct TagItem *attrs)
  385. {
  386.   BASE_EXT_DECL
  387.   register LONG  _res  __asm("d0");
  388.   register struct Library* a6 __asm("a6") = BASE_NAME;
  389.   register APTR a0 __asm("a0") = cl;
  390.   register unsigned long d0 __asm("d0") = id;
  391.   register struct TagItem *d1 __asm("d1") = attrs;
  392.   __asm __volatile ("jsr a6@(-0x5a)"
  393.   : "=r" (_res)
  394.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  395.   : "a0","a1","d0","d1", "memory");
  396.   return _res;
  397. }
  398. static __inline LONG 
  399. SetAmigaGuideHook (BASE_PAR_DECL APTR cl,unsigned long v1,unsigned long v2,unsigned long v3)
  400. {
  401.   BASE_EXT_DECL
  402.   register LONG  _res  __asm("d0");
  403.   register struct Library* a6 __asm("a6") = BASE_NAME;
  404.   register APTR a0 __asm("a0") = cl;
  405.   register unsigned long d0 __asm("d0") = v1;
  406.   register unsigned long a1 __asm("a1") = v2;
  407.   register unsigned long a2 __asm("a2") = v3;
  408.   __asm __volatile ("jsr a6@(-0x78)"
  409.   : "=r" (_res)
  410.   : "r" (a6), "r" (a0), "r" (d0), "r" (a1), "r" (a2)
  411.   : "a0","a1","a2","d0","d1", "memory");
  412.   return _res;
  413. }
  414. static __inline LONG 
  415. UnloadNode (BASE_PAR_DECL APTR cl,struct DataBase *db,struct HelpNode *hn)
  416. {
  417.   BASE_EXT_DECL
  418.   register LONG  _res  __asm("d0");
  419.   register struct Library* a6 __asm("a6") = BASE_NAME;
  420.   register APTR a0 __asm("a0") = cl;
  421.   register struct DataBase *a1 __asm("a1") = db;
  422.   register struct HelpNode *a2 __asm("a2") = hn;
  423.   __asm __volatile ("jsr a6@(-0xc6)"
  424.   : "=r" (_res)
  425.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  426.   : "a0","a1","a2","d0","d1", "memory");
  427.   return _res;
  428. }
  429. static __inline void 
  430. UnlockAmigaGuideBase (BASE_PAR_DECL long key)
  431. {
  432.   BASE_EXT_DECL
  433.   register struct Library* a6 __asm("a6") = BASE_NAME;
  434.   register long d0 __asm("d0") = key;
  435.   __asm __volatile ("jsr a6@(-0x2a)"
  436.   : /* no output */
  437.   : "r" (a6), "r" (d0)
  438.   : "a0","a1","d0","d1", "memory");
  439. }
  440. #undef BASE_EXT_DECL
  441. #undef BASE_PAR_DECL
  442. #undef BASE_PAR_DECL0
  443. #undef BASE_NAME
  444.  
  445. __END_DECLS
  446.  
  447. #endif /* _INLINE_AMIGAGUIDE_H */
  448.