Re: Assignment of GDT entries

From: Albert Cahalan
Date: Thu Sep 14 2006 - 03:12:30 EST


On 9/14/06, Zachary Amsden <zach@xxxxxxxxxx> wrote:
Albert Cahalan wrote:

> So basically it's not allowed to just grab the 3rd slot?

You can, but you should be prepared for it to fail as well.

Without knowing details of the kernel's GDT, how?

> What if I want to find out what is already in use?
> Am I supposed to iterate over all 8191 possible
> GDT entries? How do I even tell how many slots
> are available without using them all up?

There are only 32 possible GDT entries in 32-bit i386 Linux, and only
three of them are usable for userspace. You can't find out which slots
are in use, but you can cause one to be allocated and returned to you.
This seems like a perfectly reasonable API to me, why do you think it is
so ugly?

Eh, "returned to you" doesn't work for me. I need to
figure out what other code (not written by me) uses.

I may need to "borrow" a slot if all three slots are in
use. Without using evil knowledge of the GDT, how
am I to do that? I don't know what slots might have
been allocated by other libraries.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/