home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / gnu / os-include / inline / datatypes.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-09  |  7.2 KB  |  238 lines

  1. #ifndef _INLINE_DATATYPES_H
  2. #define _INLINE_DATATYPES_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 DataTypesBase*  DataTypesBase;
  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 DataTypesBase
  18. #endif
  19.  
  20. static __inline LONG 
  21. AddDTObject (BASE_PAR_DECL struct Window *win,struct Requester *req,Object *o,long pos)
  22. {
  23.   BASE_EXT_DECL
  24.   register LONG  _res  __asm("d0");
  25.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  26.   register struct Window *a0 __asm("a0") = win;
  27.   register struct Requester *a1 __asm("a1") = req;
  28.   register Object *a2 __asm("a2") = o;
  29.   register long d0 __asm("d0") = pos;
  30.   __asm __volatile ("jsr a6@(-0x48)"
  31.   : "=r" (_res)
  32.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (d0)
  33.   : "a0","a1","a2","d0","d1", "memory");
  34.   return _res;
  35. }
  36. static __inline void 
  37. DisposeDTObject (BASE_PAR_DECL Object *o)
  38. {
  39.   BASE_EXT_DECL
  40.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  41.   register Object *a0 __asm("a0") = o;
  42.   __asm __volatile ("jsr a6@(-0x36)"
  43.   : /* no output */
  44.   : "r" (a6), "r" (a0)
  45.   : "a0","a1","d0","d1", "memory");
  46. }
  47. static __inline ULONG 
  48. DoAsyncLayout (BASE_PAR_DECL Object *o,struct gpLayout *gpl)
  49. {
  50.   BASE_EXT_DECL
  51.   register ULONG  _res  __asm("d0");
  52.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  53.   register Object *a0 __asm("a0") = o;
  54.   register struct gpLayout *a1 __asm("a1") = gpl;
  55.   __asm __volatile ("jsr a6@(-0x54)"
  56.   : "=r" (_res)
  57.   : "r" (a6), "r" (a0), "r" (a1)
  58.   : "a0","a1","d0","d1", "memory");
  59.   return _res;
  60. }
  61. static __inline ULONG 
  62. DoDTMethodA (BASE_PAR_DECL Object *o,struct Window *win,struct Requester *req,Msg msg)
  63. {
  64.   BASE_EXT_DECL
  65.   register ULONG  _res  __asm("d0");
  66.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  67.   register Object *a0 __asm("a0") = o;
  68.   register struct Window *a1 __asm("a1") = win;
  69.   register struct Requester *a2 __asm("a2") = req;
  70.   register Msg a3 __asm("a3") = msg;
  71.   __asm __volatile ("jsr a6@(-0x5a)"
  72.   : "=r" (_res)
  73.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (a3)
  74.   : "a0","a1","a2","a3","d0","d1", "memory");
  75.   return _res;
  76. }
  77. static __inline ULONG 
  78. GetDTAttrsA (BASE_PAR_DECL Object *o,struct TagItem *attrs)
  79. {
  80.   BASE_EXT_DECL
  81.   register ULONG  _res  __asm("d0");
  82.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  83.   register Object *a0 __asm("a0") = o;
  84.   register struct TagItem *a2 __asm("a2") = attrs;
  85.   __asm __volatile ("jsr a6@(-0x42)"
  86.   : "=r" (_res)
  87.   : "r" (a6), "r" (a0), "r" (a2)
  88.   : "a0","a1","a2","d0","d1", "memory");
  89.   return _res;
  90. }
  91. static __inline ULONG *
  92. GetDTMethods (BASE_PAR_DECL Object *object)
  93. {
  94.   BASE_EXT_DECL
  95.   register ULONG * _res  __asm("d0");
  96.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  97.   register Object *a0 __asm("a0") = object;
  98.   __asm __volatile ("jsr a6@(-0x66)"
  99.   : "=r" (_res)
  100.   : "r" (a6), "r" (a0)
  101.   : "a0","a1","d0","d1", "memory");
  102.   return _res;
  103. }
  104. static __inline STRPTR 
  105. GetDTString (BASE_PAR_DECL unsigned long id)
  106. {
  107.   BASE_EXT_DECL
  108.   register STRPTR  _res  __asm("d0");
  109.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  110.   register unsigned long d0 __asm("d0") = id;
  111.   __asm __volatile ("jsr a6@(-0x8a)"
  112.   : "=r" (_res)
  113.   : "r" (a6), "r" (d0)
  114.   : "a0","a1","d0","d1", "memory");
  115.   return _res;
  116. }
  117. static __inline struct DTMethods *
  118. GetDTTriggerMethods (BASE_PAR_DECL Object *object)
  119. {
  120.   BASE_EXT_DECL
  121.   register struct DTMethods * _res  __asm("d0");
  122.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  123.   register Object *a0 __asm("a0") = object;
  124.   __asm __volatile ("jsr a6@(-0x6c)"
  125.   : "=r" (_res)
  126.   : "r" (a6), "r" (a0)
  127.   : "a0","a1","d0","d1", "memory");
  128.   return _res;
  129. }
  130. static __inline Object *
  131. NewDTObjectA (BASE_PAR_DECL APTR name,struct TagItem *attrs)
  132. {
  133.   BASE_EXT_DECL
  134.   register Object * _res  __asm("d0");
  135.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  136.   register APTR d0 __asm("d0") = name;
  137.   register struct TagItem *a0 __asm("a0") = attrs;
  138.   __asm __volatile ("jsr a6@(-0x30)"
  139.   : "=r" (_res)
  140.   : "r" (a6), "r" (d0), "r" (a0)
  141.   : "a0","a1","d0","d1", "memory");
  142.   return _res;
  143. }
  144. static __inline struct DataType *
  145. ObtainDataTypeA (BASE_PAR_DECL unsigned long type,APTR handle,struct TagItem *attrs)
  146. {
  147.   BASE_EXT_DECL
  148.   register struct DataType * _res  __asm("d0");
  149.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  150.   register unsigned long d0 __asm("d0") = type;
  151.   register APTR a0 __asm("a0") = handle;
  152.   register struct TagItem *a1 __asm("a1") = attrs;
  153.   __asm __volatile ("jsr a6@(-0x24)"
  154.   : "=r" (_res)
  155.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  156.   : "a0","a1","d0","d1", "memory");
  157.   return _res;
  158. }
  159. static __inline ULONG 
  160. PrintDTObjectA (BASE_PAR_DECL Object *o,struct Window *w,struct Requester *r,struct dtPrint *msg)
  161. {
  162.   BASE_EXT_DECL
  163.   register ULONG  _res  __asm("d0");
  164.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  165.   register Object *a0 __asm("a0") = o;
  166.   register struct Window *a1 __asm("a1") = w;
  167.   register struct Requester *a2 __asm("a2") = r;
  168.   register struct dtPrint *a3 __asm("a3") = msg;
  169.   __asm __volatile ("jsr a6@(-0x72)"
  170.   : "=r" (_res)
  171.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (a3)
  172.   : "a0","a1","a2","a3","d0","d1", "memory");
  173.   return _res;
  174. }
  175. static __inline void 
  176. RefreshDTObjectA (BASE_PAR_DECL Object *o,struct Window *win,struct Requester *req,struct TagItem *attrs)
  177. {
  178.   BASE_EXT_DECL
  179.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  180.   register Object *a0 __asm("a0") = o;
  181.   register struct Window *a1 __asm("a1") = win;
  182.   register struct Requester *a2 __asm("a2") = req;
  183.   register struct TagItem *a3 __asm("a3") = attrs;
  184.   __asm __volatile ("jsr a6@(-0x4e)"
  185.   : /* no output */
  186.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (a3)
  187.   : "a0","a1","a2","a3","d0","d1", "memory");
  188. }
  189. static __inline void 
  190. ReleaseDataType (BASE_PAR_DECL struct DataType *dt)
  191. {
  192.   BASE_EXT_DECL
  193.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  194.   register struct DataType *a0 __asm("a0") = dt;
  195.   __asm __volatile ("jsr a6@(-0x2a)"
  196.   : /* no output */
  197.   : "r" (a6), "r" (a0)
  198.   : "a0","a1","d0","d1", "memory");
  199. }
  200. static __inline LONG 
  201. RemoveDTObject (BASE_PAR_DECL struct Window *win,Object *o)
  202. {
  203.   BASE_EXT_DECL
  204.   register LONG  _res  __asm("d0");
  205.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  206.   register struct Window *a0 __asm("a0") = win;
  207.   register Object *a1 __asm("a1") = o;
  208.   __asm __volatile ("jsr a6@(-0x60)"
  209.   : "=r" (_res)
  210.   : "r" (a6), "r" (a0), "r" (a1)
  211.   : "a0","a1","d0","d1", "memory");
  212.   return _res;
  213. }
  214. static __inline ULONG 
  215. SetDTAttrsA (BASE_PAR_DECL Object *o,struct Window *win,struct Requester *req,struct TagItem *attrs)
  216. {
  217.   BASE_EXT_DECL
  218.   register ULONG  _res  __asm("d0");
  219.   register struct DataTypesBase* a6 __asm("a6") = BASE_NAME;
  220.   register Object *a0 __asm("a0") = o;
  221.   register struct Window *a1 __asm("a1") = win;
  222.   register struct Requester *a2 __asm("a2") = req;
  223.   register struct TagItem *a3 __asm("a3") = attrs;
  224.   __asm __volatile ("jsr a6@(-0x3c)"
  225.   : "=r" (_res)
  226.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (a3)
  227.   : "a0","a1","a2","a3","d0","d1", "memory");
  228.   return _res;
  229. }
  230. #undef BASE_EXT_DECL
  231. #undef BASE_PAR_DECL
  232. #undef BASE_PAR_DECL0
  233. #undef BASE_NAME
  234.  
  235. __END_DECLS
  236.  
  237. #endif /* _INLINE_DATATYPES_H */
  238.