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

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