tag | line | file | source code |
ldt_info | 37 | arch/i386/kernel/ldt.c | static inline int limits_ok(struct modify_ldt_ldt_s *ldt_info) |
ldt_info | 43 | arch/i386/kernel/ldt.c | base = ldt_info->base_addr; |
ldt_info | 44 | arch/i386/kernel/ldt.c | limit = ldt_info->limit; |
ldt_info | 45 | arch/i386/kernel/ldt.c | if (ldt_info->limit_in_pages) |
ldt_info | 52 | arch/i386/kernel/ldt.c | if (ldt_info->contents == 1) { |
ldt_info | 56 | arch/i386/kernel/ldt.c | if (ldt_info->seg_32bit) |
ldt_info | 64 | arch/i386/kernel/ldt.c | struct modify_ldt_ldt_s ldt_info; |
ldt_info | 68 | arch/i386/kernel/ldt.c | if (bytecount != sizeof(ldt_info)) |
ldt_info | 70 | arch/i386/kernel/ldt.c | error = verify_area(VERIFY_READ, ptr, sizeof(ldt_info)); |
ldt_info | 74 | arch/i386/kernel/ldt.c | memcpy_fromfs(&ldt_info, ptr, sizeof(ldt_info)); |
ldt_info | 76 | arch/i386/kernel/ldt.c | if (ldt_info.contents == 3 || ldt_info.entry_number >= LDT_ENTRIES) |
ldt_info | 79 | arch/i386/kernel/ldt.c | if (!limits_ok(&ldt_info)) |
ldt_info | 94 | arch/i386/kernel/ldt.c | lp = (unsigned long *) ¤t->ldt[ldt_info.entry_number]; |
ldt_info | 96 | arch/i386/kernel/ldt.c | if (ldt_info.base_addr == 0 && ldt_info.limit == 0) { |
ldt_info | 101 | arch/i386/kernel/ldt.c | *lp = ((ldt_info.base_addr & 0x0000ffff) << 16) | |
ldt_info | 102 | arch/i386/kernel/ldt.c | (ldt_info.limit & 0x0ffff); |
ldt_info | 103 | arch/i386/kernel/ldt.c | *(lp+1) = (ldt_info.base_addr & 0xff000000) | |
ldt_info | 104 | arch/i386/kernel/ldt.c | ((ldt_info.base_addr & 0x00ff0000)>>16) | |
ldt_info | 105 | arch/i386/kernel/ldt.c | (ldt_info.limit & 0xf0000) | |
ldt_info | 106 | arch/i386/kernel/ldt.c | (ldt_info.contents << 10) | |
ldt_info | 107 | arch/i386/kernel/ldt.c | ((ldt_info.read_exec_only ^ 1) << 9) | |
ldt_info | 108 | arch/i386/kernel/ldt.c | (ldt_info.seg_32bit << 22) | |
ldt_info | 109 | arch/i386/kernel/ldt.c | (ldt_info.limit_in_pages << 23) | |
ldt_info | 110 | arch/i386/kernel/ldt.c | ((ldt_info.seg_not_present ^1) << 15) | |