1
2
3
4
5
6 #ifndef _LINUX_LDT_H
7 #define _LINUX_LDT_H
8
9
10 #define LDT_ENTRIES 8192
11
12 #define LDT_ENTRY_SIZE 8
13
14 struct modify_ldt_ldt_s {
15 unsigned int entry_number;
16 unsigned long base_addr;
17 unsigned int limit;
18 unsigned int seg_32bit:1;
19 unsigned int contents:2;
20 unsigned int read_exec_only:1;
21 unsigned int limit_in_pages:1;
22 unsigned int seg_not_present:1;
23 };
24
25 #define MODIFY_LDT_CONTENTS_DATA 0
26 #define MODIFY_LDT_CONTENTS_STACK 1
27 #define MODIFY_LDT_CONTENTS_CODE 2
28
29 extern int get_ldt(void *buffer);
30 extern int set_ldt_entry(int entry, unsigned long base, unsigned int limit,
31 int seg_32bit_flag, int contents, int read_only_flag,
32 int limit_in_pages_flag);
33
34 #endif