diff --git a/smartmontools/os_freebsd.cpp b/smartmontools/os_freebsd.cpp index 182946a8afe10f907d0dbc8acc3805f5886be94f..0ed444e62ac9a873b6ecc4676a76721cf5b9830d 100644 --- a/smartmontools/os_freebsd.cpp +++ b/smartmontools/os_freebsd.cpp @@ -48,8 +48,15 @@ #include "dev_ata_cmd_set.h" #define USBDEV "/dev/usb" +#if defined(__FreeBSD_version) -#if (__FreeBSD_version >= 800000) || (__FreeBSD_kernel_version >= 800000) +// This way we define one variable for the GNU/kFreeBSD and FreeBSD +#define FREEBSDVER __FreeBSD_version +#else +#define FREEBSDVER __FreeBSD_kernel_version +#endif + +#if (FREEBSDVER >= 800000) #include <libusb20_desc.h> #include <libusb20.h> #else @@ -753,7 +760,7 @@ int freebsd_ata_device::ata_command_interface(smart_command_set command, int sel #endif return -1; -#if (__FreeBSD_version < 502000) && (__FreeBSD_kernel_version < 502000) +#if (FREEBSDVER < 502000) printwarning(NO_RETURN,NULL); #endif @@ -1365,7 +1372,7 @@ int do_normal_scsi_cmnd_io(int fd, struct scsi_cmnd_io * iop, int report) if (cam_send_ccb(cam_dev,ccb) < 0) { warn("error sending SCSI ccb"); -#if (__FreeBSD_version > 500000) || (__FreeBSD_kernel_version > 500000) +#if (FREEBSDVER > 500000) cam_error_print(cam_dev,ccb,CAM_ESF_ALL,CAM_EPF_ALL,stderr); #endif cam_freeccb(ccb); @@ -1373,7 +1380,7 @@ int do_normal_scsi_cmnd_io(int fd, struct scsi_cmnd_io * iop, int report) } if (((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) && ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_SCSI_STATUS_ERROR)) { -#if (__FreeBSD_version > 500000) || (__FreeBSD_kernel_version > 500000) +#if (FREEBSDVER > 500000) cam_error_print(cam_dev,ccb,CAM_ESF_ALL,CAM_EPF_ALL,stderr); #endif cam_freeccb(ccb); @@ -2011,7 +2018,7 @@ bool freebsd_smart_interface::scan_smart_devices(smart_device_list & devlist, } -#if (__FreeBSD_version < 800000) || (__FreeBSD_kernel_version < 800000) // without this build fail on FreeBSD 8 +#if (FREEBSDVER < 800000) // without this build fail on FreeBSD 8 static char done[USB_MAX_DEVICES]; static int usbdevinfo(int f, int a, int rec, int busno, unsigned short & vendor_id, @@ -2067,7 +2074,7 @@ static int usbdevinfo(int f, int a, int rec, int busno, unsigned short & vendor_ static int usbdevlist(int busno,unsigned short & vendor_id, unsigned short & product_id, unsigned short & version) { -#if (__FreeBSD_version >= 800000) || (__FreeBSD_kernel_version >= 800000) // libusb2 interface +#if (FREEBSDVER >= 800000) // libusb2 interface struct libusb20_device *pdev = NULL; struct libusb20_backend *pbe; uint32_t matches = 0;