|
@@ -166,6 +166,13 @@ typedef struct {
|
|
* The function pointer to hook different machine specific functions for
|
|
* The function pointer to hook different machine specific functions for
|
|
* parsing "smp-opts" from QemuOpts to MachineState::CpuTopology and more
|
|
* parsing "smp-opts" from QemuOpts to MachineState::CpuTopology and more
|
|
* machine specific topology fields, such as smp_dies for PCMachine.
|
|
* machine specific topology fields, such as smp_dies for PCMachine.
|
|
|
|
+ * @hotplug_allowed:
|
|
|
|
+ * If the hook is provided, then it'll be called for each device
|
|
|
|
+ * hotplug to check whether the device hotplug is allowed. Return
|
|
|
|
+ * true to grant allowance or false to reject the hotplug. When
|
|
|
|
+ * false is returned, an error must be set to show the reason of
|
|
|
|
+ * the rejection. If the hook is not provided, all hotplug will be
|
|
|
|
+ * allowed.
|
|
*/
|
|
*/
|
|
struct MachineClass {
|
|
struct MachineClass {
|
|
/*< private >*/
|
|
/*< private >*/
|
|
@@ -224,6 +231,8 @@ struct MachineClass {
|
|
|
|
|
|
HotplugHandler *(*get_hotplug_handler)(MachineState *machine,
|
|
HotplugHandler *(*get_hotplug_handler)(MachineState *machine,
|
|
DeviceState *dev);
|
|
DeviceState *dev);
|
|
|
|
+ bool (*hotplug_allowed)(MachineState *state, DeviceState *dev,
|
|
|
|
+ Error **errp);
|
|
CpuInstanceProperties (*cpu_index_to_instance_props)(MachineState *machine,
|
|
CpuInstanceProperties (*cpu_index_to_instance_props)(MachineState *machine,
|
|
unsigned cpu_index);
|
|
unsigned cpu_index);
|
|
const CPUArchIdList *(*possible_cpu_arch_ids)(MachineState *machine);
|
|
const CPUArchIdList *(*possible_cpu_arch_ids)(MachineState *machine);
|