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-h8300 / segment.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  904 b   |  50 lines

  1. #ifndef _H8300_SEGMENT_H
  2. #define _H8300_SEGMENT_H
  3.  
  4. /* define constants */
  5. #define USER_DATA     (1)
  6. #ifndef __USER_DS
  7. #define __USER_DS     (USER_DATA)
  8. #endif
  9. #define USER_PROGRAM  (2)
  10. #define SUPER_DATA    (3)
  11. #ifndef __KERNEL_DS
  12. #define __KERNEL_DS   (SUPER_DATA)
  13. #endif
  14. #define SUPER_PROGRAM (4)
  15.  
  16. #ifndef __ASSEMBLY__
  17.  
  18. typedef struct {
  19.     unsigned long seg;
  20. } mm_segment_t;
  21.  
  22. #define MAKE_MM_SEG(s)    ((mm_segment_t) { (s) })
  23. #define USER_DS        MAKE_MM_SEG(__USER_DS)
  24. #define KERNEL_DS    MAKE_MM_SEG(__KERNEL_DS)
  25.  
  26. /*
  27.  * Get/set the SFC/DFC registers for MOVES instructions
  28.  */
  29.  
  30. static inline mm_segment_t get_fs(void)
  31. {
  32.     return USER_DS;
  33. }
  34.  
  35. static inline mm_segment_t get_ds(void)
  36. {
  37.     /* return the supervisor data space code */
  38.     return KERNEL_DS;
  39. }
  40.  
  41. static inline void set_fs(mm_segment_t val)
  42. {
  43. }
  44.  
  45. #define segment_eq(a,b)    ((a).seg == (b).seg)
  46.  
  47. #endif /* __ASSEMBLY__ */
  48.  
  49. #endif /* _H8300_SEGMENT_H */
  50.