Lines Matching refs:desc

142 	struct user_desc desc = *d;
152 desc.entry_number = gdt_entry_num;
154 ret = syscall(SYS_set_thread_area, &desc);
157 &desc, sizeof(desc));
169 uint32_t limit = desc.limit;
170 if (desc.limit_in_pages)
172 check_valid_segment(desc.entry_number, ldt, ar, limit, true);
175 if (desc.seg_32bit) {
189 static bool install_valid(const struct user_desc *desc, uint32_t ar)
191 bool ret = install_valid_mode(desc, ar, false, true);
193 if (desc->contents <= 1 && desc->seg_32bit &&
194 !desc->seg_not_present) {
196 install_valid_mode(desc, ar, false, false);
202 static void install_invalid(const struct user_desc *desc, bool oldmode)
205 desc, sizeof(*desc));
209 check_invalid_segment(desc->entry_number, 1);
213 if (desc->seg_32bit) {
232 static void fail_install(struct user_desc *desc)
234 if (safe_modify_ldt(0x11, desc, sizeof(*desc)) == 0) {
246 struct user_desc desc = {
257 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE | AR_S | AR_P | AR_DB);
259 desc.limit_in_pages = 1;
260 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE |
265 desc.entry_number = 2;
266 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE |
271 desc.base_addr = 0xf0000000;
272 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE |
275 desc.useable = 1;
276 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE |
279 desc.seg_not_present = 1;
280 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE |
283 desc.seg_32bit = 0;
284 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE |
287 desc.seg_32bit = 1;
288 desc.contents = 0;
289 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA |
292 desc.read_exec_only = 1;
293 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA |
296 desc.contents = 1;
297 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA_EXPDOWN |
300 desc.read_exec_only = 0;
301 desc.limit_in_pages = 0;
302 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA_EXPDOWN |
305 desc.contents = 3;
306 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE_CONF |
309 desc.read_exec_only = 1;
310 install_valid(&desc, AR_DPL3 | AR_TYPE_XOCODE_CONF |
313 desc.read_exec_only = 0;
314 desc.contents = 2;
315 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE |
318 desc.read_exec_only = 1;
321 desc.lm = 1;
322 install_valid(&desc, AR_DPL3 | AR_TYPE_XOCODE |
324 desc.lm = 0;
327 bool entry1_okay = install_valid(&desc, AR_DPL3 | AR_TYPE_XOCODE |
335 check_valid_segment(desc.entry_number, 1,
337 AR_S | AR_DB | AR_AVL, desc.limit,
358 desc.entry_number = i;
359 desc.limit = i;
360 if (safe_modify_ldt(0x11, &desc, sizeof(desc)) != 0) {
376 desc.entry_number = 8192;
377 fail_install(&desc);
380 memset(&desc, 0, sizeof(desc));
381 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA | AR_S | AR_P);
383 desc.seg_not_present = 1;
384 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA | AR_S);
386 desc.seg_not_present = 0;
387 desc.read_exec_only = 1;
388 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA | AR_S | AR_P);
390 desc.read_exec_only = 0;
391 desc.seg_not_present = 1;
392 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA | AR_S);
394 desc.read_exec_only = 1;
395 desc.limit = 1;
396 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA | AR_S);
398 desc.limit = 0;
399 desc.base_addr = 1;
400 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA | AR_S);
402 desc.base_addr = 0;
403 install_invalid(&desc, false);
405 desc.seg_not_present = 0;
406 desc.seg_32bit = 1;
407 desc.read_exec_only = 0;
408 desc.limit = 0xfffff;
410 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA | AR_S | AR_P | AR_DB);
412 desc.limit_in_pages = 1;
414 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA | AR_S | AR_P | AR_DB | AR_G);
415 desc.read_exec_only = 1;
416 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA | AR_S | AR_P | AR_DB | AR_G);
417 desc.contents = 1;
418 desc.read_exec_only = 0;
419 install_valid(&desc, AR_DPL3 | AR_TYPE_RWDATA_EXPDOWN | AR_S | AR_P | AR_DB | AR_G);
420 desc.read_exec_only = 1;
421 install_valid(&desc, AR_DPL3 | AR_TYPE_RODATA_EXPDOWN | AR_S | AR_P | AR_DB | AR_G);
423 desc.limit = 0;
424 install_invalid(&desc, true);
451 const struct user_desc desc = {};
452 if (syscall(SYS_modify_ldt, 1, &desc, sizeof(desc)) != 0)
572 struct user_desc desc = {
584 if (safe_modify_ldt(0x11, &desc, sizeof(desc)) != 0) {
641 struct user_desc desc = {
652 install_valid(&desc, AR_DPL3 | AR_TYPE_XRCODE | AR_S | AR_P | AR_DB);