[systemd-devel] libudev: subdirectories in sysfs (what does "available" mean?)

Anne Mulhern amulhern at redhat.com
Tue Nov 17 14:57:31 PST 2015





----- Original Message -----
> From: "David Herrmann" <dh.herrmann at gmail.com>
> To: "Anne Mulhern" <amulhern at redhat.com>
> Cc: "systemd" <systemd-devel at lists.freedesktop.org>
> Sent: Tuesday, November 17, 2015 10:48:19 AM
> Subject: Re: [systemd-devel] libudev: subdirectories in sysfs
> 
> Hi
> 
> On Mon, Nov 16, 2015 at 5:35 PM, Anne Mulhern <amulhern at redhat.com> wrote:
> > Hi!
> >
> > libudev has some cooperating procedures that return the keys for a bunch of
> > sysfs attributes for a given device.
> >
> > These attributes all correspond to files that are stored in the sysfs
> > device directory.
> >
> > In the same directory there are sometimes subdirectories, that themselves
> > contain files
> > with information about their corresponding attribute. The dm directory is
> > one obvious
> > example.
> >
> > Are their any plans for libudev to add an ability to get the values from
> > these subdirectories
> > as some kind of attributes?
> >
> > If no, why?
> 
> sd_device_get_sysattr_value(device, "foo/bar/baz", &value);
> 
> This should work fine (or its udev_device_* equivalent).
> 
> Btw., I recommend just using readdir(), open(), read(), and write().
> sysfs is a filesystem, no reason to wrap all those commands.
> 
> Thanks
> David
> 

Thanks, I'm asking this more as the pyudev maintainer than as someone
who actually wants these values.

The funny thing is, I recently found out that the list obtained by
udev_device_get_sysattr_list_entry () and friends contains so
called "available" keys, but when those get passed to 
udev_device_get_sysattr_value () the result might be NULL.
That makes sense in the sense that they might represent files
that are unreadable. 

Now I find out that I can make up keys not in the results of
udev_device_get_sysattr_list_entry () and pass those to
udev_device_get_sysattr_value() and get a non-null result.

So, what does "available" mean? Do these sysattr_list_entry()
methods give any useful information?

- mulhern



More information about the systemd-devel mailing list