From ded44a0406c82c560b654ac69ef4259add152eb4 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Tue, 11 Jul 2023 16:13:15 +0200 Subject: [PATCH] node_device: Enclose Linux specific code in ifdef __linux__ Our CI started to enable udev backend on FreeBSD. And while there is udev on FreeBSD some parts of our code are highly Linux specific, e.g. translating SCSI device type to string (from an integer obtained from the sysfs). Obviously, this doesn't work anywhere else. This is the reason why we need to include scsi/scsi.h header file (which actually comes from the Linux kernel source tree but for some reason glibc started to distribute it, followed by musl). Signed-off-by: Michal Privoznik Reviewed-by: Kristina Hanicova --- src/node_device/node_device_udev.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index 4c37ec3189..960f3fd942 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -22,7 +22,9 @@ #include #include #include -#include +#ifdef __linux__ +# include +#endif #include "node_device_conf.h" #include "node_device_event.h" @@ -678,6 +680,8 @@ udevGetSCSIType(virNodeDeviceDef *def G_GNUC_UNUSED, *typestring = NULL; +#ifdef __linux__ + /* These values are Linux specific. */ switch (type) { case TYPE_DISK: *typestring = g_strdup("disk"); @@ -714,6 +718,10 @@ udevGetSCSIType(virNodeDeviceDef *def G_GNUC_UNUSED, foundtype = 0; break; } +#else + /* Implement me. */ + foundtype = 0; +#endif if (*typestring == NULL) { if (foundtype == 1) {