/kernel/trunk/arch/ia64/include/ski/ski.h |
---|
29,10 → 29,15 |
#ifndef __SKI_H__ |
#define __SKI_H__ |
#include <arch/types.h> |
#define SKI_INIT_CONSOLE 20 |
#define SKI_GETCHAR 21 |
#define SKI_PUTCHAR 31 |
extern void ski_init_console(void); |
extern void ski_putchar(const char ch); |
extern __s32 ski_getchar(void); |
#endif |
/kernel/trunk/arch/ia64/include/types.h |
---|
32,7 → 32,12 |
#define NULL 0 |
typedef signed char __s8; |
typedef signed short int __s16; |
typedef signed int __s32; |
typedef signed long __s64; |
typedef unsigned char __u8; |
typedef unsigned short __u16; |
typedef unsigned int __u32; |
/kernel/trunk/arch/ia64/Makefile.inc |
---|
56,4 → 56,5 |
arch/$(ARCH)/src/interrupt.c \ |
arch/$(ARCH)/src/fmath.c \ |
arch/$(ARCH)/src/mm/frame.c \ |
arch/$(ARCH)/src/drivers/it.c |
arch/$(ARCH)/src/drivers/it.c \ |
arch/$(ARCH)/src/drivers/keyboard.c |
/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(); |
} |