home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / sh / include / asm / segment.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  839 b   |  35 lines

  1. #ifndef __ASM_SH_SEGMENT_H
  2. #define __ASM_SH_SEGMENT_H
  3.  
  4. #ifndef __ASSEMBLY__
  5.  
  6. typedef struct {
  7.     unsigned long seg;
  8. } mm_segment_t;
  9.  
  10. #define MAKE_MM_SEG(s)    ((mm_segment_t) { (s) })
  11.  
  12. /*
  13.  * The fs value determines whether argument validity checking should be
  14.  * performed or not.  If get_fs() == USER_DS, checking is performed, with
  15.  * get_fs() == KERNEL_DS, checking is bypassed.
  16.  *
  17.  * For historical reasons, these macros are grossly misnamed.
  18.  */
  19. #define KERNEL_DS    MAKE_MM_SEG(0xFFFFFFFFUL)
  20. #ifdef CONFIG_MMU
  21. #define USER_DS        MAKE_MM_SEG(PAGE_OFFSET)
  22. #else
  23. #define USER_DS        KERNEL_DS
  24. #endif
  25.  
  26. #define segment_eq(a,b)    ((a).seg == (b).seg)
  27.  
  28. #define get_ds()    (KERNEL_DS)
  29.  
  30. #define get_fs()    (current_thread_info()->addr_limit)
  31. #define set_fs(x)    (current_thread_info()->addr_limit = (x))
  32.  
  33. #endif /* __ASSEMBLY__ */
  34. #endif /* __ASM_SH_SEGMENT_H */
  35.