Re: [libgpiod][PATCH 0/5] core: provide information about the parent chip in line requests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 20, 2023 at 5:27 AM Kent Gibson <warthog618@xxxxxxxxx> wrote:
>
> On Wed, Jul 19, 2023 at 09:20:52PM +0200, Bartosz Golaszewski wrote:
> > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
> >
> > While working on the DBus API, it occurred to me that while we can obtain
> > the list of requested offsets from a line request, this information lacks
> > context if we cannot get any information about the parent chip on which
> > the request was made.
> >
> > We cannot reference the chip in any way as its lifetime is disconnected
> > from the request but we can at least provide the path to the character
> > device used to open it as a way of providing some context for the offsets.
> >
>
> No problem with this conceptually, the only question I have is which
> one of these should be stored:
>  - requested path e.g. 'a_symlink_to_my_favorite_chip'
>  - canonicalised path e.g. '/dev/gpiochip0'
>  - chip name e.g. 'gpiochip0'
>  - chip number e.g. 0
>
> In this patch we get the requested path, right?
>

Yes, I think we should just use whatever filesystem path was used to
create the chip as it would be the one allowing the caller to reopen
the same chip.

Bart

> Cheers,
> Kent.
>
> > This series adds a new getter for struct gpiod_line_request and wrappers
> > for it for all bindings. This will be used in the upcoming DBus GPIO
> > manager code.
> >
> > Bartosz Golaszewski (5):
> >   core: provide gpiod_line_request_get_chip_path()
> >   tests: add a test-case for gpiod_line_request_get_chip_path()
> >   bindings: cxx: provide line_request::chip_path()
> >   bindings: python: provide the chip_path property in line_request
> >   bindings: rust: provide LineRequest::chip_path()
> >
> >  bindings/cxx/gpiodcxx/line-request.hpp       |  7 +++++++
> >  bindings/cxx/line-request.cpp                | 10 +++++++++-
> >  bindings/cxx/tests/tests-line-request.cpp    |  6 ++++--
> >  bindings/python/gpiod/chip.py                |  1 +
> >  bindings/python/gpiod/line_request.py        | 12 +++++++++--
> >  bindings/python/tests/tests_line_request.py  | 13 +++++++-----
> >  bindings/rust/libgpiod/src/line_request.rs   | 12 +++++++++++
> >  bindings/rust/libgpiod/tests/line_request.rs | 13 ++++++++++++
> >  include/gpiod.h                              |  9 +++++++++
> >  lib/chip.c                                   |  2 +-
> >  lib/internal.h                               |  3 ++-
> >  lib/line-request.c                           | 20 ++++++++++++++++++-
> >  tests/tests-line-request.c                   | 21 ++++++++++++++++++++
> >  13 files changed, 116 insertions(+), 13 deletions(-)
> >
> > --
> > 2.39.2
> >




[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux