X86: Move the GDT down to where it can be accessed in 32 bit mode.
The GDT can be accessed by user level software running in compatibility mode by moving segment selectors into segment registers. The GDT needs to be set up at an address accessible in this mode.
This commit is contained in:
parent
1d96135087
commit
40084e0c3e
1 changed files with 2 additions and 2 deletions
|
@ -132,7 +132,7 @@ I386LiveProcess::I386LiveProcess(LiveProcessParams *params,
|
|||
int _numSyscallDescs) :
|
||||
X86LiveProcess(params, objFile, _syscallDescs, _numSyscallDescs)
|
||||
{
|
||||
_gdtStart = ULL(0x100000000);
|
||||
_gdtStart = ULL(0xffffd000);
|
||||
_gdtSize = VMPageSize;
|
||||
|
||||
vsyscallPage.base = 0xffffe000ULL;
|
||||
|
@ -140,7 +140,7 @@ I386LiveProcess::I386LiveProcess(LiveProcessParams *params,
|
|||
vsyscallPage.vsyscallOffset = 0x400;
|
||||
vsyscallPage.vsysexitOffset = 0x410;
|
||||
|
||||
stack_base = vsyscallPage.base;
|
||||
stack_base = _gdtStart;
|
||||
|
||||
// Set pointer for next thread stack. Reserve 8M for main stack.
|
||||
next_thread_stack_base = stack_base - (8 * 1024 * 1024);
|
||||
|
|
Loading…
Reference in a new issue