linux에 등록 된 특정 장치에 대한 포인터를 얻어야합니다. 간단히 말해,이 장치는 mii_bus
개체를 나타냅니다. 문제는이 장치가 버스에 속하지 않는 것 같습니다 (dev->bus
은 NULL
). 예를 들어 함수 bus_for_each_dev
을 사용할 수 없습니다. 장치는 Open Firmware 레이어에 등록되어 있으며 관련 of_device
(내가 관심이있는 장치의 부모)은 /sys/bus/of_platform
에 있습니다. 내 장치도 class
에 등록되어 있으므로 /sys/class/mdio_bus
에서 찾을 수 있습니다. 이제 질문 :리눅스에서 struct 디바이스에 대한 포인터를 얻는 더 깨끗한 방법은 어느 것입니까?
그것은 우리가 원하는 장치의 부모 인
of_device
에 대한 포인터를 사용하여 포인터를 얻을 수있어?어떻게 이름을 사용하여 이미 인스턴스화 된 클래스에 대한 포인터를 얻을 수 있습니까? 가능한 경우 해당 클래스의 장치를 반복 할 수 있습니다.
다른 조언은 매우 유용합니다! 다들 감사 해요.
device_find_child()는 발견 된 하위 장치의 참조 카운터를 증가시킵니다. 따라서 자식 장치 사용을 마쳤 으면 ** 반드시 put_device()를 수행해야합니다. – Federico