Loading qga/commands-posix.c +12 −0 Original line number Diff line number Diff line Loading @@ -1167,6 +1167,18 @@ void qmp_guest_fstrim(bool has_minimum, int64_t minimum, Error **err) } #endif GuestLogicalProcessorList *qmp_guest_get_vcpus(Error **errp) { error_set(errp, QERR_UNSUPPORTED); return NULL; } int64_t qmp_guest_set_vcpus(GuestLogicalProcessorList *vcpus, Error **errp) { error_set(errp, QERR_UNSUPPORTED); return -1; } /* register init/cleanup routines for stateful command groups */ void ga_command_state_init(GAState *s, GACommandState *cs) { Loading qga/commands-win32.c +12 −0 Original line number Diff line number Diff line Loading @@ -289,6 +289,18 @@ void qmp_guest_set_time(int64_t time_ns, Error **errp) error_set(errp, QERR_UNSUPPORTED); } GuestLogicalProcessorList *qmp_guest_get_vcpus(Error **errp) { error_set(errp, QERR_UNSUPPORTED); return NULL; } int64_t qmp_guest_set_vcpus(GuestLogicalProcessorList *vcpus, Error **errp) { error_set(errp, QERR_UNSUPPORTED); return -1; } /* register init/cleanup routines for stateful command groups */ void ga_command_state_init(GAState *s, GACommandState *cs) { Loading qga/qapi-schema.json +72 −0 Original line number Diff line number Diff line Loading @@ -554,3 +554,75 @@ ## { 'command': 'guest-network-get-interfaces', 'returns': ['GuestNetworkInterface'] } ## # @GuestLogicalProcessor: # # @logical-id: Arbitrary guest-specific unique identifier of the VCPU. # # @online: Whether the VCPU is enabled. # # @can-offline: Whether offlining the VCPU is possible. This member is always # filled in by the guest agent when the structure is returned, # and always ignored on input (hence it can be omitted then). # # Since: 1.5 ## { 'type': 'GuestLogicalProcessor', 'data': {'logical-id': 'int', 'online': 'bool', '*can-offline': 'bool'} } ## # @guest-get-vcpus: # # Retrieve the list of the guest's logical processors. # # This is a read-only operation. # # Returns: The list of all VCPUs the guest knows about. Each VCPU is put on the # list exactly once, but their order is unspecified. # # Since: 1.5 ## { 'command': 'guest-get-vcpus', 'returns': ['GuestLogicalProcessor'] } ## # @guest-set-vcpus: # # Attempt to reconfigure (currently: enable/disable) logical processors inside # the guest. # # The input list is processed node by node in order. In each node @logical-id # is used to look up the guest VCPU, for which @online specifies the requested # state. The set of distinct @logical-id's is only required to be a subset of # the guest-supported identifiers. There's no restriction on list length or on # repeating the same @logical-id (with possibly different @online field). # Preferably the input list should describe a modified subset of # @guest-get-vcpus' return value. # # Returns: The length of the initial sublist that has been successfully # processed. The guest agent maximizes this value. Possible cases: # # 0: if the @vcpus list was empty on input. Guest state # has not been changed. Otherwise, # # Error: processing the first node of @vcpus failed for the # reason returned. Guest state has not been changed. # Otherwise, # # < length(@vcpus): more than zero initial nodes have been processed, # but not the entire @vcpus list. Guest state has # changed accordingly. To retrieve the error # (assuming it persists), repeat the call with the # successfully processed initial sublist removed. # Otherwise, # # length(@vcpus): call successful. # # Since: 1.5 ## { 'command': 'guest-set-vcpus', 'data': {'vcpus': ['GuestLogicalProcessor'] }, 'returns': 'int' } Loading
qga/commands-posix.c +12 −0 Original line number Diff line number Diff line Loading @@ -1167,6 +1167,18 @@ void qmp_guest_fstrim(bool has_minimum, int64_t minimum, Error **err) } #endif GuestLogicalProcessorList *qmp_guest_get_vcpus(Error **errp) { error_set(errp, QERR_UNSUPPORTED); return NULL; } int64_t qmp_guest_set_vcpus(GuestLogicalProcessorList *vcpus, Error **errp) { error_set(errp, QERR_UNSUPPORTED); return -1; } /* register init/cleanup routines for stateful command groups */ void ga_command_state_init(GAState *s, GACommandState *cs) { Loading
qga/commands-win32.c +12 −0 Original line number Diff line number Diff line Loading @@ -289,6 +289,18 @@ void qmp_guest_set_time(int64_t time_ns, Error **errp) error_set(errp, QERR_UNSUPPORTED); } GuestLogicalProcessorList *qmp_guest_get_vcpus(Error **errp) { error_set(errp, QERR_UNSUPPORTED); return NULL; } int64_t qmp_guest_set_vcpus(GuestLogicalProcessorList *vcpus, Error **errp) { error_set(errp, QERR_UNSUPPORTED); return -1; } /* register init/cleanup routines for stateful command groups */ void ga_command_state_init(GAState *s, GACommandState *cs) { Loading
qga/qapi-schema.json +72 −0 Original line number Diff line number Diff line Loading @@ -554,3 +554,75 @@ ## { 'command': 'guest-network-get-interfaces', 'returns': ['GuestNetworkInterface'] } ## # @GuestLogicalProcessor: # # @logical-id: Arbitrary guest-specific unique identifier of the VCPU. # # @online: Whether the VCPU is enabled. # # @can-offline: Whether offlining the VCPU is possible. This member is always # filled in by the guest agent when the structure is returned, # and always ignored on input (hence it can be omitted then). # # Since: 1.5 ## { 'type': 'GuestLogicalProcessor', 'data': {'logical-id': 'int', 'online': 'bool', '*can-offline': 'bool'} } ## # @guest-get-vcpus: # # Retrieve the list of the guest's logical processors. # # This is a read-only operation. # # Returns: The list of all VCPUs the guest knows about. Each VCPU is put on the # list exactly once, but their order is unspecified. # # Since: 1.5 ## { 'command': 'guest-get-vcpus', 'returns': ['GuestLogicalProcessor'] } ## # @guest-set-vcpus: # # Attempt to reconfigure (currently: enable/disable) logical processors inside # the guest. # # The input list is processed node by node in order. In each node @logical-id # is used to look up the guest VCPU, for which @online specifies the requested # state. The set of distinct @logical-id's is only required to be a subset of # the guest-supported identifiers. There's no restriction on list length or on # repeating the same @logical-id (with possibly different @online field). # Preferably the input list should describe a modified subset of # @guest-get-vcpus' return value. # # Returns: The length of the initial sublist that has been successfully # processed. The guest agent maximizes this value. Possible cases: # # 0: if the @vcpus list was empty on input. Guest state # has not been changed. Otherwise, # # Error: processing the first node of @vcpus failed for the # reason returned. Guest state has not been changed. # Otherwise, # # < length(@vcpus): more than zero initial nodes have been processed, # but not the entire @vcpus list. Guest state has # changed accordingly. To retrieve the error # (assuming it persists), repeat the call with the # successfully processed initial sublist removed. # Otherwise, # # length(@vcpus): call successful. # # Since: 1.5 ## { 'command': 'guest-set-vcpus', 'data': {'vcpus': ['GuestLogicalProcessor'] }, 'returns': 'int' }