patch-2.1.87 linux/include/asm-m68k/segment.h
Next file: linux/include/asm-m68k/serial.h
Previous file: linux/include/asm-m68k/ptrace.h
Back to the patch index
Back to the overall index
- Lines: 64
- Date:
Thu Feb 12 16:30:13 1998
- Orig file:
v2.1.86/linux/include/asm-m68k/segment.h
- Orig date:
Fri Nov 22 05:56:36 1996
diff -u --recursive --new-file v2.1.86/linux/include/asm-m68k/segment.h linux/include/asm-m68k/segment.h
@@ -4,43 +4,53 @@
/* define constants */
/* Address spaces (FC0-FC2) */
#define USER_DATA (1)
-#ifndef USER_DS
-#define USER_DS (USER_DATA)
+#ifndef __USER_DS
+#define __USER_DS (USER_DATA)
#endif
#define USER_PROGRAM (2)
#define SUPER_DATA (5)
-#ifndef KERNEL_DS
-#define KERNEL_DS (SUPER_DATA)
+#ifndef __KERNEL_DS
+#define __KERNEL_DS (SUPER_DATA)
#endif
#define SUPER_PROGRAM (6)
#define CPU_SPACE (7)
#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 unsigned long get_fs(void)
+static inline mm_segment_t get_fs(void)
{
- unsigned long _v;
- __asm__ ("movec %/dfc,%0":"=r" (_v):);
+ mm_segment_t _v;
+ __asm__ ("movec %/dfc,%0":"=r" (_v.seg):);
return _v;
}
-static inline unsigned long get_ds(void)
+static inline mm_segment_t get_ds(void)
{
/* return the supervisor data space code */
return KERNEL_DS;
}
-static inline void set_fs(unsigned long val)
+static inline void set_fs(mm_segment_t val)
{
__asm__ __volatile__ ("movec %0,%/sfc\n\t"
"movec %0,%/dfc\n\t"
- : /* no outputs */ : "r" (val) : "memory");
+ : /* no outputs */ : "r" (val.seg) : "memory");
}
+
+#define segment_eq(a,b) ((a).seg == (b).seg)
#endif /* __ASSEMBLY__ */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov