#ifndef _INLINE_LAYERS_H #define _INLINE_LAYERS_H #include #include __BEGIN_DECLS #ifndef BASE_EXT_DECL #define BASE_EXT_DECL extern struct LayersBase* LayersBase; #endif #ifndef BASE_PAR_DECL #define BASE_PAR_DECL #define BASE_PAR_DECL0 void #endif #ifndef BASE_NAME #define BASE_NAME LayersBase #endif static __inline LONG BeginUpdate (BASE_PAR_DECL struct Layer *l) { BASE_EXT_DECL register LONG _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer *a0 __asm("a0") = l; __asm __volatile ("jsr a6@(-0x4e)" : "=r" (_res) : "r" (a6), "r" (a0) : "a0","a1","d0","d1", "memory"); return _res; } static __inline LONG BehindLayer (BASE_PAR_DECL long dummy,struct Layer *layer) { BASE_EXT_DECL register LONG _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register long a0 __asm("a0") = dummy; register struct Layer *a1 __asm("a1") = layer; __asm __volatile ("jsr a6@(-0x36)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1) : "a0","a1","d0","d1", "memory"); return _res; } static __inline struct Layer * 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) { BASE_EXT_DECL register struct Layer * _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; register struct BitMap *a1 __asm("a1") = bm; register long d0 __asm("d0") = x0; register long d1 __asm("d1") = y0; register long d2 __asm("d2") = x1; register long d3 __asm("d3") = y1; register long d4 __asm("d4") = flags; register struct Hook *a3 __asm("a3") = hook; register struct BitMap *a2 __asm("a2") = bm2; __asm __volatile ("jsr a6@(-0xc0)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (a3), "r" (a2) : "a0","a1","a2","a3","d0","d1","d2","d3","d4", "memory"); return _res; } static __inline struct Layer * CreateBehindLayer (BASE_PAR_DECL struct Layer_Info *li,struct BitMap *bm,long x0,long y0,long x1,long y1,long flags,struct BitMap *bm2) { BASE_EXT_DECL register struct Layer * _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; register struct BitMap *a1 __asm("a1") = bm; register long d0 __asm("d0") = x0; register long d1 __asm("d1") = y0; register long d2 __asm("d2") = x1; register long d3 __asm("d3") = y1; register long d4 __asm("d4") = flags; register struct BitMap *a2 __asm("a2") = bm2; __asm __volatile ("jsr a6@(-0x2a)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (a2) : "a0","a1","a2","d0","d1","d2","d3","d4", "memory"); return _res; } static __inline struct Layer * 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) { BASE_EXT_DECL register struct Layer * _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; register struct BitMap *a1 __asm("a1") = bm; register long d0 __asm("d0") = x0; register long d1 __asm("d1") = y0; register long d2 __asm("d2") = x1; register long d3 __asm("d3") = y1; register long d4 __asm("d4") = flags; register struct Hook *a3 __asm("a3") = hook; register struct BitMap *a2 __asm("a2") = bm2; __asm __volatile ("jsr a6@(-0xba)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (a3), "r" (a2) : "a0","a1","a2","a3","d0","d1","d2","d3","d4", "memory"); return _res; } static __inline struct Layer * CreateUpfrontLayer (BASE_PAR_DECL struct Layer_Info *li,struct BitMap *bm,long x0,long y0,long x1,long y1,long flags,struct BitMap *bm2) { BASE_EXT_DECL register struct Layer * _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; register struct BitMap *a1 __asm("a1") = bm; register long d0 __asm("d0") = x0; register long d1 __asm("d1") = y0; register long d2 __asm("d2") = x1; register long d3 __asm("d3") = y1; register long d4 __asm("d4") = flags; register struct BitMap *a2 __asm("a2") = bm2; __asm __volatile ("jsr a6@(-0x24)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (a2) : "a0","a1","a2","d0","d1","d2","d3","d4", "memory"); return _res; } static __inline LONG DeleteLayer (BASE_PAR_DECL long dummy,struct Layer *layer) { BASE_EXT_DECL register LONG _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register long a0 __asm("a0") = dummy; register struct Layer *a1 __asm("a1") = layer; __asm __volatile ("jsr a6@(-0x5a)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1) : "a0","a1","d0","d1", "memory"); return _res; } static __inline void DisposeLayerInfo (BASE_PAR_DECL struct Layer_Info *li) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; __asm __volatile ("jsr a6@(-0x96)" : /* no output */ : "r" (a6), "r" (a0) : "a0","a1","d0","d1", "memory"); } static __inline void DoHookClipRects (BASE_PAR_DECL struct Hook *hook,struct RastPort *rport,struct Rectangle *rect) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Hook *a0 __asm("a0") = hook; register struct RastPort *a1 __asm("a1") = rport; register struct Rectangle *a2 __asm("a2") = rect; __asm __volatile ("jsr a6@(-0xd8)" : /* no output */ : "r" (a6), "r" (a0), "r" (a1), "r" (a2) : "a0","a1","a2","d0","d1", "memory"); } static __inline void EndUpdate (BASE_PAR_DECL struct Layer *layer,unsigned long flag) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer *a0 __asm("a0") = layer; register unsigned long d0 __asm("d0") = flag; __asm __volatile ("jsr a6@(-0x54)" : /* no output */ : "r" (a6), "r" (a0), "r" (d0) : "a0","a1","d0","d1", "memory"); } static __inline LONG FattenLayerInfo (BASE_PAR_DECL struct Layer_Info *li) { BASE_EXT_DECL register LONG _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; __asm __volatile ("jsr a6@(-0x9c)" : "=r" (_res) : "r" (a6), "r" (a0) : "a0","a1","d0","d1", "memory"); return _res; } static __inline void InitLayers (BASE_PAR_DECL struct Layer_Info *li) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; __asm __volatile ("jsr a6@(-0x1e)" : /* no output */ : "r" (a6), "r" (a0) : "a0","a1","d0","d1", "memory"); } static __inline struct Region * InstallClipRegion (BASE_PAR_DECL struct Layer *layer,struct Region *region) { BASE_EXT_DECL register struct Region * _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer *a0 __asm("a0") = layer; register struct Region *a1 __asm("a1") = region; __asm __volatile ("jsr a6@(-0xae)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1) : "a0","a1","d0","d1", "memory"); return _res; } static __inline struct Hook * InstallLayerHook (BASE_PAR_DECL struct Layer *layer,struct Hook *hook) { BASE_EXT_DECL register struct Hook * _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer *a0 __asm("a0") = layer; register struct Hook *a1 __asm("a1") = hook; __asm __volatile ("jsr a6@(-0xc6)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1) : "a0","a1","d0","d1", "memory"); return _res; } static __inline struct Hook * InstallLayerInfoHook (BASE_PAR_DECL struct Layer_Info *li,struct Hook *hook) { BASE_EXT_DECL register struct Hook * _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; register struct Hook *a1 __asm("a1") = hook; __asm __volatile ("jsr a6@(-0xcc)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1) : "a0","a1","d0","d1", "memory"); return _res; } static __inline void LockLayer (BASE_PAR_DECL long dummy,struct Layer *layer) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register long a0 __asm("a0") = dummy; register struct Layer *a1 __asm("a1") = layer; __asm __volatile ("jsr a6@(-0x60)" : /* no output */ : "r" (a6), "r" (a0), "r" (a1) : "a0","a1","d0","d1", "memory"); } static __inline void LockLayerInfo (BASE_PAR_DECL struct Layer_Info *li) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; __asm __volatile ("jsr a6@(-0x78)" : /* no output */ : "r" (a6), "r" (a0) : "a0","a1","d0","d1", "memory"); } static __inline void LockLayers (BASE_PAR_DECL struct Layer_Info *li) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; __asm __volatile ("jsr a6@(-0x6c)" : /* no output */ : "r" (a6), "r" (a0) : "a0","a1","d0","d1", "memory"); } static __inline LONG MoveLayer (BASE_PAR_DECL long dummy,struct Layer *layer,long dx,long dy) { BASE_EXT_DECL register LONG _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register long a0 __asm("a0") = dummy; register struct Layer *a1 __asm("a1") = layer; register long d0 __asm("d0") = dx; register long d1 __asm("d1") = dy; __asm __volatile ("jsr a6@(-0x3c)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1) : "a0","a1","d0","d1", "memory"); return _res; } static __inline LONG MoveLayerInFrontOf (BASE_PAR_DECL struct Layer *layer_to_move,struct Layer *other_layer) { BASE_EXT_DECL register LONG _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer *a0 __asm("a0") = layer_to_move; register struct Layer *a1 __asm("a1") = other_layer; __asm __volatile ("jsr a6@(-0xa8)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1) : "a0","a1","d0","d1", "memory"); return _res; } static __inline LONG MoveSizeLayer (BASE_PAR_DECL struct Layer *layer,long dx,long dy,long dw,long dh) { BASE_EXT_DECL register LONG _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer *a0 __asm("a0") = layer; register long d0 __asm("d0") = dx; register long d1 __asm("d1") = dy; register long d2 __asm("d2") = dw; register long d3 __asm("d3") = dh; __asm __volatile ("jsr a6@(-0xb4)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3) : "a0","a1","d0","d1","d2","d3", "memory"); return _res; } static __inline struct Layer_Info * NewLayerInfo (BASE_PAR_DECL0) { BASE_EXT_DECL register struct Layer_Info * _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; __asm __volatile ("jsr a6@(-0x90)" : "=r" (_res) : "r" (a6) : "a0","a1","d0","d1", "memory"); return _res; } static __inline void ScrollLayer (BASE_PAR_DECL long dummy,struct Layer *layer,long dx,long dy) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register long a0 __asm("a0") = dummy; register struct Layer *a1 __asm("a1") = layer; register long d0 __asm("d0") = dx; register long d1 __asm("d1") = dy; __asm __volatile ("jsr a6@(-0x48)" : /* no output */ : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1) : "a0","a1","d0","d1", "memory"); } static __inline LONG SizeLayer (BASE_PAR_DECL long dummy,struct Layer *layer,long dx,long dy) { BASE_EXT_DECL register LONG _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register long a0 __asm("a0") = dummy; register struct Layer *a1 __asm("a1") = layer; register long d0 __asm("d0") = dx; register long d1 __asm("d1") = dy; __asm __volatile ("jsr a6@(-0x42)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1) : "a0","a1","d0","d1", "memory"); return _res; } static __inline void SortLayerCR (BASE_PAR_DECL struct Layer *layer,long dx,long dy) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer *a0 __asm("a0") = layer; register long d0 __asm("d0") = dx; register long d1 __asm("d1") = dy; __asm __volatile ("jsr a6@(-0xd2)" : /* no output */ : "r" (a6), "r" (a0), "r" (d0), "r" (d1) : "a0","a1","d0","d1", "memory"); } static __inline void SwapBitsRastPortClipRect (BASE_PAR_DECL struct RastPort *rp,struct ClipRect *cr) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct RastPort *a0 __asm("a0") = rp; register struct ClipRect *a1 __asm("a1") = cr; __asm __volatile ("jsr a6@(-0x7e)" : /* no output */ : "r" (a6), "r" (a0), "r" (a1) : "a0","a1","d0","d1", "memory"); } static __inline void ThinLayerInfo (BASE_PAR_DECL struct Layer_Info *li) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; __asm __volatile ("jsr a6@(-0xa2)" : /* no output */ : "r" (a6), "r" (a0) : "a0","a1","d0","d1", "memory"); } static __inline void UnlockLayer (BASE_PAR_DECL struct Layer *layer) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer *a0 __asm("a0") = layer; __asm __volatile ("jsr a6@(-0x66)" : /* no output */ : "r" (a6), "r" (a0) : "a0","a1","d0","d1", "memory"); } static __inline void UnlockLayerInfo (BASE_PAR_DECL struct Layer_Info *li) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; __asm __volatile ("jsr a6@(-0x8a)" : /* no output */ : "r" (a6), "r" (a0) : "a0","a1","d0","d1", "memory"); } static __inline void UnlockLayers (BASE_PAR_DECL struct Layer_Info *li) { BASE_EXT_DECL register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; __asm __volatile ("jsr a6@(-0x72)" : /* no output */ : "r" (a6), "r" (a0) : "a0","a1","d0","d1", "memory"); } static __inline LONG UpfrontLayer (BASE_PAR_DECL long dummy,struct Layer *layer) { BASE_EXT_DECL register LONG _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register long a0 __asm("a0") = dummy; register struct Layer *a1 __asm("a1") = layer; __asm __volatile ("jsr a6@(-0x30)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (a1) : "a0","a1","d0","d1", "memory"); return _res; } static __inline struct Layer * WhichLayer (BASE_PAR_DECL struct Layer_Info *li,long x,long y) { BASE_EXT_DECL register struct Layer * _res __asm("d0"); register struct LayersBase* a6 __asm("a6") = BASE_NAME; register struct Layer_Info *a0 __asm("a0") = li; register long d0 __asm("d0") = x; register long d1 __asm("d1") = y; __asm __volatile ("jsr a6@(-0x84)" : "=r" (_res) : "r" (a6), "r" (a0), "r" (d0), "r" (d1) : "a0","a1","d0","d1", "memory"); return _res; } #undef BASE_EXT_DECL #undef BASE_PAR_DECL #undef BASE_PAR_DECL0 #undef BASE_NAME __END_DECLS #endif /* _INLINE_LAYERS_H */