home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / c / gcc233.lha / os-include / inline / bullet.h < prev    next >
C/C++ Source or Header  |  1992-12-29  |  3KB  |  108 lines

  1. #ifndef _INLINE_BULLET_H
  2. #define _INLINE_BULLET_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*  BulletBase;
  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 BulletBase
  18. #endif
  19.  
  20. static __inline void 
  21. CloseEngine (BASE_PAR_DECL struct GlyphEngine *glyphEngine)
  22. {
  23.   BASE_EXT_DECL
  24.   register struct Library* a6 __asm("a6") = BASE_NAME;
  25.   register struct GlyphEngine *a0 __asm("a0") = glyphEngine;
  26.   __asm __volatile ("jsr a6@(-0x24)"
  27.   : /* no output */
  28.   : "r" (a6), "r" (a0)
  29.   : "a0","a1","d0","d1", "memory");
  30. }
  31. static __inline ULONG 
  32. GetGlyphMap (BASE_PAR_DECL struct GlyphEngine *glyphEngine,unsigned long glyphCode,struct GlyphMap **glyphMap)
  33. {
  34.   BASE_EXT_DECL
  35.   register ULONG  _res  __asm("d0");
  36.   register struct Library* a6 __asm("a6") = BASE_NAME;
  37.   register struct GlyphEngine *a0 __asm("a0") = glyphEngine;
  38.   register unsigned long d0 __asm("d0") = glyphCode;
  39.   register struct GlyphMap **a1 __asm("a1") = glyphMap;
  40.   __asm __volatile ("jsr a6@(-0x3c)"
  41.   : "=r" (_res)
  42.   : "r" (a6), "r" (a0), "r" (d0), "r" (a1)
  43.   : "a0","a1","d0","d1", "memory");
  44.   return _res;
  45. }
  46. static __inline ULONG 
  47. ObtainInfoA (BASE_PAR_DECL struct GlyphEngine *glyphEngine,struct TagItem *tagList)
  48. {
  49.   BASE_EXT_DECL
  50.   register ULONG  _res  __asm("d0");
  51.   register struct Library* a6 __asm("a6") = BASE_NAME;
  52.   register struct GlyphEngine *a0 __asm("a0") = glyphEngine;
  53.   register struct TagItem *a1 __asm("a1") = tagList;
  54.   __asm __volatile ("jsr a6@(-0x30)"
  55.   : "=r" (_res)
  56.   : "r" (a6), "r" (a0), "r" (a1)
  57.   : "a0","a1","d0","d1", "memory");
  58.   return _res;
  59. }
  60. static __inline struct GlyphEngine *
  61. OpenEngine (BASE_PAR_DECL0)
  62. {
  63.   BASE_EXT_DECL
  64.   register struct GlyphEngine * _res  __asm("d0");
  65.   register struct Library* a6 __asm("a6") = BASE_NAME;
  66.   __asm __volatile ("jsr a6@(-0x1e)"
  67.   : "=r" (_res)
  68.   : "r" (a6)
  69.   : "a0","a1","d0","d1", "memory");
  70.   return _res;
  71. }
  72. static __inline ULONG 
  73. ReleaseInfoA (BASE_PAR_DECL struct GlyphEngine *glyphEngine,struct TagItem *tagList)
  74. {
  75.   BASE_EXT_DECL
  76.   register ULONG  _res  __asm("d0");
  77.   register struct Library* a6 __asm("a6") = BASE_NAME;
  78.   register struct GlyphEngine *a0 __asm("a0") = glyphEngine;
  79.   register struct TagItem *a1 __asm("a1") = tagList;
  80.   __asm __volatile ("jsr a6@(-0x36)"
  81.   : "=r" (_res)
  82.   : "r" (a6), "r" (a0), "r" (a1)
  83.   : "a0","a1","d0","d1", "memory");
  84.   return _res;
  85. }
  86. static __inline ULONG 
  87. SetInfoA (BASE_PAR_DECL struct GlyphEngine *glyphEngine,struct TagItem *tagList)
  88. {
  89.   BASE_EXT_DECL
  90.   register ULONG  _res  __asm("d0");
  91.   register struct Library* a6 __asm("a6") = BASE_NAME;
  92.   register struct GlyphEngine *a0 __asm("a0") = glyphEngine;
  93.   register struct TagItem *a1 __asm("a1") = tagList;
  94.   __asm __volatile ("jsr a6@(-0x2a)"
  95.   : "=r" (_res)
  96.   : "r" (a6), "r" (a0), "r" (a1)
  97.   : "a0","a1","d0","d1", "memory");
  98.   return _res;
  99. }
  100. #undef BASE_EXT_DECL
  101. #undef BASE_PAR_DECL
  102. #undef BASE_PAR_DECL0
  103. #undef BASE_NAME
  104.  
  105. __END_DECLS
  106.  
  107. #endif /* _INLINE_BULLET_H */
  108.