12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #ifndef _H8300_SEGMENT_H
- #define _H8300_SEGMENT_H
- /* define constants */
- #define USER_DATA (1)
- #ifndef __USER_DS
- #define __USER_DS (USER_DATA)
- #endif
- #define USER_PROGRAM (2)
- #define SUPER_DATA (3)
- #ifndef __KERNEL_DS
- #define __KERNEL_DS (SUPER_DATA)
- #endif
- #define SUPER_PROGRAM (4)
- #ifndef __ASSEMBLY__
- typedef struct {
- unsigned long seg;
- } mm_segment_t;
- #define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
- #define USER_DS MAKE_MM_SEG(__USER_DS)
- #define KERNEL_DS MAKE_MM_SEG(__KERNEL_DS)
- /*
- * Get/set the SFC/DFC registers for MOVES instructions
- */
- static inline mm_segment_t get_fs(void)
- {
- return USER_DS;
- }
- static inline mm_segment_t get_ds(void)
- {
- /* return the supervisor data space code */
- return KERNEL_DS;
- }
- #define segment_eq(a, b) ((a).seg == (b).seg)
- #endif /* __ASSEMBLY__ */
- #endif /* _H8300_SEGMENT_H */
|