Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1203 → Rev 1212

/kernel/trunk/arch/amd64/include/cpu.h
29,6 → 29,7
#ifndef __amd64_CPU_H__
#define __amd64_CPU_H__
 
#define RFLAGS_IF (1 << 9)
#define RFLAGS_RF (1 << 16)
 
#define EFER_MSR_NUM 0xc0000080
/kernel/trunk/arch/amd64/src/ddi/ddi.c
34,6 → 34,7
#include <mm/slab.h>
#include <arch/pm.h>
#include <errno.h>
#include <arch/cpu.h>
 
/** Enable I/O space range for task.
*
90,3 → 91,17
 
return 0;
}
 
/** Enable/disable interrupts form syscall
*
* @param enable If non-zero, interrupts are enabled, otherwise disabled
* @param flags CP0 flags register
*/
__native ddi_int_control_arch(__native enable, __native *flags)
{
if (enable)
*flags |= RFLAGS_IF;
else
*flags &= ~RFLAGS_IF;
return 0;
}
/kernel/trunk/arch/amd64/src/asm_utils.S
243,7 → 243,12
 
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
250,6 → 255,12
popq %rcx
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
/kernel/trunk/arch/amd64/src/mm/page.c
168,7 → 168,7
page = read_cr2();
if (!as_page_fault(page)) {
print_info_errcode(n, istate);
printf("Page fault address: %Q\n", page);
printf("Page fault address: %llX\n", page);
panic("page fault\n");
}
}