DRIVER_MODULE(9)

명칭
DRIVER_MODULE - 커널 드라이버 선언 매크로

서식
<sys/param.h> <sys/kernel.h> <sys/bus.h> <sys/module.h> DRIVER_MODULE(name, busname, driver_t driver, devclass_t devclass, modeventhand_t evh, void *arg) MULTI_DRIVER_MODULE(name, busname, driver_t drivers[], devclass_t devclass, modeventhand_t evh, void *arg)

해설
DRIVER_MODULE() 매크로는, 커널 드라이버를 선언합니다. DRIVER_MODULE() (은)는 실제의 드라이버 선언에 전개해, 거기서 name (은)는 드라이버와 그 함수의 접두사로서 사용됩니다. 이것은 프레인테키스트로서 주어져 char 또는 char * (은)는 아닌 것에 주의해 주세요.

busname (은)는 드라이버의 부모의 버스 (PCI, ISA, PPBUS, 그 외)로, ‘pci’, ‘isa’, ‘ppbus’ 등입니다.

DRIVER_MODULE() 중(안)에서 사용되는 식별자는, 드라이버의 이름과 다른 것으로 할 수가 있습니다. 또, 다른 버스상에는 같은 드라이버 식별자를 존재할 수 있습니다. 이것은, 같은 드라이버를 사용하는 동일 또는 다른 버스상의 여러 가지의 카드용으로, 프론트엔드를 잘 예쁘게 작성하는 방법입니다. 예를 들면, 다음과 같이 할 수 있습니다.

DRIVER_MODULE(foo, isa, foo_driver, foo_devclass, NULL, NULL);

DRIVER_MODULE(foo, pci, foo_driver, foo_devclass, NULL, NULL);

driver 하 driver_t 형태의 드라이버로, 드라이버에 대한 정보를 포함해, 그러므로 DRIVER_MODULE() (을)를 호출하기 위한 가장 중요한 2 개의 부분 중 1 개입니다.

인수 devclass (은)는 디바이스에 대한 커널 내부의 정보를 포함해, 커널 드라이버 모듈의 내부에서 사용됩니다.

인수 evh (은)는 드라이버 (또는 모듈)가 로드 또는 언로드되었을 때에 불려 가는 이벤트 핸들러입니다 ( module(9) (을)를 참조해 주세요).

현시점에서는 arg (은)는 사용되지 않고, NULL 포인터여야 합니다.

MULTI_DRIVER_MODULE() 하 DRIVER_MODULE() 의 특수 버젼이며, 단일의 드라이버 인스턴스대신에 드라이버 리스트를 취합니다.

관련 항목
device(9), driver(9), module(9)

저자
이 메뉴얼 페이지는 Alexander Langer <alex@FreeBSD.org> 하지만 썼습니다.