The GET_EVENT_STATUS_NOTIFICATION ATAPI command is listed as a mandatory command in the spec but we don't really implement it any of its sub-commands.
The commit message for the last commit explains why implementing just the media subcommand is helpful and how it goes a long way in getting guests to behave as expected. The difference from the RFC series sent earlier is: - Split into more patches - Add tray open/close notification (from Markus) There certainly is much more work to be done for the other commands and also for state change handling (tray open / close / new media) overall for the block layer, but this is a good first step in being spec-compliant and at the same time making guests work. v5: - re-add initialisation of gesn_event_header->notification_class; it is a bug to not init it; add comment. - remove max_len param from call to event_status_media() - convert enums to upper case. v4: - gesn_event_header should point to buf - compile fix for patch 3/5 - remove initialisation without effect of a variable. v3: - Add gesn_event_header struct, further removing a few constants used - Set reserved bits to 0 for the media subcommand - Remove the function handling NEA, move to generic code - Re-do patch series to reflect above change - Merge vmstate patches with patch introducing new fields - Merge fixes for other comments by Kevin v2: - Update comments - Use struct instead of enum for cdb packet - Add a new subsection to vmstate for new fields for save/restore v1: - Split into more patches - Add tray open/close notification (from Markus) RFC: - Orig. series Amit Shah (5): atapi: Allow GET_EVENT_STATUS_NOTIFICATION after media change atapi: Move GET_EVENT_STATUS_NOTIFICATION command handling to its own function atapi: GESN: Use structs for commonly-used field types atapi: GESN: Standardise event response handling for future additions atapi: GESN: implement 'media' subcommand hw/ide/core.c | 187 +++++++++++++++++++++++++++++++++++++++++++++++------ hw/ide/internal.h | 6 ++ 2 files changed, 174 insertions(+), 19 deletions(-) -- 1.7.4.2