From 7578e03f12b8907706d28cb49f1b8c62f0597a9a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20Wei=C3=9Fschuh?= Date: Thu, 17 Nov 2022 02:50:40 +0100 Subject: [PATCH] sysfs: sysfs_get_byteorder: add context parameter This can be used to read the file /sys/kernel/cpu_byteorder from an alternative root-directory. --- include/sysfs.h | 2 +- lib/sysfs.c | 4 ++-- misc-utils/lsfd-sock-xinfo.c | 2 +- sys-utils/lscpu.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/sysfs.h b/include/sysfs.h index a5200141bf..56e125b71f 100644 --- a/include/sysfs.h +++ b/include/sysfs.h @@ -116,6 +116,6 @@ enum sysfs_byteorder { SYSFS_BYTEORDER_BIG, }; -extern enum sysfs_byteorder sysfs_get_byteorder(void); +extern enum sysfs_byteorder sysfs_get_byteorder(struct path_cxt *pc); #endif /* UTIL_LINUX_SYSFS_H */ diff --git a/lib/sysfs.c b/lib/sysfs.c index ad6b31fb81..56eea5c645 100644 --- a/lib/sysfs.c +++ b/lib/sysfs.c @@ -1072,13 +1072,13 @@ char *sysfs_chrdev_devno_to_devname(dev_t devno, char *buf, size_t bufsiz) } -enum sysfs_byteorder sysfs_get_byteorder(void) +enum sysfs_byteorder sysfs_get_byteorder(struct path_cxt *pc) { int rc; char buf[BUFSIZ]; enum sysfs_byteorder ret; - rc = ul_path_read_buffer(NULL, buf, sizeof(buf), _PATH_SYS_CPU_BYTEORDER); + rc = ul_path_read_buffer(pc, buf, sizeof(buf), _PATH_SYS_CPU_BYTEORDER); if (rc < 0) goto unknown; diff --git a/misc-utils/lsfd-sock-xinfo.c b/misc-utils/lsfd-sock-xinfo.c index ca6b8ee48c..aae4e84df7 100644 --- a/misc-utils/lsfd-sock-xinfo.c +++ b/misc-utils/lsfd-sock-xinfo.c @@ -637,7 +637,7 @@ static void load_xinfo_from_proc_inet_L3(ino_t netns_inode, const char *proc_fil /* Unexpected line */ goto out; - enum sysfs_byteorder byteorder = sysfs_get_byteorder(); + enum sysfs_byteorder byteorder = sysfs_get_byteorder(NULL); while (fgets(line, sizeof(line), tcp_fp)) { unsigned long local_addr; diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c index 080c9f6e9c..f706b34291 100644 --- a/sys-utils/lscpu.c +++ b/sys-utils/lscpu.c @@ -1000,7 +1000,7 @@ static void print_summary(struct lscpu_cxt *cxt) if (ct && ct->addrsz) add_summary_s(tb, sec, _("Address sizes:"), ct->addrsz); - if (sysfs_get_byteorder() == SYSFS_BYTEORDER_LITTLE) + if (sysfs_get_byteorder(NULL) == SYSFS_BYTEORDER_LITTLE) add_summary_s(tb, sec, _("Byte Order:"), "Little Endian"); else add_summary_s(tb, sec, _("Byte Order:"), "Big Endian"); -- 2.47.3