linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Gabriel Paubert <paubert@iram.es>
To: Chuck Ebbert <76306.1226@compuserve.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [ANNOUNCE] desc.c -- dump the i386 descriptor tables
Date: Thu, 24 Apr 2003 18:25:54 +0200	[thread overview]
Message-ID: <20030424162554.GB11897@iram.es> (raw)
In-Reply-To: <200304241004_MC3-1-35CA-8D5B@compuserve.com>

On Thu, Apr 24, 2003 at 09:59:58AM -0400, Chuck Ebbert wrote:
> 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?

Indeed for APM at least. If D (default operand size, bit 22 of b) bit is set
then the code segment is 32 bit code, if clear it's 16 bit. 

The same bit is used for the upper limit of expand down data segments,
cleared for 64k, set for 4G.

>   I now have it dumping LDTs, and should probably do at least cs:eip and
> eflags
> for each task.

LDT or TSS ? 

>  
> 
> > d) extend this for x86-64 :-)
> 
> 
>   Itanium. 8)

Itanium is not interesting, it uses the same format as i386 for
this and only uses the LDT/GDT in ia32 emulation mode. Interrupts
are very different but I don't remember how they work right now.

But x86_64 uses the reserved bit of the segment descriptors 
to define extended GDT entries (and LDT too IIRC) with 64 bit
bases and/or 64 bit code segments (have to download it again).
These entries occupy 16 bytes. The IDT format is different
(as well as the TSS format).

	Gabriel

  reply	other threads:[~2003-04-24 16:21 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-24 13:59 [ANNOUNCE] desc.c -- dump the i386 descriptor tables Chuck Ebbert
2003-04-24 16:25 ` Gabriel Paubert [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-04-24  9:06 Chuck Ebbert
2003-04-24  9:12 ` William Lee Irwin III
2003-04-24  3:02 Chuck Ebbert
2003-04-24  3:11 ` William Lee Irwin III
2003-04-24  8:53 ` Gabriel Paubert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030424162554.GB11897@iram.es \
    --to=paubert@iram.es \
    --cc=76306.1226@compuserve.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).