Re: [systemd-devel] libudev: subdirectories in sysfs (what does "available" mean?)
- Original Message - > From: "Greg KH" <gre...@linuxfoundation.org> > To: "Anne Mulhern" <amulh...@redhat.com> > Cc: "David Herrmann" <dh.herrm...@gmail.com>, "systemd" > <systemd-devel@lists.freedesktop.org> > Sent: Tuesday, November 24, 2015 3:15:21 PM > Subject: Re: [systemd-devel] libudev: subdirectories in sysfs (what does > "available" mean?) > > On Tue, Nov 24, 2015 at 12:37:46PM -0500, Anne Mulhern wrote: > > > > - Original Message - > > > From: "Greg KH" <gre...@linuxfoundation.org> > > > To: "Anne Mulhern" <amulh...@redhat.com> > > > Cc: "David Herrmann" <dh.herrm...@gmail.com>, "systemd" > > > <systemd-devel@lists.freedesktop.org> > > > Sent: Tuesday, November 24, 2015 11:42:21 AM > > > Subject: Re: [systemd-devel] libudev: subdirectories in sysfs (what does > > > "available" mean?) > > > > > > On Tue, Nov 24, 2015 at 10:37:08AM -0500, Anne Mulhern wrote: > > > > > > > > > > > > > > > > > > > > - Original Message - > > > > > From: "David Herrmann" <dh.herrm...@gmail.com> > > > > > To: "Anne Mulhern" <amulh...@redhat.com> > > > > > Cc: "systemd" <systemd-devel@lists.freedesktop.org> > > > > > Sent: Tuesday, November 24, 2015 10:15:05 AM > > > > > Subject: Re: [systemd-devel] libudev: subdirectories in sysfs (what > > > > > does > > > > > "available" mean?) > > > > > > > > > > Hi > > > > > > > > > > On Tue, Nov 24, 2015 at 3:54 PM, Anne Mulhern <amulh...@redhat.com> > > > > > wrote: > > > > > >> From: "David Herrmann" <dh.herrm...@gmail.com> > > > > > >> On Tue, Nov 17, 2015 at 11:57 PM, Anne Mulhern > > > > > >> <amulh...@redhat.com> > > > > > >> wrote: > > > > > >> >> From: "David Herrmann" <dh.herrm...@gmail.com> > > > > > >> >> On Mon, Nov 16, 2015 at 5:35 PM, Anne Mulhern > > > > > >> >> <amulh...@redhat.com> > > > > > >> >> wrote: > > > > > >> >> > 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", ); > > > > > >> >> > > > > > >> >> This should work fine (or its udev_device_* equivalent). > > > > > >> >> > > > > > >> >> Btw., I recommend just using readdir(), open(), read(), and > > >
Re: [systemd-devel] libudev: subdirectories in sysfs (what does "available" mean?)
On Tue, Nov 24, 2015 at 12:37:46PM -0500, Anne Mulhern wrote: > > - Original Message - > > From: "Greg KH" <gre...@linuxfoundation.org> > > To: "Anne Mulhern" <amulh...@redhat.com> > > Cc: "David Herrmann" <dh.herrm...@gmail.com>, "systemd" > > <systemd-devel@lists.freedesktop.org> > > Sent: Tuesday, November 24, 2015 11:42:21 AM > > Subject: Re: [systemd-devel] libudev: subdirectories in sysfs (what does > > "available" mean?) > > > > On Tue, Nov 24, 2015 at 10:37:08AM -0500, Anne Mulhern wrote: > > > > > > > > > > > > > > > - Original Message - > > > > From: "David Herrmann" <dh.herrm...@gmail.com> > > > > To: "Anne Mulhern" <amulh...@redhat.com> > > > > Cc: "systemd" <systemd-devel@lists.freedesktop.org> > > > > Sent: Tuesday, November 24, 2015 10:15:05 AM > > > > Subject: Re: [systemd-devel] libudev: subdirectories in sysfs (what does > > > > "available" mean?) > > > > > > > > Hi > > > > > > > > On Tue, Nov 24, 2015 at 3:54 PM, Anne Mulhern <amulh...@redhat.com> > > > > wrote: > > > > >> From: "David Herrmann" <dh.herrm...@gmail.com> > > > > >> On Tue, Nov 17, 2015 at 11:57 PM, Anne Mulhern <amulh...@redhat.com> > > > > >> wrote: > > > > >> >> From: "David Herrmann" <dh.herrm...@gmail.com> > > > > >> >> On Mon, Nov 16, 2015 at 5:35 PM, Anne Mulhern > > > > >> >> <amulh...@redhat.com> > > > > >> >> wrote: > > > > >> >> > 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", ); > > > > >> >> > > > > >> >> 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, 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. > > > > >> > > > > > >> >
Re: [systemd-devel] libudev: subdirectories in sysfs (what does "available" mean?)
- Original Message - > From: "Greg KH" <gre...@linuxfoundation.org> > To: "Anne Mulhern" <amulh...@redhat.com> > Cc: "David Herrmann" <dh.herrm...@gmail.com>, "systemd" > <systemd-devel@lists.freedesktop.org> > Sent: Tuesday, November 24, 2015 11:42:21 AM > Subject: Re: [systemd-devel] libudev: subdirectories in sysfs (what does > "available" mean?) > > On Tue, Nov 24, 2015 at 10:37:08AM -0500, Anne Mulhern wrote: > > > > > > > > > > - Original Message - > > > From: "David Herrmann" <dh.herrm...@gmail.com> > > > To: "Anne Mulhern" <amulh...@redhat.com> > > > Cc: "systemd" <systemd-devel@lists.freedesktop.org> > > > Sent: Tuesday, November 24, 2015 10:15:05 AM > > > Subject: Re: [systemd-devel] libudev: subdirectories in sysfs (what does > > > "available" mean?) > > > > > > Hi > > > > > > On Tue, Nov 24, 2015 at 3:54 PM, Anne Mulhern <amulh...@redhat.com> > > > wrote: > > > >> From: "David Herrmann" <dh.herrm...@gmail.com> > > > >> On Tue, Nov 17, 2015 at 11:57 PM, Anne Mulhern <amulh...@redhat.com> > > > >> wrote: > > > >> >> From: "David Herrmann" <dh.herrm...@gmail.com> > > > >> >> On Mon, Nov 16, 2015 at 5:35 PM, Anne Mulhern <amulh...@redhat.com> > > > >> >> wrote: > > > >> >> > 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", ); > > > >> >> > > > >> >> 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, 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? > > > >> > > > >> "available" p
Re: [systemd-devel] libudev: subdirectories in sysfs (what does "available" mean?)
On Tue, Nov 24, 2015 at 10:37:08AM -0500, Anne Mulhern wrote: > > > > > - Original Message - > > From: "David Herrmann" <dh.herrm...@gmail.com> > > To: "Anne Mulhern" <amulh...@redhat.com> > > Cc: "systemd" <systemd-devel@lists.freedesktop.org> > > Sent: Tuesday, November 24, 2015 10:15:05 AM > > Subject: Re: [systemd-devel] libudev: subdirectories in sysfs (what does > > "available" mean?) > > > > Hi > > > > On Tue, Nov 24, 2015 at 3:54 PM, Anne Mulhern <amulh...@redhat.com> wrote: > > >> From: "David Herrmann" <dh.herrm...@gmail.com> > > >> On Tue, Nov 17, 2015 at 11:57 PM, Anne Mulhern <amulh...@redhat.com> > > >> wrote: > > >> >> From: "David Herrmann" <dh.herrm...@gmail.com> > > >> >> On Mon, Nov 16, 2015 at 5:35 PM, Anne Mulhern <amulh...@redhat.com> > > >> >> wrote: > > >> >> > 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", ); > > >> >> > > >> >> 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, 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? > > >> > > >> "available" probably means attributes which are direct descendants of > > >> the device. That is, sysattr_list_entry() only lists such direct > > >> descendants, while sysattr_value() allows you to query anything (you > > >> probably can even pass "foo/../../bar/baz"). > > >> > > >> Thanks > > >> David > > >> > > > > > > I think it's yet more complicated than that. For example, > > > 'dm' (for device mapper) is not in the list of available > > > attributes, but 'dm/name' is certainly an attribute that > > > can be read by sysattr_value(). > > > > 'dm' is not an attribute, so it will never be listed as available > > attribute. Directories are never treated as attributes. > > > > Thanks > > David > > > > But "bdi" is listed as an attribute, and is a directory. Can you provide a "full" path here that you are looking at (or the output of 'tree' or 'find' on the device), so that I can try to figure this out? Odds are, dm is doing something "odd"... thanks, greg k-h ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] libudev: subdirectories in sysfs (what does "available" mean?)
Hi On Tue, Nov 17, 2015 at 11:57 PM, Anne Mulhernwrote: >> From: "David Herrmann" >> On Mon, Nov 16, 2015 at 5:35 PM, Anne Mulhern wrote: >> > 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", ); >> >> 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, 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? "available" probably means attributes which are direct descendants of the device. That is, sysattr_list_entry() only lists such direct descendants, while sysattr_value() allows you to query anything (you probably can even pass "foo/../../bar/baz"). Thanks David ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] libudev: subdirectories in sysfs (what does "available" mean?)
- Original Message - > From: "David Herrmann" <dh.herrm...@gmail.com> > To: "Anne Mulhern" <amulh...@redhat.com> > Cc: "systemd" <systemd-devel@lists.freedesktop.org> > Sent: Tuesday, November 24, 2015 4:43:24 AM > Subject: Re: [systemd-devel] libudev: subdirectories in sysfs (what does > "available" mean?) > > Hi > > On Tue, Nov 17, 2015 at 11:57 PM, Anne Mulhern <amulh...@redhat.com> wrote: > >> From: "David Herrmann" <dh.herrm...@gmail.com> > >> On Mon, Nov 16, 2015 at 5:35 PM, Anne Mulhern <amulh...@redhat.com> wrote: > >> > 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", ); > >> > >> 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, 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? > > "available" probably means attributes which are direct descendants of > the device. That is, sysattr_list_entry() only lists such direct > descendants, while sysattr_value() allows you to query anything (you > probably can even pass "foo/../../bar/baz"). > > Thanks > David > I think it's yet more complicated than that. For example, 'dm' (for device mapper) is not in the list of available attributes, but 'dm/name' is certainly an attribute that can be read by sysattr_value(). - mulhern ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] libudev: subdirectories in sysfs (what does "available" mean?)
Hi On Tue, Nov 24, 2015 at 3:54 PM, Anne Mulhernwrote: >> From: "David Herrmann" >> On Tue, Nov 17, 2015 at 11:57 PM, Anne Mulhern wrote: >> >> From: "David Herrmann" >> >> On Mon, Nov 16, 2015 at 5:35 PM, Anne Mulhern wrote: >> >> > 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", ); >> >> >> >> 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, 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? >> >> "available" probably means attributes which are direct descendants of >> the device. That is, sysattr_list_entry() only lists such direct >> descendants, while sysattr_value() allows you to query anything (you >> probably can even pass "foo/../../bar/baz"). >> >> Thanks >> David >> > > I think it's yet more complicated than that. For example, > 'dm' (for device mapper) is not in the list of available > attributes, but 'dm/name' is certainly an attribute that > can be read by sysattr_value(). 'dm' is not an attribute, so it will never be listed as available attribute. Directories are never treated as attributes. Thanks David ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] libudev: subdirectories in sysfs (what does "available" mean?)
- Original Message - > From: "David Herrmann" <dh.herrm...@gmail.com> > To: "Anne Mulhern" <amulh...@redhat.com> > Cc: "systemd" <systemd-devel@lists.freedesktop.org> > Sent: Tuesday, November 24, 2015 10:15:05 AM > Subject: Re: [systemd-devel] libudev: subdirectories in sysfs (what does > "available" mean?) > > Hi > > On Tue, Nov 24, 2015 at 3:54 PM, Anne Mulhern <amulh...@redhat.com> wrote: > >> From: "David Herrmann" <dh.herrm...@gmail.com> > >> On Tue, Nov 17, 2015 at 11:57 PM, Anne Mulhern <amulh...@redhat.com> > >> wrote: > >> >> From: "David Herrmann" <dh.herrm...@gmail.com> > >> >> On Mon, Nov 16, 2015 at 5:35 PM, Anne Mulhern <amulh...@redhat.com> > >> >> wrote: > >> >> > 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", ); > >> >> > >> >> 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, 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? > >> > >> "available" probably means attributes which are direct descendants of > >> the device. That is, sysattr_list_entry() only lists such direct > >> descendants, while sysattr_value() allows you to query anything (you > >> probably can even pass "foo/../../bar/baz"). > >> > >> Thanks > >> David > >> > > > > I think it's yet more complicated than that. For example, > > 'dm' (for device mapper) is not in the list of available > > attributes, but 'dm/name' is certainly an attribute that > > can be read by sysattr_value(). > > 'dm' is not an attribute, so it will never be listed as available > attribute. Directories are never treated as attributes. > > Thanks > David > But "bdi" is listed as an attribute, and is a directory. - mulhern ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] libudev: subdirectories in sysfs (what does "available" mean?)
Hi On Tue, Nov 24, 2015 at 4:37 PM, Anne Mulhernwrote: >> From: "David Herrmann" >> On Tue, Nov 24, 2015 at 3:54 PM, Anne Mulhern wrote: >> >> From: "David Herrmann" >> >> On Tue, Nov 17, 2015 at 11:57 PM, Anne Mulhern >> >> wrote: >> >> >> From: "David Herrmann" >> >> >> On Mon, Nov 16, 2015 at 5:35 PM, Anne Mulhern >> >> >> wrote: >> >> >> > 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", ); >> >> >> >> >> >> 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, 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? >> >> >> >> "available" probably means attributes which are direct descendants of >> >> the device. That is, sysattr_list_entry() only lists such direct >> >> descendants, while sysattr_value() allows you to query anything (you >> >> probably can even pass "foo/../../bar/baz"). >> >> >> >> Thanks >> >> David >> >> >> > >> > I think it's yet more complicated than that. For example, >> > 'dm' (for device mapper) is not in the list of available >> > attributes, but 'dm/name' is certainly an attribute that >> > can be read by sysattr_value(). >> >> 'dm' is not an attribute, so it will never be listed as available >> attribute. Directories are never treated as attributes. >> >> Thanks >> David >> > > But "bdi" is listed as an attribute, and is a directory. Weird. Tom, any comments? ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] libudev: subdirectories in sysfs
Hi On Mon, Nov 16, 2015 at 5:35 PM, Anne Mulhernwrote: > 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", ); 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 ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] libudev: subdirectories in sysfs (what does "available" mean?)
- Original Message - > From: "David Herrmann" <dh.herrm...@gmail.com> > To: "Anne Mulhern" <amulh...@redhat.com> > Cc: "systemd" <systemd-devel@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 <amulh...@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", ); > > 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 ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
[systemd-devel] libudev: subdirectories in sysfs
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? Thanks! - mulhern ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel