> > #31: base=c0355600 limit=00eb flags=0089 <G=0 P=1 S=0 DPL=0 Available TSS>
>
> Nice but the limit field is 20 bits (shifted left by 12 bits if G=1).
Huh. The diagram I used was blank where the upper four limit bits belong
so I assumed it was unused... and for some reason I was thinking you
shifted
left by 16 bits when G=1, so I never noticed the missing four bits. Thanks.
> Other suggestions left as an exercise to the reader:
>
> a) distinguish 16 bit code from 32 bit code (GDT entry #19 is 16 bit code),
BIOS?
> b) distinguish read/write from read-only and execute/read from
> execute-only (are there any read-only or execute-only segments in the GDT?)
>
> c) distinguish 16 and 32 bit expand down data (changes the upper
> limit of the valid addresses, but it's never used in the GDT, so like
> the conformant code it's not that important)
I now have it dumping LDTs, and should probably do at least cs:eip and
eflags
for each task.
> d) extend this for x86-64 :-)
Itanium. 8)
------
Chuck
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/