From: Clay Caviness Date: Fri, 15 Jul 2022 17:29:11 +0000 (-0400) Subject: [collectd 6] disk: cherry-pick "In macOS 12, `IOMasterPort` is deprecated in favor... X-Git-Tag: 6.0.0-rc0~68 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=66eacb4d08b264946de1c78cd2032a432008423b;p=thirdparty%2Fcollectd.git [collectd 6] disk: cherry-pick "In macOS 12, `IOMasterPort` is deprecated in favor of `IOMainPort`" git cherry-pick 2711ebe7d671c ("In macOS 12, `IOMasterPort` is deprecated in favor of `IOMainPort`") from the collectd 5 branch on top of the collectd 6 version of the plugin. Original commit message: In macOS 12, `IOMasterPort` is deprecated in favor of `IOMainPort` ``` src/battery.c:250:7: error: 'kIOMasterPortDefault' is deprecated: first deprecated in macOS 12.0 [-Werror,-Wdeprecated-declarations] kIOMasterPortDefault, IOServiceNameMatching("battery"), &iterator); ^~~~~~~~~~~~~~~~~~~~ kIOMainPortDefault ``` --- diff --git a/src/apple_sensors.c b/src/apple_sensors.c index ad6e6c039..52c74cfcd 100644 --- a/src/apple_sensors.c +++ b/src/apple_sensors.c @@ -51,20 +51,24 @@ #include #endif -static mach_port_t io_master_port = MACH_PORT_NULL; +#if (MAC_OS_X_VERSION_MIN_REQUIRED < 120000) // Before macOS 12 Monterey +#define IOMainPort IOMasterPort +#endif + +static mach_port_t io_main_port = MACH_PORT_NULL; static int as_init(void) { kern_return_t status; - if (io_master_port != MACH_PORT_NULL) { - mach_port_deallocate(mach_task_self(), io_master_port); - io_master_port = MACH_PORT_NULL; + if (io_main_port != MACH_PORT_NULL) { + mach_port_deallocate(mach_task_self(), io_main_port); + io_main_port = MACH_PORT_NULL; } - status = IOMasterPort(MACH_PORT_NULL, &io_master_port); + status = IOMainPort(MACH_PORT_NULL, &io_main_port); if (status != kIOReturnSuccess) { - ERROR("IOMasterPort failed: %s", mach_error_string(status)); - io_master_port = MACH_PORT_NULL; + ERROR("IOMainPort failed: %s", mach_error_string(status)); + io_main_port = MACH_PORT_NULL; return -1; } @@ -94,11 +98,11 @@ static int as_read(void) { char inst[128]; int value_int; double value_double; - if (!io_master_port || (io_master_port == MACH_PORT_NULL)) + if (!io_main_port || (io_main_port == MACH_PORT_NULL)) return -1; status = IOServiceGetMatchingServices( - io_master_port, IOServiceNameMatching("IOHWSensor"), &iterator); + io_main_port, IOServiceNameMatching("IOHWSensor"), &iterator); if (status != kIOReturnSuccess) { ERROR("IOServiceGetMatchingServices failed: %s", mach_error_string(status)); return -1; diff --git a/src/battery.c b/src/battery.c index 578f248fc..7d75a60ea 100644 --- a/src/battery.c +++ b/src/battery.c @@ -61,6 +61,10 @@ /* No global variables */ /* #endif HAVE_IOKIT_IOKITLIB_H || HAVE_IOKIT_PS_IOPOWERSOURCES_H */ +#if (MAC_OS_X_VERSION_MIN_REQUIRED < 120000) // Before macOS 12 Monterey +#define kIOMainPortDefault kIOMasterPortDefault +#endif + #elif KERNEL_LINUX #define PROC_PMU_PATH_FORMAT "/proc/pmu/battery_%i" #define PROC_ACPI_PATH "/proc/acpi/battery" @@ -247,7 +251,7 @@ static void get_via_generic_iokit(double *ret_capacity_full, /* {{{ */ double temp_double; status = IOServiceGetMatchingServices( - kIOMasterPortDefault, IOServiceNameMatching("battery"), &iterator); + kIOMainPortDefault, IOServiceNameMatching("battery"), &iterator); if (status != kIOReturnSuccess) { DEBUG("IOServiceGetMatchingServices failed."); return; diff --git a/src/disk.c b/src/disk.c index a4d74790f..95c43462c 100644 --- a/src/disk.c +++ b/src/disk.c @@ -75,8 +75,12 @@ #include #endif +#if (MAC_OS_X_VERSION_MIN_REQUIRED < 120000) // Before macOS 12 Monterey +#define IOMainPort IOMasterPort +#endif + #if HAVE_IOKIT_IOKITLIB_H -static mach_port_t io_master_port = MACH_PORT_NULL; +static mach_port_t io_main_port = MACH_PORT_NULL; /* This defaults to false for backwards compatibility. Please fix in the next * major version. */ static bool use_bsd_name; @@ -207,15 +211,15 @@ static int disk_init(void) { #if HAVE_IOKIT_IOKITLIB_H kern_return_t status; - if (io_master_port != MACH_PORT_NULL) { - mach_port_deallocate(mach_task_self(), io_master_port); - io_master_port = MACH_PORT_NULL; + if (io_main_port != MACH_PORT_NULL) { + mach_port_deallocate(mach_task_self(), io_main_port); + io_main_port = MACH_PORT_NULL; } - status = IOMasterPort(MACH_PORT_NULL, &io_master_port); + status = IOMainPort(MACH_PORT_NULL, &io_main_port); if (status != kIOReturnSuccess) { - ERROR("IOMasterPort failed: %s", mach_error_string(status)); - io_master_port = MACH_PORT_NULL; + ERROR("IOMainPort failed: %s", mach_error_string(status)); + io_main_port = MACH_PORT_NULL; return -1; } /* #endif HAVE_IOKIT_IOKITLIB_H */ @@ -462,7 +466,7 @@ static int disk_read(void) { /* Get the list of all disk objects. */ if (IOServiceGetMatchingServices( - io_master_port, IOServiceMatching(kIOBlockStorageDriverClass), + io_main_port, IOServiceMatching(kIOBlockStorageDriverClass), &disk_list) != kIOReturnSuccess) { ERROR("disk plugin: IOServiceGetMatchingServices failed."); return -1;