mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
spapr_drc: use RTAS return codes for methods called by RTAS
Certain methods in sPAPRDRConnector objects are only ever called by RTAS and in many cases are responsible for the logic that determines the RTAS return codes. Rather than having a level of indirection requiring RTAS code to re-interpret return values from such methods to determine the appropriate return code, just pass them through directly. This requires changing method return types to uint32_t to match the type of values currently passed to RTAS helpers. In the case of read accesses like drc->entity_sense() where we weren't previously reporting any errors, just the read value, we modify the function to return RTAS return code, and pass the read value back via reference. Suggested-by: Bharata B Rao <bharata@linux.vnet.ibm.com> Suggested-by: David Gibson <david@gibson.dropbear.id.au> Cc: Bharata B Rao <bharata@linux.vnet.ibm.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
4a1c9cf007
commit
0cb688d22b
3 changed files with 48 additions and 43 deletions
|
@ -165,17 +165,17 @@ typedef struct sPAPRDRConnectorClass {
|
|||
/*< public >*/
|
||||
|
||||
/* accessors for guest-visible (generally via RTAS) DR state */
|
||||
int (*set_isolation_state)(sPAPRDRConnector *drc,
|
||||
sPAPRDRIsolationState state);
|
||||
int (*set_indicator_state)(sPAPRDRConnector *drc,
|
||||
sPAPRDRIndicatorState state);
|
||||
int (*set_allocation_state)(sPAPRDRConnector *drc,
|
||||
sPAPRDRAllocationState state);
|
||||
uint32_t (*set_isolation_state)(sPAPRDRConnector *drc,
|
||||
sPAPRDRIsolationState state);
|
||||
uint32_t (*set_indicator_state)(sPAPRDRConnector *drc,
|
||||
sPAPRDRIndicatorState state);
|
||||
uint32_t (*set_allocation_state)(sPAPRDRConnector *drc,
|
||||
sPAPRDRAllocationState state);
|
||||
uint32_t (*get_index)(sPAPRDRConnector *drc);
|
||||
uint32_t (*get_type)(sPAPRDRConnector *drc);
|
||||
const char *(*get_name)(sPAPRDRConnector *drc);
|
||||
|
||||
sPAPRDREntitySense (*entity_sense)(sPAPRDRConnector *drc);
|
||||
uint32_t (*entity_sense)(sPAPRDRConnector *drc, sPAPRDREntitySense *state);
|
||||
|
||||
/* QEMU interfaces for managing FDT/configure-connector */
|
||||
const void *(*get_fdt)(sPAPRDRConnector *drc, int *fdt_start_offset);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue