On Tue, Nov 06, 2007 at 10:17:12PM +0100, Staf Verhaegen wrote:
Hello wine developers,
I am an AROS developer (http://www.aros.org); that is an open source implementation of the old AmigaOS. It has also the possiblity to run hosted on other OSes and is thus very similar to wine. I know that this group is for wine posts but I think I could reuse much of the knowledge gained by the wine developers for AROS.
Recently there has been discussion about the use of the %fs and %gs segment for AROS purposes and thus also for the hosted version. As wine also has to handle these registers, I am interested to know how wine handles these registers. Or doesn't wine have to take these registers into account ? I did download the 0.9.48 source code of wine and I only did find some places where a proper saving and restoring of these registers was done. Is there something I am overlooking ?
Win32 (and so Wine) uses %fs as the thread selector.
It needs to stay constant over process switches (as in "saved") and the base virtual address must be settable.
Older Wines allocate a (LDT?) selector themselves for %fs, newer ones have it use a GDT (?) slot.
%gs is not used in 32bit mode usually, but Win16 programs use it and so it should be allocatable and savable too.
Ciao, Marcus