keypad 인터럽트를 소스보고 따라가고 있는데요~ input_handler 처리부분~

cho6005의 이미지

keypad 버튼을 누르며.. 소스를 따라가보고 있습니다.

드라이버 소스의 핸들러 처리 부분에서 key 이벤트를 발생시켜 주는데요

input_event -> input_handle_event -> input_pass_event 까지 가서.. (왜케 많이 거치죠?ㅋㅋ)

input_pass_event 함수에서

handle->handler->event(handle, type, code, value); 이란놈을 부르는데요..

struct input_handle{ 
         ..
         const char *name;
         struct input_dev *dev;
         struct input_handler *handler;
         ..
}
 
struct input_handler{
     ..
     void (*event)(struct input_handle *handle, unsigned       
                                          int type, unsigned int code, int value);
     .. 
}

이런식으로 구조체는 정의되어 있구요.. 궁금한 것이..
input_handler 구조체의 event란 함수를 호출하는 거 같은데..
저 함수는 대체 정체가 뭐죠?ㅡ,.ㅡ

정의에는

event
event handler

라고 나와있는데.. 저 함수는 어디서도 찾아볼 수 없고

호출 전에 정의 해서 쓰는거 같은데.. 언제 정의하는 건지도 모르겠네요 ㅎ

고수님들 저 함수에 대해서 알려주세요~

bushi의 이미지

drivers/char/keyboard.c

static struct input_handler kbd_handler = {
        .event          = kbd_event,
        .connect        = kbd_connect,
        .disconnect     = kbd_disconnect,
        .start          = kbd_start,
        .name           = "kbd",
        .id_table       = kbd_ids,
};

OTL
익명 사용자의 이미지

진짜 ㄱㄳㄳ