We do not support programs that do SLDT.10.11.2016 09:46, Ricardo Neri ÐÐÑÐÑ:Actually, the SLDT instruction is also impacted by this feature. This
I took a closer look at the dosemu code. It appears that it does notIndeed.
purposely utilize SGDT to obtain the descriptor table while in vm86. It
does use SGDT (in protected mode) to emulate certain functionality such
as the Virtual xxx Driver. In such a case, UMIP needs to be disabled.
However, this code seems to be disabled [1].
The code you've found, was copied from wine, because
dosemu supports windows-3.1. But sgdt is in win32s part
that is disabled in dosemu. It is however enabled in wine, or
at least it was when I ported the VxD code from there. So you
may want to ask wine devs if they still use sgdt and vm86.
In dosemu, if we ever enable win32s support, we won't rely
on sgdt. In fact, when some prot mode program under dosemu
uses GDT selectors, in a fault handler we replace them with
LDT selectors.
feature, will cause a GP fault if the instructions SGDT, SLDT, SIDT,I am only a bit unsure about SMSW; the rest should be safe.
SMSW or STR are executed with CPL > 0. Would this be a problem for
dosemu?
The proposal now is to trap this GPU fault and give fake valueIf this fake value will be cooked up by the kernel without delivering
for these tables.
This is good news. This means that we could go ahead and give a fakeDefinitely.
pointer to the GDT and the other impacted tables?