From: Thomas Weißschuh Date: Thu, 17 Nov 2022 01:50:40 +0000 (+0100) Subject: sysfs: sysfs_get_byteorder: add context parameter X-Git-Tag: v2.39-rc1~367^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7578e03f12b8907706d28cb49f1b8c62f0597a9a;p=thirdparty%2Futil-linux.git sysfs: sysfs_get_byteorder: add context parameter This can be used to read the file /sys/kernel/cpu_byteorder from an alternative root-directory. --- 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");