1 /* 2 * For declaring structures shared with assembly routines 3 * 4 * $Id: asstruct.h,v 1.1.1.1 1994/10/23 05:08:32 rick Exp $ 5 */ 6 7 #if ASSEMBLER 8 9 # define MO(t,a) (a) 10 # define VMO(t,a) (a) 11 12 # define BEGIN_STRUCT(x) _Off=0 13 # define S1A(t,x,n) _Off=(_Off+0)&~0; x=_Off; _Off=_Off+(1*n) 14 # define S2A(t,x,n) _Off=(_Off+1)&~1; x=_Off; _Off=_Off+(2*n) 15 # define S4A(t,x,n) _Off=(_Off+3)&~3; x=_Off; _Off=_Off+(4*n) 16 # define WORD(x) _Off=(_Off+3)&~3; x=_Off; _Off=_Off+4 17 # define WORDA(x,n) _Off=(_Off+3)&~3; x=_Off; _Off=_Off+(4*n) 18 # define VWORD(x) _Off=(_Off+3)&~3; x=_Off; _Off=_Off+4 19 # define S1(t,x) _Off=(_Off+0)&~0; x=_Off; _Off=_Off+1 20 # define S2(t,x) _Off=(_Off+1)&~1; x=_Off; _Off=_Off+2 21 # define S4(t,x) _Off=(_Off+3)&~3; x=_Off; _Off=_Off+4 22 # define END_STRUCT(x) _Off=(_Off+3)&~3; x=_Off 23 24 #else /* C */ 25 26 #define VMO(t,a) (*(volatile t *)(a)) 27 28 # define BEGIN_STRUCT(x) struct x { 29 # define S1(t,x) t x ; 30 # define S1A(t,x,n) t x[n] ; 31 # define S2(t,x) t x ; 32 # define S2A(t,x,n) t x[n] ; 33 # define S4(t,x) t x ; 34 # define S4A(t,x,n) t x[n] ; 35 # define END_STRUCT(x) } ; 36 37 #endif 38