/*
 * except.c
 *
 * Copyright 2002, Minoru Murashima. All rights reserved.
 * Distributed under the terms of the BSD License.
 *
 * 例外ハンドラ
 */


#include"lib.h"
#include"proc.h"
#include"interrupt.h"


/*
 * 仮の例外ハンドラ
 * スタックに積まれた値を表示してアイドルにジャンプする
 */
void tmp_except(int num,int error,int eip,int cs)
{
	printk("\nException%d! error_coad=0x%x eip=0x%x cs=0x%x process=%x\n",
		num,error,eip,cs,cputask[get_current_cpu()].current_task);

	idle();
}


/*
 * Init exception
 */
void init_except()
{
	set_idt(0,except0,IDT_INTR);
	set_idt(1,except1,IDT_INTR);
	set_idt(2,except2,IDT_INTR);
	set_idt(3,except3,IDT_INTR);
	set_idt(4,except4,IDT_INTR);
	set_idt(5,except5,IDT_INTR);
	set_idt(6,except6,IDT_INTR);
	set_idt(7,except7,IDT_INTR);
	set_idt(8,except8,IDT_INTR);
	set_idt(9,except9,IDT_INTR);
	set_idt(10,except10,IDT_INTR);
	set_idt(11,except11,IDT_INTR);
	set_idt(12,except12,IDT_INTR);
	set_idt(13,except13,IDT_INTR);
	set_idt(14,except14,IDT_INTR);
	set_idt(15,except15,IDT_INTR);
	set_idt(16,except16,IDT_INTR);
	set_idt(17,except17,IDT_INTR);
	set_idt(18,except18,IDT_INTR);
}
