/kernel/trunk/arch/amd64/src/ddi/ddi.c |
---|
100,20 → 100,6 |
return 0; |
} |
/** Enable/disable interrupts form syscall |
* |
* @param enable If non-zero, interrupts are enabled, otherwise disabled |
* @param flags RFLAGS register |
*/ |
__native ddi_int_control_arch(__native enable, __native *flags) |
{ |
if (enable) |
*flags |= RFLAGS_IF; |
else |
*flags &= ~RFLAGS_IF; |
return 0; |
} |
/** Install I/O Permission bitmap. |
* |
* Current task's I/O permission bitmap, if any, is installed |
/kernel/trunk/arch/amd64/src/asm_utils.S |
---|
244,11 → 244,7 |
sti |
movq %r9, %rcx # Exchange last parameter as a third |
cmp $2, %r8 # Is this SYS_INT_CONTROL |
je sys_int_ctrl |
call syscall_handler |
sys_end: |
cli # We will be touching stack pointer |
popq %r11 |
256,12 → 252,7 |
movq 0(%rsp), %rsp |
sysretq |
sys_int_ctrl: |
mov %rsp, %rsi # Pointer to flags |
call ddi_int_control |
jmp sys_end |
.data |
.global interrupt_handler_size |