Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | #ifdef 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 | |
6aa20a22 | 22 | # define END_STRUCT(x) _Off=(_Off+3)&~3; x=_Off |
1da177e4 LT |
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 |