Hi ,
Am a kernel Newbie. I was reading linux 0.11 version code.
I happened to see in INIT_TASK # define
ldt[3] is initialized as
{0,0}, \
/* ldt */ {0x9f,0xc0fa00}, \
{0x9f,0xc0f200}, \
First is a NULL segment, how about others being filled with those
values. How was it decided to fill them??
Again these values which are two longs as obtained from des_struct
do not seem to match LDT segment register.
However set_ldt_desc(gdt+FIRST_LDT_ENTRY,&(init_task.task.ldt))
fills up LDT0 etc. appropriately with the base as &init_task.task.ldt
Really confusing of where and how these values "0x9f,0xc0fa00"
"0x9f,0xc0f200"
are used.
Please help me out in understanding the same.
Thanks in advance,
Sudharsan.