nckernel  0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
isr.h File Reference
This graph shows which files directly or indirectly include this file:

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_regsdo_irq (struct pt_regs *reg)
 

Macro Definition Documentation

#define asmlinkage   __attribute__((regparm(0)))

Definition at line 45 of file isr.h.

Enumeration Type Documentation

enum irq_nr
Enumerator
IRQ_NR_DIVIDE 
IRQ_NR_DEBUG 
IRQ_NR_NMI 
IRQ_NR_BREAKPOINT 
IRQ_NR_OVERFLOW 
IRQ_NR_BOUND 
IRQ_NR_OPCODE 
IRQ_NR_DEVICE 
IRQ_NR_DOUBLE_FAULT 
IRQ_NR_COPROCESSOR 
IRQ_NR_INVALID_TSS 
IRQ_NR_SEGMENT_NOT_EXIST 
IRQ_NR_STACK_FAULT 
IRQ_NR_PROTECTION 
IRQ_NR_PAGE_FAULT 
IRQ_NR_MATH 
IRQ_NR_ALIGNMENT 
IRQ_NR_MACHINE_CHECK 
IRQ_NR_SIMD 
IRQ_NR_TIMER 
IRQ_NR_KEYBOARD 
IRQ_NR_IRQ2 
IRQ_NR_SERIAL_EVEN 
IRQ_NR_SERIAL_ODD 
IRQ_NR_FDC 
IRQ_NR_RTC 
IRQ_NR_BINDER 
IRQ_NR_HDC 
IRQ_NR_SW 
IRQ_MAX 

Definition at line 6 of file isr.h.

Function Documentation

asmlinkage struct pt_regs* do_irq ( struct pt_regs reg)
Note
인터럽트 정보를 지역 변수로 복사한다. 소프트웨어 인터럽트 인 경우에만, 인터럽트 정보가 유효하며 그 외 (키보드, 타이머 등) 인 경우에는 irq = -1, argc = 0, argv = NULL 이 된다.

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.

Here is the call graph for this function: