home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / programm / language / gcc222.lha / os-include / inline / layers.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-07-19  |  13.7 KB  |  434 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. EndUpdate (BASE_PAR_DECL struct Layer *layer,unsigned long flag)
  156. {
  157.   BASE_EXT_DECL
  158.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  159.   register struct Layer *a0 __asm("a0") = layer;
  160.   register unsigned long d0 __asm("d0") = flag;
  161.   __asm __volatile ("jsr a6@(-0x54)"
  162.   : /* no output */
  163.   : "r" (a6), "r" (a0), "r" (d0)
  164.   : "a0","a1","d0","d1", "memory");
  165. }
  166. static __inline LONG 
  167. FattenLayerInfo (BASE_PAR_DECL struct Layer_Info *li)
  168. {
  169.   BASE_EXT_DECL
  170.   register LONG  _res  __asm("d0");
  171.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  172.   register struct Layer_Info *a0 __asm("a0") = li;
  173.   __asm __volatile ("jsr a6@(-0x9c)"
  174.   : "=r" (_res)
  175.   : "r" (a6), "r" (a0)
  176.   : "a0","a1","d0","d1", "memory");
  177.   return _res;
  178. }
  179. static __inline void 
  180. InitLayers (BASE_PAR_DECL struct Layer_Info *li)
  181. {
  182.   BASE_EXT_DECL
  183.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  184.   register struct Layer_Info *a0 __asm("a0") = li;
  185.   __asm __volatile ("jsr a6@(-0x1e)"
  186.   : /* no output */
  187.   : "r" (a6), "r" (a0)
  188.   : "a0","a1","d0","d1", "memory");
  189. }
  190. static __inline struct Region *
  191. InstallClipRegion (BASE_PAR_DECL struct Layer *layer,struct Region *region)
  192. {
  193.   BASE_EXT_DECL
  194.   register struct Region * _res  __asm("d0");
  195.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  196.   register struct Layer *a0 __asm("a0") = layer;
  197.   register struct Region *a1 __asm("a1") = region;
  198.   __asm __volatile ("jsr a6@(-0xae)"
  199.   : "=r" (_res)
  200.   : "r" (a6), "r" (a0), "r" (a1)
  201.   : "a0","a1","d0","d1", "memory");
  202.   return _res;
  203. }
  204. static __inline struct Hook *
  205. InstallLayerHook (BASE_PAR_DECL struct Layer *layer,struct Hook *hook)
  206. {
  207.   BASE_EXT_DECL
  208.   register struct Hook * _res  __asm("d0");
  209.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  210.   register struct Layer *a0 __asm("a0") = layer;
  211.   register struct Hook *a1 __asm("a1") = hook;
  212.   __asm __volatile ("jsr a6@(-0xcc)"
  213.   : "=r" (_res)
  214.   : "r" (a6), "r" (a0), "r" (a1)
  215.   : "a0","a1","d0","d1", "memory");
  216.   return _res;
  217. }
  218. static __inline void 
  219. LockLayer (BASE_PAR_DECL long dummy,struct Layer *layer)
  220. {
  221.   BASE_EXT_DECL
  222.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  223.   register long a0 __asm("a0") = dummy;
  224.   register struct Layer *a1 __asm("a1") = layer;
  225.   __asm __volatile ("jsr a6@(-0x60)"
  226.   : /* no output */
  227.   : "r" (a6), "r" (a0), "r" (a1)
  228.   : "a0","a1","d0","d1", "memory");
  229. }
  230. static __inline void 
  231. LockLayerInfo (BASE_PAR_DECL struct Layer_Info *li)
  232. {
  233.   BASE_EXT_DECL
  234.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  235.   register struct Layer_Info *a0 __asm("a0") = li;
  236.   __asm __volatile ("jsr a6@(-0x78)"
  237.   : /* no output */
  238.   : "r" (a6), "r" (a0)
  239.   : "a0","a1","d0","d1", "memory");
  240. }
  241. static __inline void 
  242. LockLayers (BASE_PAR_DECL struct Layer_Info *li)
  243. {
  244.   BASE_EXT_DECL
  245.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  246.   register struct Layer_Info *a0 __asm("a0") = li;
  247.   __asm __volatile ("jsr a6@(-0x6c)"
  248.   : /* no output */
  249.   : "r" (a6), "r" (a0)
  250.   : "a0","a1","d0","d1", "memory");
  251. }
  252. static __inline LONG 
  253. MoveLayer (BASE_PAR_DECL long dummy,struct Layer *layer,long dx,long dy)
  254. {
  255.   BASE_EXT_DECL
  256.   register LONG  _res  __asm("d0");
  257.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  258.   register long a0 __asm("a0") = dummy;
  259.   register struct Layer *a1 __asm("a1") = layer;
  260.   register long d0 __asm("d0") = dx;
  261.   register long d1 __asm("d1") = dy;
  262.   __asm __volatile ("jsr a6@(-0x3c)"
  263.   : "=r" (_res)
  264.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1)
  265.   : "a0","a1","d0","d1", "memory");
  266.   return _res;
  267. }
  268. static __inline LONG 
  269. MoveLayerInFrontOf (BASE_PAR_DECL struct Layer *layer_to_move,struct Layer *other_layer)
  270. {
  271.   BASE_EXT_DECL
  272.   register LONG  _res  __asm("d0");
  273.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  274.   register struct Layer *a0 __asm("a0") = layer_to_move;
  275.   register struct Layer *a1 __asm("a1") = other_layer;
  276.   __asm __volatile ("jsr a6@(-0xa8)"
  277.   : "=r" (_res)
  278.   : "r" (a6), "r" (a0), "r" (a1)
  279.   : "a0","a1","d0","d1", "memory");
  280.   return _res;
  281. }
  282. static __inline LONG 
  283. MoveSizeLayer (BASE_PAR_DECL struct Layer *layer,long dx,long dy,long dw,long dh)
  284. {
  285.   BASE_EXT_DECL
  286.   register LONG  _res  __asm("d0");
  287.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  288.   register struct Layer *a0 __asm("a0") = layer;
  289.   register long d0 __asm("d0") = dx;
  290.   register long d1 __asm("d1") = dy;
  291.   register long d2 __asm("d2") = dw;
  292.   register long d3 __asm("d3") = dh;
  293.   __asm __volatile ("jsr a6@(-0xb4)"
  294.   : "=r" (_res)
  295.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  296.   : "a0","a1","d0","d1","d2","d3", "memory");
  297.   return _res;
  298. }
  299. static __inline struct Layer_Info *
  300. NewLayerInfo (BASE_PAR_DECL0)
  301. {
  302.   BASE_EXT_DECL
  303.   register struct Layer_Info * _res  __asm("d0");
  304.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  305.   __asm __volatile ("jsr a6@(-0x90)"
  306.   : "=r" (_res)
  307.   : "r" (a6)
  308.   : "a0","a1","d0","d1", "memory");
  309.   return _res;
  310. }
  311. static __inline void 
  312. ScrollLayer (BASE_PAR_DECL long dummy,struct Layer *layer,long dx,long dy)
  313. {
  314.   BASE_EXT_DECL
  315.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  316.   register long a0 __asm("a0") = dummy;
  317.   register struct Layer *a1 __asm("a1") = layer;
  318.   register long d0 __asm("d0") = dx;
  319.   register long d1 __asm("d1") = dy;
  320.   __asm __volatile ("jsr a6@(-0x48)"
  321.   : /* no output */
  322.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1)
  323.   : "a0","a1","d0","d1", "memory");
  324. }
  325. static __inline LONG 
  326. SizeLayer (BASE_PAR_DECL long dummy,struct Layer *layer,long dx,long dy)
  327. {
  328.   BASE_EXT_DECL
  329.   register LONG  _res  __asm("d0");
  330.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  331.   register long a0 __asm("a0") = dummy;
  332.   register struct Layer *a1 __asm("a1") = layer;
  333.   register long d0 __asm("d0") = dx;
  334.   register long d1 __asm("d1") = dy;
  335.   __asm __volatile ("jsr a6@(-0x42)"
  336.   : "=r" (_res)
  337.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1)
  338.   : "a0","a1","d0","d1", "memory");
  339.   return _res;
  340. }
  341. static __inline void 
  342. SwapBitsRastPortClipRect (BASE_PAR_DECL struct RastPort *rp,struct ClipRect *cr)
  343. {
  344.   BASE_EXT_DECL
  345.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  346.   register struct RastPort *a0 __asm("a0") = rp;
  347.   register struct ClipRect *a1 __asm("a1") = cr;
  348.   __asm __volatile ("jsr a6@(-0x7e)"
  349.   : /* no output */
  350.   : "r" (a6), "r" (a0), "r" (a1)
  351.   : "a0","a1","d0","d1", "memory");
  352. }
  353. static __inline void 
  354. ThinLayerInfo (BASE_PAR_DECL struct Layer_Info *li)
  355. {
  356.   BASE_EXT_DECL
  357.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  358.   register struct Layer_Info *a0 __asm("a0") = li;
  359.   __asm __volatile ("jsr a6@(-0xa2)"
  360.   : /* no output */
  361.   : "r" (a6), "r" (a0)
  362.   : "a0","a1","d0","d1", "memory");
  363. }
  364. static __inline void 
  365. UnlockLayer (BASE_PAR_DECL struct Layer *layer)
  366. {
  367.   BASE_EXT_DECL
  368.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  369.   register struct Layer *a0 __asm("a0") = layer;
  370.   __asm __volatile ("jsr a6@(-0x66)"
  371.   : /* no output */
  372.   : "r" (a6), "r" (a0)
  373.   : "a0","a1","d0","d1", "memory");
  374. }
  375. static __inline void 
  376. UnlockLayerInfo (BASE_PAR_DECL struct Layer_Info *li)
  377. {
  378.   BASE_EXT_DECL
  379.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  380.   register struct Layer_Info *a0 __asm("a0") = li;
  381.   __asm __volatile ("jsr a6@(-0x8a)"
  382.   : /* no output */
  383.   : "r" (a6), "r" (a0)
  384.   : "a0","a1","d0","d1", "memory");
  385. }
  386. static __inline void 
  387. UnlockLayers (BASE_PAR_DECL struct Layer_Info *li)
  388. {
  389.   BASE_EXT_DECL
  390.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  391.   register struct Layer_Info *a0 __asm("a0") = li;
  392.   __asm __volatile ("jsr a6@(-0x72)"
  393.   : /* no output */
  394.   : "r" (a6), "r" (a0)
  395.   : "a0","a1","d0","d1", "memory");
  396. }
  397. static __inline LONG 
  398. UpfrontLayer (BASE_PAR_DECL long dummy,struct Layer *layer)
  399. {
  400.   BASE_EXT_DECL
  401.   register LONG  _res  __asm("d0");
  402.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  403.   register long a0 __asm("a0") = dummy;
  404.   register struct Layer *a1 __asm("a1") = layer;
  405.   __asm __volatile ("jsr a6@(-0x30)"
  406.   : "=r" (_res)
  407.   : "r" (a6), "r" (a0), "r" (a1)
  408.   : "a0","a1","d0","d1", "memory");
  409.   return _res;
  410. }
  411. static __inline struct Layer *
  412. WhichLayer (BASE_PAR_DECL struct Layer_Info *li,long x,long y)
  413. {
  414.   BASE_EXT_DECL
  415.   register struct Layer * _res  __asm("d0");
  416.   register struct LayersBase* a6 __asm("a6") = BASE_NAME;
  417.   register struct Layer_Info *a0 __asm("a0") = li;
  418.   register long d0 __asm("d0") = x;
  419.   register long d1 __asm("d1") = y;
  420.   __asm __volatile ("jsr a6@(-0x84)"
  421.   : "=r" (_res)
  422.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  423.   : "a0","a1","d0","d1", "memory");
  424.   return _res;
  425. }
  426. #undef BASE_EXT_DECL
  427. #undef BASE_PAR_DECL
  428. #undef BASE_PAR_DECL0
  429. #undef BASE_NAME
  430.  
  431. __END_DECLS
  432.  
  433. #endif /* _INLINE_LAYERS_H */
  434.