|
nckernel
0.1
|

Go to the source code of this file.
Data Structures | |
| union | error_code |
| Error code. More... | |
| struct | intr_info |
| struct | pt_regs |
| struct | pt_regs_kernel |
| 쓰레드가 종료될 때 Clean up을 해야 하는데, 그 때 불리는 함수가 하게 될 스택 프레임을 구성한다. ebp 에는 EBP 의 값이 저장되고, EBP 는 ebp 가 있는 주소를 가리키게 된다. 이 주소를 기준으로 인자에 접근한다. More... | |
| struct | pt_regs_user |
| 유저 레벨(Ring3) 에서 발생한 인터럽트인 경우 스택 구성의 일부 More... | |
Macros | |
| #define | asmlinkage __attribute__((regparm(0))) |
Enumerations | |
| enum | irq_nr { IRQ_NR_DIVIDE = 0x00, IRQ_NR_DEBUG = 0x01, IRQ_NR_NMI = 0x02, IRQ_NR_BREAKPOINT = 0x03, IRQ_NR_OVERFLOW = 0x04, IRQ_NR_BOUND = 0x05, IRQ_NR_OPCODE = 0x06, IRQ_NR_DEVICE = 0x07, IRQ_NR_DOUBLE_FAULT = 0x08, IRQ_NR_COPROCESSOR = 0x09, IRQ_NR_INVALID_TSS = 0x0A, IRQ_NR_SEGMENT_NOT_EXIST = 0x0B, IRQ_NR_STACK_FAULT = 0x0C, IRQ_NR_PROTECTION = 0x0D, IRQ_NR_PAGE_FAULT = 0x0E, IRQ_NR_MATH = 0x10, IRQ_NR_ALIGNMENT = 0x11, IRQ_NR_MACHINE_CHECK = 0x12, IRQ_NR_SIMD = 0x13, IRQ_NR_TIMER = 0x20, IRQ_NR_KEYBOARD = 0x21, IRQ_NR_IRQ2 = 0x22, IRQ_NR_SERIAL_EVEN = 0x23, IRQ_NR_SERIAL_ODD = 0x24, IRQ_NR_FDC = 0x26, IRQ_NR_RTC = 0x28, IRQ_NR_BINDER = 0x29, IRQ_NR_HDC = 0x2E, IRQ_NR_SW = 0x31, IRQ_MAX = 0x100 } |
Functions | |
| asmlinkage struct pt_regs * | do_irq (struct pt_regs *reg) |
| #define asmlinkage __attribute__((regparm(0))) |
| enum irq_nr |
| asmlinkage struct pt_regs* do_irq | ( | struct pt_regs * | reg) |
Definition at line 264 of file isr.c.
References irq_handler::data, dbg_printf(), thread::esp, halt(), irq_handler::handler, irq_handler::head, list::idx, intr_info::irq, pt_regs::irq, list::list, list_entry, list_for_each, NULL, pthread_self(), and intr_info::ret.

1.8.4