DEVICE_PROBE(9)

명칭
DEVICE_PROBE - 디바이스의 존재의 프로브

서식
<sys/param.h> <sys/bus.h> int DEVICE_PROBE(device_t dev)

해설
이 디바이스 메소드는 디바이스가 있는지 어떤지를 알기 위해서(때문에) 프로브 해야 합니다. 디바이스가 존재하면 0 을, 디바이스가 발견되지 않으면 ENXIO (을)를 돌려주어야 합니다. 프로브의 사이에 그 외의 에러(메모리 할당의 실패등)가 일어났을 경우는, 적절한 에러 코드가 돌려주어져야 합니다. 1 개의 디바이스에 1 개 이상의 드라이버가 들어맞는 것 같은 경우를 위해서(때문에), 우선 순위를 돌려줄 수가 있습니다. 이 경우, 성공의 값은 0 이하의 값으로, 가장 큰 값이 가장 적절한 것을 의미합니다. 실패의 값은 정의 값으로 표현되어 통상의 UNIX 에러 코드가 목적에 따라 사용되어야 합니다.

드라이버가 0 보다 작은 성공치를 돌려주는 경우, 드라이버는 그 디바이스에 아탓치 되는 것이 같은 드라이버이라고 상정 해서는 안됩니다. 특히, softc 구조체에 격납된 모든 값이 아탓치메솟드로 이용 가능하다라고 상정 해서는 안됩니다 해, 또, 아탓치메솟드가 불렸을 경우, 프로브의 사이에 할당할 수 있던 모든 리소스는 해방해 재할인 맞히고 하지 않으면 안됩니다. 성공치 0 을 돌려주는 경우에는, 드라이버는 그 드라이버가 아탓치 되면(자) 상정할 수가 있습니다.

버스를 실장하는 디바이스는, 버스에 접속된 디바이스의 존재를 프로브 해 그것들을 아이 디바이스로서 추가하기 위해서, 이 메소드를 사용해야 합니다. 이 메소드가 bus_generic_attach(9) 의 사용과 결합하고 있으면, 아이 디바이스는 자동적으로 프로브 되어 아탓치 되겠지요.

반환값
0 이하의 값은 성공을 나타내, 0 보다 큰 값은 에러(errno)를 나타냅니다. 0 이하의 값때, 0 은 최고의 우선 순위를 나타내, 그 이상의 프로브는 행하지 않습니다. 0 미만의 값은, 낮은 값 정도, 낮은 우선 순위를 나타냅니다. 예를 들어,-100 는 -50 보다 낮은 우선 순위를 나타냅니다.

관련 항목
device(9), DEVICE_ATTACH(9), DEVICE_DETACH(9), DEVICE_IDENTIFY(9), DEVICE_PROBE(9), DEVICE_SHUTDOWN(9)

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