DEVICE_ADD_CHILD(9)

명칭
device_add_child, device_add_child_ordered - 존재하고 있는 디바이스의 아이로서 새로운 디바이스를 추가

서식
<sys/param.h> <sys/bus.h> device_t device_add_child(device_t dev, const char *name, int unit) device_t device_add_child_ordered(device_t dev, int order, const char *name, int unit)

해설
dev 의 새로운 아이 디바이스를 추가합니다. name 및 unit 인수는 디바이스의 이름과 유니트 번호를 지정합니다. 이름이 불명의 경우에는, 호출측은 NULL (을)를 건네주어야 합니다. 유니트 번호가 불명의 경우에는, 호출측은 -1 (을)를 건네주어야 하는 것으로, 시스템은 다음의 사용 가능한 유니트 번호를 선택하겠지요.

디바이스의 이름은, 어느 드라이버가 그 디바이스에 적절한가를 결정하기 위해서(때문에) 사용됩니다. 이름이 지정되어 있는 경우에는, 그 이름의 드라이버만이 프로브 됩니다. 이름이 주어지지 않았던 경우에는, 인식하고 있는 버스의 모든 드라이버가 프로브 됩니다.

이것은, 디바이스 인스턴스를 독자적으로 식별할 수가 있는 버스 (PCI 등 )가, 개개의 드라이버가 개개의 디바이스 인스턴스에 적합하고 있을까 체크 가능하게 합니다. 공급된 프로브 힌트에 의존해, 단 1 개의 드라이버가 디바이스를 프로브 가능한 버스에서는, 드라이버의 이름은 디바이스의 이름으로서 지정되어야 합니다.

통상, 유니트 번호는 시스템에 의해 때 동적으로 선택되기 때문에, 유니트 번호는 -1 하지만 주어져야 합니다. 지정의 유니트 번호가 희망되었을 때에 (예를 들면, 하드웨어의 일부분을 미리 설정된 유니트 번호에 묶기 (위해)때문에), unit 는 건네받아야 합니다. 지정된 유니트 번호를 이미 할당할 수 있고 있었을 경우에는, 새로운 유니트 번호가 할당할 수 있어 진단 메세지가 표시됩니다.

지정의 순서로 프로브 되지 않으면 안 되는 버스 (예를 들면, ISA 버스용의 몇개의 디바이스는 관련이 없는 드라이버의 프로브의 시도의 실패에 민감해, 그러므로 최초로 프로브 되지 않으면 안 된다)에 아탓치 된 디바이스의 경우에는, device_add_child_ordered(9) 의 order 인수가 반순서를 지정하기 위해서 사용되어야 합니다. 새로운 디바이스는, 기존의 것보다 큰 순서를 가지는 모든 디바이스의 전에 추가됩니다. device_add_child(9) 하지만 사용되었을 경우에는, 순서가 0 이다고 하여 새로운 아이가 추가됩니다.

반환값
성공시에는 새로운 디바이스가, 그렇지 않으면 NULL 가 돌려주어집니다.

관련 항목
device(9)

저자
이 메뉴얼 페이지는 Doug Rabson 하지만 썼습니다.