[PATCH RESEND libgpiod v2 10/18] dbus: add the API definitions

Bartosz Golaszewski brgl at bgdev.pl
Mon Jul 1 08:40:39 UTC 2024


On Sun, Jun 30, 2024 at 6:49 PM Thiago Macieira <thiago at kde.org> wrote:
>
> On Friday 28 June 2024 11:58:29 GMT-7 Bartosz Golaszewski wrote:
> > +    <!--
> > +      Used:
> > +
> > +      True if line is busy.
> > +
> > +      Line can be used by gpio-manager, another user-space process, a
> > kernel +      driver or is hogged. The exact reason a line is busy cannot
> > be determined +      from user-space unless it's known to be managed by
> > gpio-manager (see: +      the Managed property of this interface).
> > +    -->
> > +    <property name='Used' type='b' access='read'/>
>
> What's the point of this property? It looks racy, as the user (whichever it
> is) can stop using it soon after a true read, or the line can become used
> right after a false read? The latter could lead to TOCTOU problems.
>

It can be used to inspect the state of the line without requesting it
for exclusive usage. Please take a look at how `gpiocli info` uses it
(dbus/client/info.c). There's no reason we'd want to force any real
action on the HW just to check if a line is busy.

> Wouldn't it be better to force users to RequestLine and get an error if the
> line is busy? Because if it wasn't busy, now the calling application knows
> nothing else can grab it.
>

No because the user may want to just inspect the state. It's not racy:
if the user wants to request the line, they will do it right away and
see an error if the line is busy.

> Speaking of, RequestLine should document the errors it may return.
>

That could be said about all of the methods but the error messages
returned on failures are quite descriptive and by looking at the many
DBus .xml on my system I can tell it's not that common to have a list
of all possible errors in the docs.

Bart

> --
> Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
>   Principal Engineer - Intel DCAI Platform & System Engineering
>
>
>


More information about the dbus mailing list