KSD/TSD take 2 (was: KSE critical regions)

Julian Elischer julian at elischer.org
Thu Jul 24 17:46:07 PDT 2003



On Fri, 25 Jul 2003, David Xu wrote:

> 
> > 
> 
> Dan has two fields in kse_mailbox:
> 
> void      *km_ksdaddr;    /* KSE specific data address */
> uint32_t  km_ksdsize;     /* KSE specific data size */
> 
> I think it is used to tell kernel to map start address 
> of libkse's kse mailbox like above lib_kse_mailbox.
> 
> > presently it requires special code to do the segments..
> > (in teh library)
> > 
> > 
> Did you make some progresses in this area ?

It requires thatI rewrite the LDT code in WINE
because wine just clobbers the LDT without looking to see if anyone else
is using entries..


My aim was to have a call i386_set_ldt that takes an addr and length
and returns teh value that needs to be set into a segment register
in order to access that segment (or error if no more segments
available). Wine could use it from userland and kse_create could use it
from inside the kernel to set up a segment that covers the mailbox.
kse_create would set it into the %gs register of the newly created kse.

having it done by by the library with the 'shotgun' code
is probably good enough for now



> 
> 
> 



More information about the freebsd-threads mailing list