home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / programm / programi / gcc_9112.lzh / include20 / inline / icon.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-15  |  5.7 KB  |  260 lines

  1. #include <inline/stub.h>
  2. #ifndef BASE_EXT_DECL
  3. #define BASE_EXT_DECL extern struct Library * IconBase;
  4. #endif
  5. #ifndef BASE_PAR_DECL
  6. #define BASE_PAR_DECL
  7. #define BASE_PAR_DECL0 void
  8. #endif
  9. #ifndef BASE_NAME
  10. #define BASE_NAME IconBase
  11. #endif
  12. #ifdef PRIVATE
  13. #endif
  14. __inline static LONG GetIcon(BASE_PAR_DECL UBYTE* name, struct DiskObject* icon, struct FreeList* freelist)
  15. {
  16.     BASE_EXT_DECL
  17.     register LONG res __asm("d0");
  18.     register void *a6 __asm ("a6");
  19.     register UBYTE* a0 __asm("a0");
  20.     register struct DiskObject* a1 __asm("a1");
  21.     register struct FreeList* a2 __asm("a2");
  22.  
  23.     a6 = BASE_NAME;
  24.     a0 = name;
  25.     a1 = icon;
  26.     a2 = freelist;
  27.     __asm volatile ("
  28.     jsr a6@(-0x2a)"
  29.     : "=g" (res)
  30.     : "g" (a6), "g" (a0), "g" (a1), "g" (a2)
  31.     : "d0", "d1", "a0", "a1", "a2");
  32.     return res;
  33. }
  34. __inline static BOOL PutIcon(BASE_PAR_DECL UBYTE* name, struct DiskObject* icon)
  35. {
  36.     BASE_EXT_DECL
  37.     register BOOL res __asm("d0");
  38.     register void *a6 __asm ("a6");
  39.     register UBYTE* a0 __asm("a0");
  40.     register struct DiskObject* a1 __asm("a1");
  41.  
  42.     a6 = BASE_NAME;
  43.     a0 = name;
  44.     a1 = icon;
  45.     __asm volatile ("
  46.     jsr a6@(-0x30)"
  47.     : "=g" (res)
  48.     : "g" (a6), "g" (a0), "g" (a1)
  49.     : "d0", "d1", "a0", "a1");
  50.     return res;
  51. }
  52. __inline static void FreeFreeList(BASE_PAR_DECL struct FreeList* freelist)
  53. {
  54.     BASE_EXT_DECL
  55.     register void *a6 __asm ("a6");
  56.     register struct FreeList* a0 __asm("a0");
  57.  
  58.     a6 = BASE_NAME;
  59.     a0 = freelist;
  60.     __asm volatile ("
  61.     jsr a6@(-0x36)"
  62.     : /* no output */
  63.     : "g" (a6), "g" (a0)
  64.     : "d0", "d1", "a0", "a1");
  65. }
  66. #ifdef PRIVATE
  67. #endif
  68. __inline static BOOL AddFreeList(BASE_PAR_DECL struct FreeList* freelist, APTR mem, long unsigned int size)
  69. {
  70.     BASE_EXT_DECL
  71.     register BOOL res __asm("d0");
  72.     register void *a6 __asm ("a6");
  73.     register struct FreeList* a0 __asm("a0");
  74.     register APTR a1 __asm("a1");
  75.     register long unsigned int a2 __asm("a2");
  76.  
  77.     a6 = BASE_NAME;
  78.     a0 = freelist;
  79.     a1 = mem;
  80.     a2 = size;
  81.     __asm volatile ("
  82.     jsr a6@(-0x48)"
  83.     : "=g" (res)
  84.     : "g" (a6), "g" (a0), "g" (a1), "g" (a2)
  85.     : "d0", "d1", "a0", "a1", "a2");
  86.     return res;
  87. }
  88. __inline static struct DiskObject* GetDiskObject(BASE_PAR_DECL UBYTE* name)
  89. {
  90.     BASE_EXT_DECL
  91.     register struct DiskObject* res __asm("d0");
  92.     register void *a6 __asm ("a6");
  93.     register UBYTE* a0 __asm("a0");
  94.  
  95.     a6 = BASE_NAME;
  96.     a0 = name;
  97.     __asm volatile ("
  98.     jsr a6@(-0x4e)"
  99.     : "=g" (res)
  100.     : "g" (a6), "g" (a0)
  101.     : "d0", "d1", "a0", "a1");
  102.     return res;
  103. }
  104. __inline static BOOL PutDiskObject(BASE_PAR_DECL UBYTE* name, struct DiskObject* diskobj)
  105. {
  106.     BASE_EXT_DECL
  107.     register BOOL res __asm("d0");
  108.     register void *a6 __asm ("a6");
  109.     register UBYTE* a0 __asm("a0");
  110.     register struct DiskObject* a1 __asm("a1");
  111.  
  112.     a6 = BASE_NAME;
  113.     a0 = name;
  114.     a1 = diskobj;
  115.     __asm volatile ("
  116.     jsr a6@(-0x54)"
  117.     : "=g" (res)
  118.     : "g" (a6), "g" (a0), "g" (a1)
  119.     : "d0", "d1", "a0", "a1");
  120.     return res;
  121. }
  122. __inline static void FreeDiskObject(BASE_PAR_DECL struct DiskObject* diskobj)
  123. {
  124.     BASE_EXT_DECL
  125.     register void *a6 __asm ("a6");
  126.     register struct DiskObject* a0 __asm("a0");
  127.  
  128.     a6 = BASE_NAME;
  129.     a0 = diskobj;
  130.     __asm volatile ("
  131.     jsr a6@(-0x5a)"
  132.     : /* no output */
  133.     : "g" (a6), "g" (a0)
  134.     : "d0", "d1", "a0", "a1");
  135. }
  136. __inline static UBYTE* FindToolType(BASE_PAR_DECL UBYTE** toolTypeArray, UBYTE* typeName)
  137. {
  138.     BASE_EXT_DECL
  139.     register UBYTE* res __asm("d0");
  140.     register void *a6 __asm ("a6");
  141.     register UBYTE** a0 __asm("a0");
  142.     register UBYTE* a1 __asm("a1");
  143.  
  144.     a6 = BASE_NAME;
  145.     a0 = toolTypeArray;
  146.     a1 = typeName;
  147.     __asm volatile ("
  148.     jsr a6@(-0x60)"
  149.     : "=g" (res)
  150.     : "g" (a6), "g" (a0), "g" (a1)
  151.     : "d0", "d1", "a0", "a1");
  152.     return res;
  153. }
  154. __inline static BOOL MatchToolValue(BASE_PAR_DECL UBYTE* typeString, UBYTE* value)
  155. {
  156.     BASE_EXT_DECL
  157.     register BOOL res __asm("d0");
  158.     register void *a6 __asm ("a6");
  159.     register UBYTE* a0 __asm("a0");
  160.     register UBYTE* a1 __asm("a1");
  161.  
  162.     a6 = BASE_NAME;
  163.     a0 = typeString;
  164.     a1 = value;
  165.     __asm volatile ("
  166.     jsr a6@(-0x66)"
  167.     : "=g" (res)
  168.     : "g" (a6), "g" (a0), "g" (a1)
  169.     : "d0", "d1", "a0", "a1");
  170.     return res;
  171. }
  172. __inline static UBYTE* BumpRevision(BASE_PAR_DECL UBYTE* newname, UBYTE* oldname)
  173. {
  174.     BASE_EXT_DECL
  175.     register UBYTE* res __asm("d0");
  176.     register void *a6 __asm ("a6");
  177.     register UBYTE* a0 __asm("a0");
  178.     register UBYTE* a1 __asm("a1");
  179.  
  180.     a6 = BASE_NAME;
  181.     a0 = newname;
  182.     a1 = oldname;
  183.     __asm volatile ("
  184.     jsr a6@(-0x6c)"
  185.     : "=g" (res)
  186.     : "g" (a6), "g" (a0), "g" (a1)
  187.     : "d0", "d1", "a0", "a1");
  188.     return res;
  189. }
  190. #ifdef PRIVATE
  191. #endif
  192. __inline static struct DiskObject* GetDefDiskObject(BASE_PAR_DECL long int type)
  193. {
  194.     BASE_EXT_DECL
  195.     register struct DiskObject* res __asm("d0");
  196.     register void *a6 __asm ("a6");
  197.     register long int d0 __asm("d0");
  198.  
  199.     a6 = BASE_NAME;
  200.     d0 = type;
  201.     __asm volatile ("
  202.     jsr a6@(-0x78)"
  203.     : "=g" (res)
  204.     : "g" (a6), "g" (d0)
  205.     : "d0", "d1", "a0", "a1");
  206.     return res;
  207. }
  208. __inline static BOOL PutDefDiskObject(BASE_PAR_DECL struct DiskObject* diskObject)
  209. {
  210.     BASE_EXT_DECL
  211.     register BOOL res __asm("d0");
  212.     register void *a6 __asm ("a6");
  213.     register struct DiskObject* a0 __asm("a0");
  214.  
  215.     a6 = BASE_NAME;
  216.     a0 = diskObject;
  217.     __asm volatile ("
  218.     jsr a6@(-0x7e)"
  219.     : "=g" (res)
  220.     : "g" (a6), "g" (a0)
  221.     : "d0", "d1", "a0", "a1");
  222.     return res;
  223. }
  224. __inline static struct DiskObject* GetDiskObjectNew(BASE_PAR_DECL UBYTE* name)
  225. {
  226.     BASE_EXT_DECL
  227.     register struct DiskObject* res __asm("d0");
  228.     register void *a6 __asm ("a6");
  229.     register UBYTE* a0 __asm("a0");
  230.  
  231.     a6 = BASE_NAME;
  232.     a0 = name;
  233.     __asm volatile ("
  234.     jsr a6@(-0x84)"
  235.     : "=g" (res)
  236.     : "g" (a6), "g" (a0)
  237.     : "d0", "d1", "a0", "a1");
  238.     return res;
  239. }
  240. __inline static BOOL DeleteDiskObject(BASE_PAR_DECL UBYTE* name)
  241. {
  242.     BASE_EXT_DECL
  243.     register BOOL res __asm("d0");
  244.     register void *a6 __asm ("a6");
  245.     register UBYTE* a0 __asm("a0");
  246.  
  247.     a6 = BASE_NAME;
  248.     a0 = name;
  249.     __asm volatile ("
  250.     jsr a6@(-0x8a)"
  251.     : "=g" (res)
  252.     : "g" (a6), "g" (a0)
  253.     : "d0", "d1", "a0", "a1");
  254.     return res;
  255. }
  256. #undef BASE_EXT_DECL
  257. #undef BASE_PAR_DECL
  258. #undef BASE_PAR_DECL0
  259. #undef BASE_NAME
  260.