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

  1. #ifndef _INLINE_LAYERS_H
  2. #define _INLINE_LAYERS_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 LayersBase*  LayersBase;
  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 LayersBase
  18. #endif
  19.  
  20. static __inline LONG 
  21. BeginUpdate (BASE_PAR_DECL struct Layer *l)
  22. {
  23.   BASE_EXT_DECL
  24.   register LONG  _res  __asm("d0");
  25.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  26.   register struct Layer *a0 __asm("a0") = l;
  27.   __asm __volatile ("jsr a6@(-0x4e)"
  28.   : "=r" (_res)
  29.   : "r" (a6), "r" (a0)
  30.   : "a0","a1","d0","d1", "memory");
  31.   return _res;
  32. }
  33. static __inline LONG 
  34. BehindLayer (BASE_PAR_DECL long dummy,struct Layer *layer)
  35. {
  36.   BASE_EXT_DECL
  37.   register LONG  _res  __asm("d0");
  38.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  39.   register long a0 __asm("a0") = dummy;
  40.   register struct Layer *a1 __asm("a1") = layer;
  41.   __asm __volatile ("jsr a6@(-0x36)"
  42.   : "=r" (_res)
  43.   : "r" (a6), "r" (a0), "r" (a1)
  44.   : "a0","a1","d0","d1", "memory");
  45.   return _res;
  46. }
  47. static __inline struct Layer *
  48. CreateBehindHookLayer (BASE_PAR_DECL struct Layer_Info *li,struct BitMap *bm,long x0,long y0,long x1,long y1,long flags,struct Hook *hook,struct BitMap *bm2)
  49. {
  50.   BASE_EXT_DECL
  51.   register struct Layer * _res  __asm("d0");
  52.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  53.   register struct Layer_Info *a0 __asm("a0") = li;
  54.   register struct BitMap *a1 __asm("a1") = bm;
  55.   register long d0 __asm("d0") = x0;
  56.   register long d1 __asm("d1") = y0;
  57.   register long d2 __asm("d2") = x1;
  58.   register long d3 __asm("d3") = y1;
  59.   register long d4 __asm("d4") = flags;
  60.   register struct Hook *a3 __asm("a3") = hook;
  61.   register struct BitMap *a2 __asm("a2") = bm2;
  62.   __asm __volatile ("jsr a6@(-0xc0)"
  63.   : "=r" (_res)
  64.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (a3), "r" (a2)
  65.   : "a0","a1","a2","a3","d0","d1","d2","d3","d4", "memory");
  66.   return _res;
  67. }
  68. static __inline struct Layer *
  69. CreateBehindLayer (BASE_PAR_DECL struct Layer_Info *li,struct BitMap *bm,long x0,long y0,long x1,long y1,long flags,struct BitMap *bm2)
  70. {
  71.   BASE_EXT_DECL
  72.   register struct Layer * _res  __asm("d0");
  73.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  74.   register struct Layer_Info *a0 __asm("a0") = li;
  75.   register struct BitMap *a1 __asm("a1") = bm;
  76.   register long d0 __asm("d0") = x0;
  77.   register long d1 __asm("d1") = y0;
  78.   register long d2 __asm("d2") = x1;
  79.   register long d3 __asm("d3") = y1;
  80.   register long d4 __asm("d4") = flags;
  81.   register struct BitMap *a2 __asm("a2") = bm2;
  82.   __asm __volatile ("jsr a6@(-0x2a)"
  83.   : "=r" (_res)
  84.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (a2)
  85.   : "a0","a1","a2","d0","d1","d2","d3","d4", "memory");
  86.   return _res;
  87. }
  88. static __inline struct Layer *
  89. CreateUpfrontHookLayer (BASE_PAR_DECL struct Layer_Info *li,struct BitMap *bm,long x0,long y0,long x1,long y1,long flags,struct Hook *hook,struct BitMap *bm2)
  90. {
  91.   BASE_EXT_DECL
  92.   register struct Layer * _res  __asm("d0");
  93.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  94.   register struct Layer_Info *a0 __asm("a0") = li;
  95.   register struct BitMap *a1 __asm("a1") = bm;
  96.   register long d0 __asm("d0") = x0;
  97.   register long d1 __asm("d1") = y0;
  98.   register long d2 __asm("d2") = x1;
  99.   register long d3 __asm("d3") = y1;
  100.   register long d4 __asm("d4") = flags;
  101.   register struct Hook *a3 __asm("a3") = hook;
  102.   register struct BitMap *a2 __asm("a2") = bm2;
  103.   __asm __volatile ("jsr a6@(-0xba)"
  104.   : "=r" (_res)
  105.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (a3), "r" (a2)
  106.   : "a0","a1","a2","a3","d0","d1","d2","d3","d4", "memory");
  107.   return _res;
  108. }
  109. static __inline struct Layer *
  110. CreateUpfrontLayer (BASE_PAR_DECL struct Layer_Info *li,struct BitMap *bm,long x0,long y0,long x1,long y1,long flags,struct BitMap *bm2)
  111. {
  112.   BASE_EXT_DECL
  113.   register struct Layer * _res  __asm("d0");
  114.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  115.   register struct Layer_Info *a0 __asm("a0") = li;
  116.   register struct BitMap *a1 __asm("a1") = bm;
  117.   register long d0 __asm("d0") = x0;
  118.   register long d1 __asm("d1") = y0;
  119.   register long d2 __asm("d2") = x1;
  120.   register long d3 __asm("d3") = y1;
  121.   register long d4 __asm("d4") = flags;
  122.   register struct BitMap *a2 __asm("a2") = bm2;
  123.   __asm __volatile ("jsr a6@(-0x24)"
  124.   : "=r" (_res)
  125.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (a2)
  126.   : "a0","a1","a2","d0","d1","d2","d3","d4", "memory");
  127.   return _res;
  128. }
  129. static __inline LONG 
  130. DeleteLayer (BASE_PAR_DECL long dummy,struct Layer *layer)
  131. {
  132.   BASE_EXT_DECL
  133.   register LONG  _res  __asm("d0");
  134.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  135.   register long a0 __asm("a0") = dummy;
  136.   register struct Layer *a1 __asm("a1") = layer;
  137.   __asm __volatile ("jsr a6@(-0x5a)"
  138.   : "=r" (_res)
  139.   : "r" (a6), "r" (a0), "r" (a1)
  140.   : "a0","a1","d0","d1", "memory");
  141.   return _res;
  142. }
  143. static __inline void 
  144. DisposeLayerInfo (BASE_PAR_DECL struct Layer_Info *li)
  145. {
  146.   BASE_EXT_DECL
  147.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  148.   register struct Layer_Info *a0 __asm("a0") = li;
  149.   __asm __volatile ("jsr a6@(-0x96)"
  150.   : /* no output */
  151.   : "r" (a6), "r" (a0)
  152.   : "a0","a1","d0","d1", "memory");
  153. }
  154. static __inline void 
  155. DoHookClipRects (BASE_PAR_DECL struct Hook *hook,struct RastPort *rport,struct Rectangle *rect)
  156. {
  157.   BASE_EXT_DECL
  158.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  159.   register struct Hook *a0 __asm("a0") = hook;
  160.   register struct RastPort *a1 __asm("a1") = rport;
  161.   register struct Rectangle *a2 __asm("a2") = rect;
  162.   __asm __volatile ("jsr a6@(-0xd8)"
  163.   : /* no output */
  164.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  165.   : "a0","a1","a2","d0","d1", "memory");
  166. }
  167. static __inline void 
  168. EndUpdate (BASE_PAR_DECL struct Layer *layer,unsigned long flag)
  169. {
  170.   BASE_EXT_DECL
  171.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  172.   register struct Layer *a0 __asm("a0") = layer;
  173.   register unsigned long d0 __asm("d0") = flag;
  174.   __asm __volatile ("jsr a6@(-0x54)"
  175.   : /* no output */
  176.   : "r" (a6), "r" (a0), "r" (d0)
  177.   : "a0","a1","d0","d1", "memory");
  178. }
  179. static __inline LONG 
  180. FattenLayerInfo (BASE_PAR_DECL struct Layer_Info *li)
  181. {
  182.   BASE_EXT_DECL
  183.   register LONG  _res  __asm("d0");
  184.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  185.   register struct Layer_Info *a0 __asm("a0") = li;
  186.   __asm __volatile ("jsr a6@(-0x9c)"
  187.   : "=r" (_res)
  188.   : "r" (a6), "r" (a0)
  189.   : "a0","a1","d0","d1", "memory");
  190.   return _res;
  191. }
  192. static __inline void 
  193. InitLayers (BASE_PAR_DECL struct Layer_Info *li)
  194. {
  195.   BASE_EXT_DECL
  196.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  197.   register struct Layer_Info *a0 __asm("a0") = li;
  198.   __asm __volatile ("jsr a6@(-0x1e)"
  199.   : /* no output */
  200.   : "r" (a6), "r" (a0)
  201.   : "a0","a1","d0","d1", "memory");
  202. }
  203. static __inline struct Region *
  204. InstallClipRegion (BASE_PAR_DECL struct Layer *layer,struct Region *region)
  205. {
  206.   BASE_EXT_DECL
  207.   register struct Region * _res  __asm("d0");
  208.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  209.   register struct Layer *a0 __asm("a0") = layer;
  210.   register struct Region *a1 __asm("a1") = region;
  211.   __asm __volatile ("jsr a6@(-0xae)"
  212.   : "=r" (_res)
  213.   : "r" (a6), "r" (a0), "r" (a1)
  214.   : "a0","a1","d0","d1", "memory");
  215.   return _res;
  216. }
  217. static __inline struct Hook *
  218. InstallLayerHook (BASE_PAR_DECL struct Layer *layer,struct Hook *hook)
  219. {
  220.   BASE_EXT_DECL
  221.   register struct Hook * _res  __asm("d0");
  222.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  223.   register struct Layer *a0 __asm("a0") = layer;
  224.   register struct Hook *a1 __asm("a1") = hook;
  225.   __asm __volatile ("jsr a6@(-0xc6)"
  226.   : "=r" (_res)
  227.   : "r" (a6), "r" (a0), "r" (a1)
  228.   : "a0","a1","d0","d1", "memory");
  229.   return _res;
  230. }
  231. static __inline struct Hook *
  232. InstallLayerInfoHook (BASE_PAR_DECL struct Layer_Info *li,struct Hook *hook)
  233. {
  234.   BASE_EXT_DECL
  235.   register struct Hook * _res  __asm("d0");
  236.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  237.   register struct Layer_Info *a0 __asm("a0") = li;
  238.   register struct Hook *a1 __asm("a1")