linux-bk/drivers/net/dgrs_asstruct.h
<<
>>
Prefs
   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
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.