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 18typedef 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 30static inline mm_segment_t get_fs(void) 31{ 32 return USER_DS; 33} 34 35static inline mm_segment_t get_ds(void) 36{ 37 /* return the supervisor data space code */ 38 return KERNEL_DS; 39} 40 41static 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