git: ee41a882054c - main - spi: switch to switch
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 29 May 2026 17:00:25 UTC
The branch main has been updated by adrian:
URL: https://cgit.FreeBSD.org/src/commit/?id=ee41a882054c0761853971f8742607b3eae06784
commit ee41a882054c0761853971f8742607b3eae06784
Author: Sulev-Madis Silber <ketas@si.pri.ee>
AuthorDate: 2026-05-29 16:58:50 +0000
Commit: Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2026-05-29 16:58:50 +0000
spi: switch to switch
use recommended switch with default case to catch invalid values
Reviewed by: kevans, adrian
Differential Revision: https://reviews.freebsd.org/D54759
---
usr.sbin/spi/spi.c | 35 +++++++++++++++--------------------
1 file changed, 15 insertions(+), 20 deletions(-)
diff --git a/usr.sbin/spi/spi.c b/usr.sbin/spi/spi.c
index 1ced2371e3d0..bbbc3d322b00 100644
--- a/usr.sbin/spi/spi.c
+++ b/usr.sbin/spi/spi.c
@@ -30,6 +30,7 @@
#include <sys/spigenio.h>
#include <sys/sysctl.h>
+#include <assert.h>
#include <errno.h>
#include <fcntl.h>
#include <inttypes.h>
@@ -364,30 +365,24 @@ main(int argc, char *argv[], char *envp[] __unused)
/* do data transfer */
- if (stream) {
- while (!err && !feof(stdin)) {
- if (fdir == DIR_READ) {
- err = perform_read(hdev, &opt);
- }
- else if (fdir == DIR_WRITE) {
- err = perform_write(hdev, &opt);
- }
- else if (fdir == DIR_READWRITE) {
- err = perform_readwrite(hdev, &opt);
- }
- }
- }
- else {
- if (fdir == DIR_READ) {
+ assert(fdir != DIR_NONE);
+ do {
+ switch (fdir) {
+ case DIR_READ:
err = perform_read(hdev, &opt);
- }
- else if (fdir == DIR_WRITE) {
+ break;
+ case DIR_WRITE:
err = perform_write(hdev, &opt);
- }
- else if (fdir == DIR_READWRITE) {
+ break;
+ case DIR_READWRITE:
err = perform_readwrite(hdev, &opt);
+ break;
+ default:
+ fprintf(stderr, "Invalid state (%d)\n", fdir);
+ err = EINVAL;
+ break;
}
- }
+ } while (stream && !err && !feof(stdin));
the_end: