how to check if hal is ready
Artem.Kachitchkin at Sun.COM
Fri Mar 3 12:43:27 PST 2006
> I don't know how it works when there are multiple volumes on a usb
> stick. I have an mp3 player which has an mmc/sd card reader, and
> although I don't have one of those cards, once I borrowed one from
> a friend and as far as I can remember, those two volumes appeared
> as if they don't have anything in common (from a 1 km perspective, at
'volume' devices are also 'block' devices. Volumes belonging to the sate
storage device will have the same "block.storage_device" property.
> I got curious now and I'm probably gonna try it again, one
> of these days. If two volumes are actually partitions, then
> I suppose they should belong to the same device (ie LibHalDrive).
It's better to think in terms of properties, not in terms of libhal.
> If he needs two volumes to be ready, ie mounted
I think "ready" here means "added to GDL" (global device list). When you
insert a storage device, HAL probes the storage device as a whole.
During probing, the device is added to TDL (temporary device list), if
probing was successful, the device moves to GDL - that's when the
'DeviceAdded' signal is sent. After that, HAL searches for volumes on
this storage device - the entire device or inside partitions - following
the same TDL->probing->GDL routine.
The problem is, there is no way for HAL clients to know when it is
finished the volume search process on a given storage device. I'm not
even sure it's solvable in general, because, in theory at least, HAL is
free to scan or not scan for volumes whenever it feels like, or
depending on runtime conditions known only to HAL.
One thing we can be sure about is that when the 'storage' device is
added to GDL, it's already been probed. The 'hal-probe-storage' addon
looks at the partition table to set "storage.no_partitions_hint". One
possibility here would be to add a property that would indicate the
number of partitions found, but it's hard to predict how many of those
partitions will later translate into HAL volumes.
It's an interesting problem to think about.
More information about the hal