Re: [ANNOUNCE] desc.c -- dump the i386 descriptor tables

Chuck Ebbert (76306.1226@compuserve.com)
Thu, 24 Apr 2003 09:59:58 -0400


Gabriel Paubert wrote:

> > #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/