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 > >