home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-sparc / asmmacro.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.0 KB  |  46 lines

  1. /* asmmacro.h: Assembler macros.
  2.  *
  3.  * Copyright (C) 1996 David S. Miller (davem@caipfs.rutgers.edu)
  4.  */
  5.  
  6. #ifndef _SPARC_ASMMACRO_H
  7. #define _SPARC_ASMMACRO_H
  8.  
  9. #include <asm/btfixup.h>
  10. #include <asm/asi.h>
  11.  
  12. #define GET_PROCESSOR4M_ID(reg) \
  13.     rd    %tbr, %reg; \
  14.     srl    %reg, 12, %reg; \
  15.     and    %reg, 3, %reg;
  16.  
  17. #define GET_PROCESSOR4D_ID(reg) \
  18.     lda    [%g0] ASI_M_VIKING_TMP1, %reg;
  19.  
  20. /* All trap entry points _must_ begin with this macro or else you
  21.  * lose.  It makes sure the kernel has a proper window so that
  22.  * c-code can be called.
  23.  */
  24. #define SAVE_ALL_HEAD \
  25.     sethi    %hi(trap_setup), %l4; \
  26.     jmpl    %l4 + %lo(trap_setup), %l6;
  27. #define SAVE_ALL \
  28.     SAVE_ALL_HEAD \
  29.      nop;
  30.  
  31. /* All traps low-level code here must end with this macro. */
  32. #define RESTORE_ALL b ret_trap_entry; clr %l6;
  33.  
  34. /* sun4 probably wants half word accesses to ASI_SEGMAP, while sun4c+
  35.    likes byte accesses. These are to avoid ifdef mania. */
  36.  
  37. #ifdef CONFIG_SUN4
  38. #define lduXa    lduha
  39. #define stXa    stha
  40. #else
  41. #define lduXa    lduba
  42. #define stXa    stba
  43. #endif
  44.  
  45. #endif /* !(_SPARC_ASMMACRO_H) */
  46.