[ros-dev] Re: [ros-svn] [ion] 13090: SYSENTER support, INT2E Optimization, new Syscall Table/Stub generator and svn:ignore fixes. Please read associated Mailing List Post.

Alex Ionescu ionucu at videotron.ca
Mon Jan 17 15:21:46 CET 2005


This changes expand the user mode data/code segment to 4GB. This is 
wrong. If I change it back to the correct limit, the sysenter support 
doesn't work. Ros does crash within the first application (smss). See 
the debug output.

>
> - Hartmut
>
Hi Hartmut,

The changes are not wrong. This is required as per the SYSENTER/SYSEXIT 
documentation. Please see Intel's Programmers Manual, Volume 2A:

The SYSEXIT instruction always transfers to a flat protected mode user 
at CPL = 3. SYSEXIT can be invoked only from protected mode and CPL = 0. 
The instruction requires that the following conditions are met by the 
operating system:
    The CS selector for the target ring 3 code segment is 32 bits, 
mapped as a flat 0-4 GB address space with execute, read, and       
non-conforming permissions.
    The SS selector for the target ring 3 stack segment is 32 bits, 
mapped as a flat 0-4 GB address space with expand-up, read, and write 
permissions.

This is also a requirement for proper VMWare support and other emulators 
which depend on this fact. Please set it back to a Flat segment.

Best regards,
Alex Ionescu


More information about the Ros-dev mailing list