Lines Matching refs:desc
116 static bool install_valid_mode(const struct user_desc *desc, uint32_t ar, in install_valid_mode() argument
120 desc, sizeof(*desc)); in install_valid_mode()
124 uint32_t limit = desc->limit; in install_valid_mode()
125 if (desc->limit_in_pages) in install_valid_mode()
127 check_valid_segment(desc->entry_number, 1, ar, limit, true); in install_valid_mode()
133 if (desc->seg_32bit) { in install_valid_mode()
145 static bool install_valid(const struct user_desc *desc, uint32_t ar) in install_valid() argument
147 return install_valid_mode(desc, ar, false); in install_valid()
150 static void install_invalid(const struct user_desc *desc, bool oldmode) in install_invalid() argument
153 desc, sizeof(*desc)); in install_invalid()
157 check_invalid_segment(desc->entry_number, 1); in install_invalid()
161 if (desc->seg_32bit) { in install_invalid()
180 static void fail_install(struct user_desc *desc) in fail_install() argument
182 if (safe_modify_ldt(0x11, desc, sizeof(*desc)) == 0) { in fail_install()
194 struct user_desc desc = { in do_simple_tests() local
205 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE | AR_S | AR_P | AR_DB); in do_simple_tests()
207 desc.limit_in_pages = 1; in do_simple_tests()
208 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE | in do_simple_tests()
213 desc.entry_number = 2; in do_simple_tests()
214 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE | in do_simple_tests()
219 desc.base_addr = 0xf0000000; in do_simple_tests()
220 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE | in do_simple_tests()
223 desc.useable = 1; in do_simple_tests()
224 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE | in do_simple_tests()
227 desc.seg_not_present = 1; in do_simple_tests()
228 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE | in do_simple_tests()
231 desc.seg_32bit = 0; in do_simple_tests()
232 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE | in do_simple_tests()
235 desc.seg_32bit = 1; in do_simple_tests()
236 desc.contents = 0; in do_simple_tests()
237 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA | in do_simple_tests()
240 desc.read_exec_only = 1; in do_simple_tests()
241 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA | in do_simple_tests()
244 desc.contents = 1; in do_simple_tests()
245 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA_EXPDOWN | in do_simple_tests()
248 desc.read_exec_only = 0; in do_simple_tests()
249 desc.limit_in_pages = 0; in do_simple_tests()
250 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA_EXPDOWN | in do_simple_tests()
253 desc.contents = 3; in do_simple_tests()
254 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE_CONF | in do_simple_tests()
257 desc.read_exec_only = 1; in do_simple_tests()
258 install_valid(&desc, AR_DPL3 | AR_TYPE_XOCODE_CONF | in do_simple_tests()
261 desc.read_exec_only = 0; in do_simple_tests()
262 desc.contents = 2; in do_simple_tests()
263 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE | in do_simple_tests()
266 desc.read_exec_only = 1; in do_simple_tests()
269 desc.lm = 1; in do_simple_tests()
270 install_valid(&desc, AR_DPL3 | AR_TYPE_XOCODE | in do_simple_tests()
272 desc.lm = 0; in do_simple_tests()
275 bool entry1_okay = install_valid(&desc, AR_DPL3 | AR_TYPE_XOCODE | in do_simple_tests()
283 check_valid_segment(desc.entry_number, 1, in do_simple_tests()
285 AR_S | AR_DB | AR_AVL, desc.limit, in do_simple_tests()
306 desc.entry_number = i; in do_simple_tests()
307 desc.limit = i; in do_simple_tests()
308 if (safe_modify_ldt(0x11, &desc, sizeof(desc)) != 0) { in do_simple_tests()
324 desc.entry_number = 8192; in do_simple_tests()
325 fail_install(&desc); in do_simple_tests()
328 memset(&desc, 0, sizeof(desc)); in do_simple_tests()
329 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA | AR_S | AR_P); in do_simple_tests()
331 desc.seg_not_present = 1; in do_simple_tests()
332 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA | AR_S); in do_simple_tests()
334 desc.seg_not_present = 0; in do_simple_tests()
335 desc.read_exec_only = 1; in do_simple_tests()
336 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA | AR_S | AR_P); in do_simple_tests()
338 desc.read_exec_only = 0; in do_simple_tests()
339 desc.seg_not_present = 1; in do_simple_tests()
340 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA | AR_S); in do_simple_tests()
342 desc.read_exec_only = 1; in do_simple_tests()
343 desc.limit = 1; in do_simple_tests()
344 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA | AR_S); in do_simple_tests()
346 desc.limit = 0; in do_simple_tests()
347 desc.base_addr = 1; in do_simple_tests()
348 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA | AR_S); in do_simple_tests()
350 desc.base_addr = 0; in do_simple_tests()
351 install_invalid(&desc, false); in do_simple_tests()
353 desc.seg_not_present = 0; in do_simple_tests()
354 desc.read_exec_only = 0; in do_simple_tests()
355 desc.seg_32bit = 1; in do_simple_tests()
356 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA | AR_S | AR_P | AR_DB); in do_simple_tests()
357 install_invalid(&desc, true); in do_simple_tests()
384 const struct user_desc desc = {}; in threadproc() local
385 if (syscall(SYS_modify_ldt, 1, &desc, sizeof(desc)) != 0) in threadproc()
459 struct user_desc desc = { in do_multicpu_tests() local
471 if (safe_modify_ldt(0x11, &desc, sizeof(desc)) != 0) { in do_multicpu_tests()
531 struct user_desc desc = { in do_exec_test() local
542 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE | AR_S | AR_P | AR_DB); in do_exec_test()