Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _H8300_SEGMENT_H
3#define _H8300_SEGMENT_H
4
5/* define constants */
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 (3)
12#ifndef __KERNEL_DS
13#define __KERNEL_DS (SUPER_DATA)
14#endif
15#define SUPER_PROGRAM (4)
16
17#ifndef __ASSEMBLY__
18
19typedef struct {
20 unsigned long seg;
21} mm_segment_t;
22
23#define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
24#define USER_DS MAKE_MM_SEG(__USER_DS)
25#define KERNEL_DS MAKE_MM_SEG(__KERNEL_DS)
26
27/*
28 * Get/set the SFC/DFC registers for MOVES instructions
29 */
30
31static inline mm_segment_t get_fs(void)
32{
33 return USER_DS;
34}
35
36#define uaccess_kernel() (get_fs().seg == KERNEL_DS.seg)
37
38#endif /* __ASSEMBLY__ */
39
40#endif /* _H8300_SEGMENT_H */