2: mov 12(%esp), %esp
pushl $(GDT_DATA_USER|SEL_PL_U)
push %ebp
- pushl $(EFLAGS_IOPL_U|EFLAGS_IF|EFLAGS_TF)
+ pushl $(EFLAGS_IF | EFLAGS_TF)
pushl $(GDT_CODE_USER|SEL_PL_U)
push %ebx
cld
pop %esp
pushl $(GDT_DATA_USER|SEL_PL_U) /* user ss */
pushl %ebp // user esp
- // Fake user eflags, set IOPL to 3
- pushl $(EFLAGS_IOPL_U | EFLAGS_IF)
+ pushf // fake user eflags
cld
// Fake user cs. This cs value is never used with exception
// that the thread is ex_regs'd before we leave with sysexit.
pop %esp
pushl $(GDT_DATA_USER|SEL_PL_U) /* user ss */
pushl %ebp // push user SP (get in ebp)
- // Fake user eflags, set IOPL to 3
- pushl $(EFLAGS_IOPL_U | EFLAGS_IF)
+ pushf // fake user eflags
cld
// Fake user cs. This cs value is never used with exception
// that the thread is ex_regs'd before we leave with sysexit.