tonykang22 / study

0 stars 0 forks source link

[리눅스 개발환경] 26. 인터럽트 #97

Open tonykang22 opened 2 years ago

tonykang22 commented 2 years ago

인터럽트

인터럽트 개요

image



시스템 콜 처리

image



인터럽트 전반부/후반부 처리


주요 인터럽트 제어 함수

#include <asm/system.h> 
#include <asm/irq.h>

local_irq_disable();               /* 현 프로세서의 인터럽트 전달을 비활성화한다. */
local_irq_enable();                /* 현 프로세서의 인터럽트 전달을 활성화한다. */

unsigned long flags; 
local_irq_save(flags);           /* 현 프로세서의 인터럽트 전달 상태를 저장하고 비활성화 한다. */
local_irq_restore(flags);      /* 현 프로세서의 인터럽트 전달 상태를 복원한다. */

void disable_irq(unsigned int irq);               /* 지정한 인터럽트를 비활성화, 반환하기 전에 모든 핸들러가 종료되었는지 확인. */
void disable_irq_nosync(unsigned int irq); /* 지정한 인터럽트를 비활성화한다. */
void enable_irq(unsigned int irq);                /* 지정한 인터럽트를 활성화한다. */
void synchronize_irq(unsigned int irq);       /* 실행중인 인터럽트 핸들러가 있으면 핸들러가 종료된 다음 반환한다. */