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 };
23
24 #define MODIFY_LDT_CONTENTS_DATA 0
25 #define MODIFY_LDT_CONTENTS_STACK 1
26 #define MODIFY_LDT_CONTENTS_CODE 2
27
28 extern int get_ldt(void *buffer);
29 extern int set_ldt_entry(int entry, unsigned long base, unsigned int limit,
30 int seg_32bit_flag, int contents, int read_only_flag,
31 int limit_in_pages_flag);
32
33 #endif