Inlining a method which use a static variable is really a
bad idea, as it totally defeats the point of both concepts.
Currently we have 12 + 4 = 16 static 'ccw' variables...:
$ git grep -wl target/s390x/kvm/pv.h | fgrep .h
hw/s390x/ipl.h
$ git grep -wl target/s390x/kvm/pv.h | fgrep .c | wc -l
12
$ git grep -wl hw/s390x/ipl.h | fgrep .c | wc -l
4
Fixes: c3347ed0d2e ("s390x: protvirt: Support unpack facility")
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <
20260107130807.69870-16-philmd@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
#include "target/s390x/kvm/kvm_s390x.h"
#include "target/s390x/kvm/pv.h"
+bool s390_is_pv(void)
+{
+ static S390CcwMachineState *ccw;
+ Object *obj;
+
+ if (ccw) {
+ return ccw->pv;
+ }
+
+ /* we have to bail out for the "none" machine */
+ obj = object_dynamic_cast(qdev_get_machine(), TYPE_S390_CCW_MACHINE);
+ if (!obj) {
+ return false;
+ }
+ ccw = S390_CCW_MACHINE(obj);
+ return ccw->pv;
+}
+
static bool info_valid;
static struct kvm_s390_pv_info_vm info_vm;
static struct kvm_s390_pv_info_dump info_dump;
#ifndef HW_S390_PV_H
#define HW_S390_PV_H
-#include "qapi/error.h"
-#include "system/kvm.h"
#include "hw/s390x/s390-virtio-ccw.h"
struct S390PVResponse {
};
#ifdef CONFIG_KVM
-#include "cpu.h"
-
-static inline bool s390_is_pv(void)
-{
- static S390CcwMachineState *ccw;
- Object *obj;
-
- if (ccw) {
- return ccw->pv;
- }
-
- /* we have to bail out for the "none" machine */
- obj = object_dynamic_cast(qdev_get_machine(),
- TYPE_S390_CCW_MACHINE);
- if (!obj) {
- return false;
- }
- ccw = S390_CCW_MACHINE(obj);
- return ccw->pv;
-}
-
+bool s390_is_pv(void);
int s390_pv_query_info(void);
int s390_pv_vm_enable(void);
void s390_pv_vm_disable(void);