The HAL Spec

David Zeuthen david at fubar.dk
Mon May 8 09:06:28 PDT 2006


On Sun, 2006-05-07 at 14:23 -0400, Joe Marcus Clarke wrote:
> On Sun, 2006-05-07 at 19:12 +0100, Richard Hughes wrote:
> > On Fri, 2006-05-05 at 16:22 -0400, Joe Marcus Clarke wrote:
> > > -----BEGIN PGP SIGNED MESSAGE-----
> > > Hash: SHA1
> > > 
> > > I'm about to start implementing Firewire support for HAL for FreeBSD,
> > > and I noticed a big disparity in the HAL spec and what Linux does.  When
> > > I raised this kind of thing a few months ago, I was told to code to the
> > > spec, but I have since noticed many things that Linux does differently
> > > from the spec.

Yea, two things in retrospect 

 1. I really dunno if it's helpful having a separate spec document
    because we all (myself in particular) suck at updating it. Maybe
    it would be useful to have a self-documenting scheme a'la gconf
    where the description of the property is just meta-data for the
    property but that is a bit far out

 2. Most of the properties like ieee1394, pcmcia_bus really isn't that
    interesting for users of HAL. What they care about is functional
    namespaces like storage.*, volume.* and things like block.*. The
    only place it's interesting for is to set e.g. storage.bus so the
    desktop bits know it's an ATA device. Even there we suck a bit
    because we mix bus-types with command-set types.
 
> > Like what? We should either fix the spec if it's wrong, or fix the linux
> > stuff to match the spec if the spec if correct.

Yea, we really ought to update the spec.

> A few things.  First, firewire.  The spec defines three ieee1394
> objects: ieee1394_host, ieee1394_node, and ieee1394.  There was a
> specific commit to the Linux backend and to hal-device-manager, to merge
> all of these under ieee1394.  For example, the spec says an
> ieee1394_node has a guid property, but the Linux backend assigns this
> property to the same ieee1394 object.

Yea, for now, I'd just do what the Linux back-end does and patches for
the spec is welcome too. Again, ieee1394* properties are not really
interesting at this point, it's only used to be able to say
storage.bus='ieee1394' and the desktop selects the right icon / policy.

> Next, there's pcmcia_socket.  The spec defines one property under this
> object: pcmcia_socket.number.  However, the Linux backend uses the bus
> type of pcmcia, and adds multiple properties.  No where in the spec do I
> see a bus type of "pcmcia".  And the Linux backend does not use the
> pcmcia_socket class anywhere.
> 
> Finally, and this is a clear typo in the spec, the oss class has a
> property alsa.device_file. I believe this should be oss.device_file.

Well, same story. Patches against the spec is welcome.

Cheers,
David




More information about the hal mailing list