spapr_hcall: use spapr_ovec_* interfaces for CAS options
authorMichael Roth <mdroth@linux.vnet.ibm.com>
Tue, 25 Oct 2016 04:47:28 +0000 (23:47 -0500)
committerDavid Gibson <david@gibson.dropbear.id.au>
Thu, 27 Oct 2016 22:38:26 +0000 (09:38 +1100)
commitfacdb8b63baf56bc7c0ce2f16a32900866889f03
treed9b73c30ac537ac24c70d5c9c8e85ae78ed98319
parentb20b7b7adda4e2228892670a94e0a4af41c065b9
spapr_hcall: use spapr_ovec_* interfaces for CAS options

Currently we access individual bytes of an option vector via
ldub_phys() to test for the presence of a particular capability
within that byte. Currently this is only done for the "dynamic
reconfiguration memory" capability bit. If that bit is present,
we pass a boolean value to spapr_h_cas_compose_response()
to generate a modified device tree segment with the additional
properties required to enable this functionality.

As more capability bits are added, will would need to modify the
code to add additional option vector accesses and extend the
param list for spapr_h_cas_compose_response() to include similar
boolean values for these parameters.

Avoid this by switching to spapr_ovec_* helpers so we can do all
the parsing in one shot and then test for these additional bits
within spapr_h_cas_compose_response() directly.

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>
Reviewed-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/spapr.c
hw/ppc/spapr_hcall.c
include/hw/ppc/spapr.h
include/hw/ppc/spapr_ovec.h