Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

m68k: merge the mmu and non-mmu versions of segment.h

Trivial merge of the mmu and non-mmu version of segment.h.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>

+62 -112
+62 -4
arch/m68k/include/asm/segment.h
··· 1 - #ifdef __uClinux__ 2 - #include "segment_no.h" 3 - #else 4 - #include "segment_mm.h" 1 + #ifndef _M68K_SEGMENT_H 2 + #define _M68K_SEGMENT_H 3 + 4 + /* define constants */ 5 + /* Address spaces (FC0-FC2) */ 6 + #define USER_DATA (1) 7 + #ifndef __USER_DS 8 + #define __USER_DS (USER_DATA) 5 9 #endif 10 + #define USER_PROGRAM (2) 11 + #define SUPER_DATA (5) 12 + #ifndef __KERNEL_DS 13 + #define __KERNEL_DS (SUPER_DATA) 14 + #endif 15 + #define SUPER_PROGRAM (6) 16 + #define CPU_SPACE (7) 17 + 18 + #ifndef __ASSEMBLY__ 19 + 20 + typedef struct { 21 + unsigned long seg; 22 + } mm_segment_t; 23 + 24 + #define MAKE_MM_SEG(s) ((mm_segment_t) { (s) }) 25 + #define USER_DS MAKE_MM_SEG(__USER_DS) 26 + #define KERNEL_DS MAKE_MM_SEG(__KERNEL_DS) 27 + 28 + /* 29 + * Get/set the SFC/DFC registers for MOVES instructions 30 + */ 31 + 32 + static inline mm_segment_t get_fs(void) 33 + { 34 + #ifdef CONFIG_MMU 35 + mm_segment_t _v; 36 + __asm__ ("movec %/dfc,%0":"=r" (_v.seg):); 37 + 38 + return _v; 39 + #else 40 + return USER_DS; 41 + #endif 42 + } 43 + 44 + static inline mm_segment_t get_ds(void) 45 + { 46 + /* return the supervisor data space code */ 47 + return KERNEL_DS; 48 + } 49 + 50 + static inline void set_fs(mm_segment_t val) 51 + { 52 + #ifdef CONFIG_MMU 53 + __asm__ __volatile__ ("movec %0,%/sfc\n\t" 54 + "movec %0,%/dfc\n\t" 55 + : /* no outputs */ : "r" (val.seg) : "memory"); 56 + #endif 57 + } 58 + 59 + #define segment_eq(a,b) ((a).seg == (b).seg) 60 + 61 + #endif /* __ASSEMBLY__ */ 62 + 63 + #endif /* _M68K_SEGMENT_H */
-57
arch/m68k/include/asm/segment_mm.h
··· 1 - #ifndef _M68K_SEGMENT_H 2 - #define _M68K_SEGMENT_H 3 - 4 - /* define constants */ 5 - /* Address spaces (FC0-FC2) */ 6 - #define USER_DATA (1) 7 - #ifndef __USER_DS 8 - #define __USER_DS (USER_DATA) 9 - #endif 10 - #define USER_PROGRAM (2) 11 - #define SUPER_DATA (5) 12 - #ifndef __KERNEL_DS 13 - #define __KERNEL_DS (SUPER_DATA) 14 - #endif 15 - #define SUPER_PROGRAM (6) 16 - #define CPU_SPACE (7) 17 - 18 - #ifndef __ASSEMBLY__ 19 - 20 - typedef struct { 21 - unsigned long seg; 22 - } mm_segment_t; 23 - 24 - #define MAKE_MM_SEG(s) ((mm_segment_t) { (s) }) 25 - #define USER_DS MAKE_MM_SEG(__USER_DS) 26 - #define KERNEL_DS MAKE_MM_SEG(__KERNEL_DS) 27 - 28 - /* 29 - * Get/set the SFC/DFC registers for MOVES instructions 30 - */ 31 - 32 - static inline mm_segment_t get_fs(void) 33 - { 34 - mm_segment_t _v; 35 - __asm__ ("movec %/dfc,%0":"=r" (_v.seg):); 36 - 37 - return _v; 38 - } 39 - 40 - static inline mm_segment_t get_ds(void) 41 - { 42 - /* return the supervisor data space code */ 43 - return KERNEL_DS; 44 - } 45 - 46 - static inline void set_fs(mm_segment_t val) 47 - { 48 - __asm__ __volatile__ ("movec %0,%/sfc\n\t" 49 - "movec %0,%/dfc\n\t" 50 - : /* no outputs */ : "r" (val.seg) : "memory"); 51 - } 52 - 53 - #define segment_eq(a,b) ((a).seg == (b).seg) 54 - 55 - #endif /* __ASSEMBLY__ */ 56 - 57 - #endif /* _M68K_SEGMENT_H */
-51
arch/m68k/include/asm/segment_no.h
··· 1 - #ifndef _M68K_SEGMENT_H 2 - #define _M68K_SEGMENT_H 3 - 4 - /* define constants */ 5 - /* Address spaces (FC0-FC2) */ 6 - #define USER_DATA (1) 7 - #ifndef __USER_DS 8 - #define __USER_DS (USER_DATA) 9 - #endif 10 - #define USER_PROGRAM (2) 11 - #define SUPER_DATA (5) 12 - #ifndef __KERNEL_DS 13 - #define __KERNEL_DS (SUPER_DATA) 14 - #endif 15 - #define SUPER_PROGRAM (6) 16 - #define CPU_SPACE (7) 17 - 18 - #ifndef __ASSEMBLY__ 19 - 20 - typedef struct { 21 - unsigned long seg; 22 - } mm_segment_t; 23 - 24 - #define MAKE_MM_SEG(s) ((mm_segment_t) { (s) }) 25 - #define USER_DS MAKE_MM_SEG(__USER_DS) 26 - #define KERNEL_DS MAKE_MM_SEG(__KERNEL_DS) 27 - 28 - /* 29 - * Get/set the SFC/DFC registers for MOVES instructions 30 - */ 31 - 32 - static inline mm_segment_t get_fs(void) 33 - { 34 - return USER_DS; 35 - } 36 - 37 - static inline mm_segment_t get_ds(void) 38 - { 39 - /* return the supervisor data space code */ 40 - return KERNEL_DS; 41 - } 42 - 43 - static inline void set_fs(mm_segment_t val) 44 - { 45 - } 46 - 47 - #define segment_eq(a,b) ((a).seg == (b).seg) 48 - 49 - #endif /* __ASSEMBLY__ */ 50 - 51 - #endif /* _M68K_SEGMENT_H */