/kernel/trunk/arch/ia64/src/ia64.c |
---|
32,7 → 32,10 |
#include <arch/interrupt.h> |
#include <arch/barrier.h> |
#include <arch/types.h> |
#include <arch/drivers/keyboard.h> |
#include <console/console.h> |
void arch_pre_mm_init(void) |
{ |
/* Set Interruption Vector Address (i.e. location of interruption vector table). */ |
40,6 → 43,7 |
srlz_d(); |
ski_init_console(); |
keyboard_init(); |
it_init(); |
} |
/kernel/trunk/arch/ia64/src/ski/ski.c |
---|
64,3 → 64,26 |
if (ch == '\n') ski_putchar('\r'); |
} |
/** Display character on debug console |
* |
* Use SSC (Simulator System Call) to |
* get character from debug console. |
*/ |
__s32 ski_getchar(void) |
{ |
__u64 ch; |
__asm__ ( |
"mov r15=%0\n" |
"break 0x80000;;\n" /* modifies r8 */ |
"mov %1=r8;;\n" |
: |
: "i" (SKI_GETCHAR), "r" (ch) |
: "r15", "r8" |
); |
return (__s32)ch; |
} |
/kernel/trunk/arch/ia64/src/drivers/it.c |
---|
35,6 → 35,8 |
#include <arch/barrier.h> |
#include <time/clock.h> |
void keyboard(void); |
/** Initialize Interval Timer. */ |
void it_init(void) |
{ |
63,4 → 65,5 |
itm_write(itc_read() + IT_DELTA); /* program next interruption */ |
srlz_d(); /* propagate changes */ |
clock(); |
keyboard(); |
} |