On 14/1/22 15:09, Hanna Reitz wrote:
On 06.01.22 00:56, Philippe Mathieu-Daudé wrote:
When building on macOS 12 we get:
../block/file-posix.c:3335:18: warning: 'IOMasterPort' is
deprecated: first deprecated in macOS 12.0 [-Wdeprecated-declarations]
kernResult = IOMasterPort( MACH_PORT_NULL, &masterPort );
^~~~~~~~~~~~
IOMainPort
Use IOMainPort (define it to IOMasterPort on macOS < 12),
and replace 'master' by 'main' in a variable name.
Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
---
block/file-posix.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
I hope the [RFC] tag isn’t directed at me.
Still, I can give my comment, of course.
diff --git a/block/file-posix.c b/block/file-posix.c
index b283093e5b..0dcfce1856 100644
--- a/block/file-posix.c
+++ b/block/file-posix.c
@@ -3324,17 +3324,22 @@ BlockDriver bdrv_file = {
#if defined(__APPLE__) && defined(__MACH__)
static kern_return_t GetBSDPath(io_iterator_t mediaIterator, char
*bsdPath,
CFIndex maxPathSize, int flags);
+
+#if !defined(MAC_OS_VERSION_12_0)
So AFAIU from my quick rather fruit-less googling, this macro is defined
(to some version-defining integer) on every macOS version starting from
12.0? (Just confirming because the name could also mean it’d be defined
only on 12.0.)
Thanks, I posted up to v3 and macOS users helped me, I will post a v4 soon.
v3:
https://lore.kernel.org/qemu-devel/20220110131001.614319-1-f4...@amsat.org/
+#define IOMainPort IOMasterPort
+#endif
+
static char *FindEjectableOpticalMedia(io_iterator_t *mediaIterator)
{
kern_return_t kernResult = KERN_FAILURE;
- mach_port_t masterPort;
+ mach_port_t mainPort;
CFMutableDictionaryRef classesToMatch;
const char *matching_array[] = {kIODVDMediaClass, kIOCDMediaClass};
char *mediaType = NULL;
- kernResult = IOMasterPort( MACH_PORT_NULL, &masterPort );
+ kernResult = IOMainPort(MACH_PORT_NULL, &mainPort);
if ( KERN_SUCCESS != kernResult ) {
- printf( "IOMasterPort returned %d\n", kernResult );
+ printf("IOMainPort returned %d\n", kernResult);
}
int index;
@@ -3347,7 +3352,7 @@ static char
*FindEjectableOpticalMedia(io_iterator_t *mediaIterator)
}
CFDictionarySetValue(classesToMatch,
CFSTR(kIOMediaEjectableKey),
kCFBooleanTrue);
- kernResult = IOServiceGetMatchingServices(masterPort,
classesToMatch,
+ kernResult = IOServiceGetMatchingServices(mainPort,
classesToMatch,
mediaIterator);
if (kernResult != KERN_SUCCESS) {
error_report("Note: IOServiceGetMatchingServices
returned %d",
“Looks good to me” ← here’s the comment you requested O:)
Thanks :)