Skip to contentSkip to conversation

gpioset: improve help

PATCH In review Kent Gibson 2 participants 4 messages Dec 29, 2023 – Jan 2, 2024 GPIO

lore
Share & tools
lore
#0 lore raw

v2 cover gpioset: improve help

A couple of improvements to gpioset help.

The first is another swing at improving the description of the behaviour when gpioset exits.

The second patch better describes the zero-terminated sequence behaviour in the toggle option help.

Cheers,
Kent.

Changes v1 -> v2:
- fixed the subject prefix.
- added patch 2.

Kent Gibson (2):
gpioset: reword note on post-exit behaviour
gpioset: improve toggle option help

 tools/gpioset.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

--
2.39.2

#1 lore raw

PATCH v2 1/2 gpioset: reword note on post-exit behaviour

The note regarding the state of a line after gpioset exits is confusing and unhelpful to the average reader, if not outright incorrect.
A common mis-interpretation is that this behaviour is arbitrarily chosen by spiteful implementors. The note also specifies that the line reverts to default, but that is not always the case, or is at least out of the control of gpioset or libgpiod.

Reword the note to constrain the scope to that relevant to the likely reader, and to emphasize that the behaviour is inherent in the kernel GPIO interface, not in the gpioset implementation.

---
 tools/gpioset.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)
tools/gpioset.c +4 -5
index 9dc5aeb..f2f9a15 100644
@@ -76,11 +76,10 @@ static void print_help(void)
 	print_period_help();
 	printf("\n");
 	printf("*Note*\n");
-	printf("    The state of a GPIO line controlled over the character device reverts to default\n");
-	printf("    when the last process referencing the file descriptor representing the device file exits.\n");
-	printf("    This means that it's wrong to run gpioset, have it exit and expect the line to continue\n");
-	printf("    being driven high or low. It may happen if given pin is floating but it must be interpreted\n");
-	printf("    as undefined behavior.\n");
+	printf("    It should not be assumed that a line will retain its state after gpioset exits.\n");
+	printf("    When a process exits, any GPIO lines it has requested are automatically released.\n");
+	printf("    Once released, the state of a line may be modified by the kernel or another process.\n");
+	printf("    To guarantee the requested value, by default gpioset does not exit.\n");
 }
 
 static int parse_drive_or_die(const char *option)
Signature · 1 line
2.39.2
#2 lore raw

PATCH v2 2/2 gpioset: improve toggle option help

In reply to Kent Gibson

Reword toggle option help to add that a 0 terminated sequence will exit.

---
 tools/gpioset.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
tools/gpioset.c +1 -1
index f2f9a15..863da4a 100644
@@ -68,7 +68,7 @@ static void print_help(void)
 	printf("  -s, --strict\t\tabort if requested line names are not unique\n");
 	printf("  -t, --toggle <period>[,period]...\n");
 	printf("\t\t\ttoggle the line(s) after the specified period(s)\n");
-	printf("\t\t\tIf the last period is non-zero then the sequence repeats.\n");
+	printf("\t\t\tIf the last period is 0 then gpioset exits else the sequence repeats.\n");
 	printf("      --unquoted\tdon't quote line names\n");
 	printf("  -v, --version\t\toutput version information and exit\n");
 	printf("  -z, --daemonize\tset values then detach from the controlling terminal\n");
Signature · 1 line
2.39.2
#3 lore raw
In reply to Kent Gibson
Quoted 20 lines · Kent Gibson

A couple of improvements to gpioset help.

The first is another swing at improving the description of the behaviour when gpioset exits.

The second patch better describes the zero-terminated sequence behaviour in the toggle option help.

Cheers,
Kent.

Changes v1 -> v2:
- fixed the subject prefix.
- added patch 2.

Kent Gibson (2):
gpioset: reword note on post-exit behaviour
gpioset: improve toggle option help

Quoted 6 lines
 tools/gpioset.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

--
2.39.2

Ah, this is the v2 for the gpioset patch. I applied these two instead.

Bart