Patch by Jan Klötzke:

* In vm86 mode CS will have arbitrary values so we check for both USER_CODE_SEG
  and the VM flag in EFLAGS. This is also done when entering interrupt gates.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25607 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2008-05-22 11:59:47 +00:00
parent ae6b38b83e
commit bb107c4e29
4 changed files with 8 additions and 4 deletions
@@ -157,6 +157,10 @@ struct iframe {
uint32 user_ss;
};
#define IFRAME_IS_USER(f) ( ((f)->cs == USER_CODE_SEG) \
|| (((f)->flags & 0x20000) != 0 ))
#define IFRAME_IS_VM86(f) ( ((f)->flags & 0x20000) != 0 )
// features
enum x86_feature_type {
FEATURE_COMMON = 0, // cpuid eax=1, ecx register