On Freitag, 11. Februar 2022 17:34:30 CET Philippe Mathieu-Daudé via 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
> 
> Replace by IOMainPort, redefining it to IOMasterPort if not available.
> 
> Suggested-by: Akihiko Odaki <akihiko.od...@gmail.com>
> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
> ---

Reviewed-by: Christian Schoenebeck <qemu_...@crudebyte.com>

>  block/file-posix.c | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/block/file-posix.c b/block/file-posix.c
> index 1f1756e192..13393ad296 100644
> --- a/block/file-posix.c
> +++ b/block/file-posix.c
> @@ -3319,17 +3319,23 @@ 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) \
> +    || (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_VERSION_12_0)
> +#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;
> @@ -3342,7 +3348,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",



Reply via email to