= Kernel API = -- [김도집] [[DateTime(2005-09-22T05:20:31)]] [[TableOfContents]] == 드라이버 등록 및 해제 == === 관련 자료형 === driver_register/device_unregister 함수에서 사용하는 자료형은 에 선언되어 있다. {{{ struct device_driver { const char *name; struct bus_type *bus; struct completion unloaded; struct kobject kobj; struct klist klist_devices; struct klist_node knode_bus; struct module *owner; int (*probe) (struct device *dev); int (*remove) (struct device *dev); int (*shutdown) (struct device *dev); int (*suspend) (struct device *dev, pm_message_t state, u32 level); int (*resume) (struct device *dev, u32 level); }; }}} ||필드||설명|| ||name||디바이스 드라이버의 이름을 문자열 형으로 지정한다 (필수)|| ||bus||보통은 &platform_bus_type으로 지정한다 (필수)|| ||unloaded|||| ||kobj||내부적으로 드라이버 객체를 관리하기 위한 것으로 직접적으로 사용하지 않는다 (임의 지정하지 않는다)|| ||klist_devices|||| ||knode_bus|||| ||owner|||| ||probe()||디바이스의 초기화 루틴이다 (필수)|| ||remove()||디바이스가 제거될 때 호출되는 루틴이다 (필수)|| ||shutdown()|||| ||suspend()||절전모드로 들어갈 때 호출된다 (필수)|| ||resume()||절점모들 빠져나올 때 호출된다 (필수)|| /!\위 테이블에서 foo()와 같이 ()가 붙은 필드는 함수(포인터)를 의미한다. === driver_register === 버스를 갖는 드라이버를 등록할 때 사용하는 함수이다. 함수의 원형은 다음과 같다: {{{ int driver_register(struct device_driver *drv); }}}=== driver_unregister === driver_register()를 통해 등록된 드라이버를 해제할 때 사용한다. 함수의 원형은 다음과 같다: {{{ void driver_unregister(struct device_driver *drv) }}} 관련함수: driver_register