HID: split picolcd's operation_mode sysfs attribute
[pandora-kernel.git] / arch / microblaze / include / asm / segment.h
1 /*
2  * Copyright (C) 2008-2009 Michal Simek <monstr@monstr.eu>
3  * Copyright (C) 2008-2009 PetaLogix
4  * Copyright (C) 2006 Atmark Techno, Inc.
5  *
6  * This file is subject to the terms and conditions of the GNU General Public
7  * License. See the file "COPYING" in the main directory of this archive
8  * for more details.
9  */
10
11 #ifndef _ASM_MICROBLAZE_SEGMENT_H
12 #define _ASM_MICROBLAZE_SEGMENT_H
13
14 # ifndef __ASSEMBLY__
15
16 typedef struct {
17         unsigned long seg;
18 } mm_segment_t;
19
20 /*
21  * On Microblaze the fs value is actually the top of the corresponding
22  * address space.
23  *
24  * The fs value determines whether argument validity checking should be
25  * performed or not. If get_fs() == USER_DS, checking is performed, with
26  * get_fs() == KERNEL_DS, checking is bypassed.
27  *
28  * For historical reasons, these macros are grossly misnamed.
29  *
30  * For non-MMU arch like Microblaze, KERNEL_DS and USER_DS is equal.
31  */
32 # define MAKE_MM_SEG(s)       ((mm_segment_t) { (s) })
33
34 #  ifndef CONFIG_MMU
35 #  define KERNEL_DS     MAKE_MM_SEG(0)
36 #  define USER_DS       KERNEL_DS
37 #  else
38 #  define KERNEL_DS     MAKE_MM_SEG(0xFFFFFFFF)
39 #  define USER_DS       MAKE_MM_SEG(TASK_SIZE - 1)
40 #  endif
41
42 # define get_ds()       (KERNEL_DS)
43 # define get_fs()       (current_thread_info()->addr_limit)
44 # define set_fs(val)    (current_thread_info()->addr_limit = (val))
45
46 # define segment_eq(a, b)       ((a).seg == (b).seg)
47
48 # endif /* __ASSEMBLY__ */
49 #endif /* _ASM_MICROBLAZE_SEGMENT_H */