Subject: Re: root device
To: Jason R Thorpe <thorpej@wasabisystems.com>
From: Emmanuel Dreyfus <manu@netbsd.org>
List: tech-kern
Date: 02/10/2003 19:50:14
> > It's the same devices. Darwin has some additionnal per device info (IO
> > class for instance), but we can have a BSD name to Darwin class name
> > translator for the devices we need.
>
> What are the Darwin I/O classes like? We do have a "dv_class" member
> in struct device...
Find below the ioreg output on Darwin:
We have no dv_class yet. I thought about a distinct table, mapping dv_xname to a
class name. Anything that it not in the table would be class IOunknown.
Of course, dv_class makes the whole thing more simple, but is there any interest
for this apart for IOKit emulation? (And is there an interest for IOKit
emulation beyond getting MacOS X apps displaying something?)
+-o Root <class IORegistryEntry>
+-o AAPL,PowerMac G3 <class IOPlatformExpertDevice>
+-o GossamerPE <class GossamerPE>
| +-o IOPMrootDomain <class IOPMrootDomain>
| | +-o IORootParent <class IORootParent>
| | +-o RootDomainUserClient <class RootDomainUserClient>
| | +-o RootDomainUserClient <class RootDomainUserClient>
| | +-o RootDomainUserClient <class RootDomainUserClient>
| | +-o RootDomainUserClient <class RootDomainUserClient>
| | +-o RootDomainUserClient <class RootDomainUserClient>
| | +-o RootDomainUserClient <class RootDomainUserClient>
| | +-o RootDomainUserClient <class RootDomainUserClient>
| | +-o RootDomainUserClient <class RootDomainUserClient>
| | +-o RootDomainUserClient <class RootDomainUserClient>
| | +-o RootDomainUserClient <class RootDomainUserClient>
| +-o options@0 <class IODTNVRAM>
| +-o PowerPC,750@0 <class IOPlatformDevice>
| | +-o GossamerCPU <class GossamerCPU>
| | +-o IOCPUInterruptController <class IOCPUInterruptController>
| +-o cpus@0 <class IOPlatformDevice>
| +-o pci@80000000 <class IOPlatformDevice>
| | +-o AppleGracklePCI <class AppleGracklePCI>
| | +-o mac-io@10 <class IOPCIDevice>
| | | +-o Heathrow <class Heathrow>
| | | +-o mesh@10000 <class AppleMacIODevice>
| | | | +-o meshSCSIController <class meshSCSIController>
| | | | +-o IOSCSIParallelDevice@2 <class IOSCSIParallelDevice>
| | | | +-o IOSCSIUserClientIniter <class IOSCSIUserClientIniter>
| | | | +-o IOSCSIParallelInterfaceProtocolTransport <class IOSCSI$
| | | | +-o IOSCSIPeripheralDeviceNub <class IOSCSIPeripheralDev$
| | | | +-o IOSCSIPeripheralDeviceType05 <class IOSCSIPeripher$
| | | | +-o IOCompactDiscServices <class IOCompactDiscServic$
| | | | +-o IOCDBlockStorageDriver <class IOCDBlockStorage$
| | | +-o bmac@11000 <class AppleMacIODevice>
| | | | +-o BMacEnet <class BMacEnet>
| | | | +-o IOEthernetInterface <class IOEthernetInterface>
| | | | | +-o IONetworkStack <class IONetworkStack>
| | | | | +-o IONetworkStackUserClient <class IONetworkStackUserCl$
| | | | +-o IOKernelDebugger <class IOKernelDebugger>
| | | | +-o IOKDP <class IOKDP>
| | | +-o escc@13000 <class AppleMacIODevice>
| | | +-o ch-a@13020 <class AppleMacIODevice>
| | | | +-o AppleSCCSerial <class AppleSCCSerial>
| | | | +-o AppleSCCRS232SerialStreamSync <class AppleSCCRS232Serial$
| | | | +-o IOSerialBSDClient <class IOSerialBSDClient>
| | | +-o ch-b@13000 <class AppleMacIODevice>
| | | | +-o AppleSCCSerial <class AppleSCCSerial>
| | | | +-o AppleSCCRS232SerialStreamSync <class AppleSCCRS232Serial$
| | | | +-o IOSerialBSDClient <class IOSerialBSDClient>
| | | +-o davbus@14000 <class AppleMacIODevice>
| | | | +-o AppleOWScreamerAudio <class AppleOWScreamerAudio>
| | | | +-o IOAudioPort <class IOAudioPort>
| | | | +-o IOAudioPort <class IOAudioPort>
| | | | +-o IOAudioPort <class IOAudioPort>
| | | | +-o AppleDBDMAAudioDMAEngine <class AppleDBDMAAudioDMAEngine$
| | | | +-o IOAudioSelectorControl <class IOAudioSelectorControl>
| | | | | +-o IOAudioControlUserClient <class IOAudioControlUserCl$
| | | | +-o IOAudioLevelControl <class IOAudioLevelControl>
| | | | | +-o IOAudioControlUserClient <class IOAudioControlUserCl$
| | | | +-o IOAudioLevelControl <class IOAudioLevelControl>
| | | | | +-o IOAudioControlUserClient <class IOAudioControlUserCl$
| | | | +-o IOAudioToggleControl <class IOAudioToggleControl>
| | | | | +-o IOAudioControlUserClient <class IOAudioControlUserCl$
| | | | +-o IOAudioToggleControl <class IOAudioToggleControl>
| | | | | +-o IOAudioControlUserClient <class IOAudioControlUserCl$
| | | | +-o IOAudioLevelControl <class IOAudioLevelControl>
| | | | | +-o IOAudioControlUserClient <class IOAudioControlUserCl$
| | | | +-o IOAudioLevelControl <class IOAudioLevelControl>
| | | | | +-o IOAudioControlUserClient <class IOAudioControlUserCl$
| | | | +-o IOAudioToggleControl <class IOAudioToggleControl>
| | | | | +-o IOAudioControlUserClient <class IOAudioControlUserCl$
| | | | +-o IOAudioStream <class IOAudioStream>
| | | | +-o IOAudioStream <class IOAudioStream>
| | | | +-o IOAudioToggleControl <class IOAudioToggleControl>
| | | | | +-o IOAudioControlUserClient <class IOAudioControlUserCl$
| | | | +-o IOAudioEngineUserClient <class IOAudioEngineUserClient$
| | | +-o sound@0,0 <class AppleMacIODevice>
| | | +-o swim3@15000 <class AppleMacIODevice>
| | | +-o nvram@60000 <class AppleMacIODevice>
| | | | +-o AppleNVRAM <class AppleNVRAM>
| | | +-o ide@20000 <class AppleMacIODevice>
| | | | +-o HeathrowATA <class HeathrowATA>
| | | | +-o ATADeviceNub@0 <class ATADeviceNub>
| | | | +-o IOATABlockStorageDriver <class IOATABlockStorageDriver$
| | | | +-o IOATABlockStorageDevice <class IOATABlockStorageDevi$
| | | | +-o IOBlockStorageDriver <class IOBlockStorageDriver>
| | | | +-o IC35L040AVVA07-0 Media <class IOMedia>
| | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o IOApplePartitionScheme <class IOApplePartition$
| | | | +-o Apple@1 <class IOMedia>
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o Macintosh@2 <class IOMedia>
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o Macintosh@3 <class IOMedia>
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o Macintosh@4 <class IOMedia>
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o Macintosh@5 <class IOMedia>
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o Macintosh@6 <class IOMedia>
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o Macintosh@7 <class IOMedia>
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o Patch Partition@8 <class IOMedia>
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o Mac OS X@9 <class IOMedia>
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o Mac OS 9@10 <class IOMedia>
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o Swap@11 <class IOMedia>
| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | | +-o Users@12 <class IOMedia>
| | | | +-o IOMediaBSDClient <class IOMediaBSDClient>
| | | +-o ide@21000 <class AppleMacIODevice>
| | | | +-o HeathrowATA <class HeathrowATA>
| | | | +-o ATADeviceNub@1 <class ATADeviceNub>
| | | | +-o IOATAPIProtocolTransport <class IOATAPIProtocolTranspo$
| | | | +-o IOSCSIPeripheralDeviceNub <class IOSCSIPeripheralDev$
| | | | +-o IOSCSIPeripheralDeviceType05 <class IOSCSIPeripher$
| | | | +-o IODVDServices <class IODVDServices>
| | | | +-o IODVDBlockStorageDriver <class IODVDBlockStora$
| | | +-o via-cuda@16000 <class AppleMacIODevice>
| | | | +-o AppleVIA <class AppleVIA>
| | | | +-o cuda <class AppleVIADevice>
| | | | +-o AppleCuda <class AppleCuda>
| | | | +-o IOCudaADBController <class IOCudaADBController>
| | | | +-o 2-02@2 <class IOADBDevice>
| | | | | +-o AppleADBKeyboard <class AppleADBKeyboard>
| | | | | +-o IOHIDSystem <class IOHIDSystem>
| | | | | | +-o IOHIDParamUserClient <class IOHIDParamUserCl$
| | | | | | +-o IOHIDUserClient <class IOHIDUserClient>
| | | | | +-o IOBSDConsole <class IOBSDConsole>
| | | | | +-o IOHIDKeyboardDevice <class IOHIDKeyboardDevice$
| | | | | +-o IOHIDLibUserClientIniter <class IOHIDLibUser$
| | | | +-o 3-01@3 <class IOADBDevice>
| | | | +-o AppleADBMouseType2 <class AppleADBMouseType2>
| | | | +-o IOHIDPointingDevice <class IOHIDPointingDevice$
| | | | | +-o IOHIDLibUserClientIniter <class IOHIDLibUser$
| | | | +-o IOHIDSystem <class IOHIDSystem>
| | | | +-o IOHIDParamUserClient <class IOHIDParamUserCl$
| | | | +-o IOHIDUserClient <class IOHIDUserClient>
| | | +-o adb@0,0 <class AppleMacIODevice>
| | | +-o keyboard@0,0 <class AppleMacIODevice>
| | | +-o power-mgt@0,0 <class AppleMacIODevice>
| | +-o ATY,mach64_3DUPro@12 <class IOPCIDevice>
| | | +-o .Display_ATImach64_3DR3-01018008 <class IOATINDRV>
| | | +-o ATIRagePro <class ATIRagePro>
| | +-o ATY,Rage128y@D <class IOPCIDevice>
| | | +-o .Display_Rage128-0102802f <class IOATI128NDRV>
| | | | +-o display0 <class IODisplayConnect>
| | | | | +-o AppleDisplay <class AppleDisplay>
| | | | +-o IOFramebufferUserClient <class IOFramebufferUserClient>
| | | +-o ATIRage128 <class ATIRage128>
| | | +-o ATIR1282DContext <class ATIR1282DContext>
| | | +-o ATIR128Surface <class ATIR128Surface>
| | +-o pci1045,c861@E <class IOPCIDevice>
| | +-o AppleUSBOHCI <class AppleUSBOHCI>
| | +-o OHCI Root Hub Simulation@E <class IOUSBRootHubDevice>
| | +-o AppleUSBHub <class AppleUSBHub>
| | +-o IOUSBInterface@0 <class IOUSBInterface>
| | +-o IOUSBUserClientInit <class IOUSBUserClientInit>
| +-o perch@0 <class IOPlatformDevice>
+-o IOResources <class IOResources>
+-o com_apple_BootCache <class com_apple_BootCache>
+-o IOHIDSystem <class IOHIDSystem>
| +-o IOHIDParamUserClient <class IOHIDParamUserClient>
| +-o IOHIDUserClient <class IOHIDUserClient>
+-o IODisplayWrangler <class IODisplayWrangler>
+-o IOBSDConsole <class IOBSDConsole>
+-o IONetworkStack <class IONetworkStack>
+-o IONetworkStackUserClient <class IONetworkStackUserClient>
--
Emmanuel Dreyfus
How the BSA is pushing to make computer programs patentable in Europe:
http://swpat.ffii.org/vreji/papri/eubsa-swpat0202
manu@netbsd.org