+kern_return_t
+thread_compose_cthread_desc(unsigned int addr, pcb_t pcb)
+{
+ struct real_descriptor desc;
+ extern struct fake_descriptor *mp_ldt[];
+ struct real_descriptor *ldtp;
+ int mycpu = cpu_number();
+
+ ldtp = (struct real_descriptor *)mp_ldt[mycpu];
+ desc.limit_low = 1;
+ desc.limit_high = 0;
+ desc.base_low = addr & 0xffff;
+ desc.base_med = (addr >> 16) & 0xff;
+ desc.base_high = (addr >> 24) & 0xff;
+ desc.access = ACC_P|ACC_PL_U|ACC_DATA_W;
+ desc.granularity = SZ_32|SZ_G;
+ pcb->cthread_desc = desc;
+ ldtp[sel_idx(USER_CTHREAD)] = desc;
+ return(KERN_SUCCESS);
+}
+