nubus: generate bus error when attempting to access empty slots
commit1d3d62dff8f069c379123690a30817d7aa575cae
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Fri, 24 Sep 2021 07:37:56 +0000 (24 08:37 +0100)
committerLaurent Vivier <laurent@vivier.eu>
Wed, 29 Sep 2021 08:45:19 +0000 (29 10:45 +0200)
tree67219f6dd9977b0e6bba10a78c7fcb77a145e514
parentce0e6a2c55b13c16de4a7985c0ca41835420430a
nubus: generate bus error when attempting to access empty slots

According to "Designing Cards and Drivers for the Macintosh Family" any attempt
to access an unimplemented address location on Nubus generates a bus error. MacOS
uses a custom bus error handler to detect empty Nubus slots, and with the current
implementation assumes that all slots are occupied as the Nubus transactions
never fail.

Switch nubus_slot_ops and nubus_super_slot_ops over to use {read,write}_with_attrs
and hard-code them to return MEMTX_DECODE_ERROR so that unoccupied Nubus slots
will generate the expected bus error.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20210924073808.1041-9-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
hw/nubus/nubus-bus.c