DECLARE_MODULE(9)

명칭
DECLARE_MODULE - 커널 모듈 선언 매크로

서식
<sys/param.h> <sys/kernel.h> <sys/module.h> DECLARE_MODULE(name, moduledata_t data, sub, order)

해설
DECLARE_MODULE() 매크로는 일반적인 커널 모듈을 선언합니다. 이것은 SYSINIT() 매크로를 사용해, 그 모듈을 시스템에 등록합니다. DECLARE_MODULE() (은)는 통상, DRIVER_MODULE(9), DEV_MODULE(9) 및 SYSCALL_MODULE(9) (와)과 같은 다른 매크로 중(안)에서 사용됩니다. 그렇지만, 예를 들면 동적인 sysctl 를 실장하기 위해서, 직접 불려 가는 것이 물론 가능합니다.

DECLARE_MODULE() 에의 인수는 이하대로입니다.

name (은)는 모듈의 이름으로, 그 모듈을 식별하기 위해서 SYSINIT() 의 호출로 사용됩니다.

data (은)는 2 개(살)의 주요한 요소를 포함한다 moduledata_t 구조체입니다. 그 요소는, module_t 구조체 중(안)에서 사용되는 모듈명의 정식명칭 및 형태 modeventhand_t 의 이벤트 핸들러 함수에의 포인터입니다.

sub 하 SYSINIT() 매크로에의 직접적인 인수입니다. 이 때문에의 유효한 값은 sysinit_sub_id 열거에 (kernel.h (을)를 참조) 포함되어 있어, 시스템 스타트 업 인터페이스의 형태를 명시합니다. 예를 들면 DRIVER_MODULE(9) 매크로는, 드라이버 모듈은 디바이스를 위한 드라이버를 포함하고 있으므로, 여기에 SI_SUB_DRIVERS 의 값을 사용합니다. 실행시에 로드 되는 커널 모듈에는, SI_SUB_EXEC 의 값이 공통입니다.

order 의 값은 SYSINIT() (을)를 위한 이제(벌써) 1 개의 인수입니다. 이것은 KLD 의 하부조직내의 초기화의 순서를 의미합니다. 유효한 값은 sysinit_elem_order 열거 (kernel.h (을)를 참조)에 정의되고 있습니다.

관련 항목
DEV_MODULE(9), DRIVER_MODULE(9), module(9), SYSCALL_MODULE(9)

/usr/include/sys/kernel.h, /usr/share/examples/kld

저자
-nosplit 이 메뉴얼 페이지는 Andrew Reiter <arr@watson.org> 하지만 쓴 KLD Facility Programming Tutorial 에 촉발 되어, Alexander Langer <alex@FreeBSD.org> 하지만 썼습니다.