g_free(priv);
}
-virDomainXMLPrivateDataCallbacks virCHDriverPrivateDataCallbacks = {
- .alloc = virCHDomainObjPrivateAlloc,
- .free = virCHDomainObjPrivateFree,
-};
-
static int
virCHDomainDefPostParseBasic(virDomainDef *def,
void *opaque G_GNUC_UNUSED)
return 0;
}
+static virClass *virCHDomainVcpuPrivateClass;
+
+static void
+virCHDomainVcpuPrivateDispose(void *obj G_GNUC_UNUSED)
+{
+}
+
+static int
+virCHDomainVcpuPrivateOnceInit(void)
+{
+ if (!VIR_CLASS_NEW(virCHDomainVcpuPrivate, virClassForObject()))
+ return -1;
+
+ return 0;
+}
+
+VIR_ONCE_GLOBAL_INIT(virCHDomainVcpuPrivate);
+
+static virObject *
+virCHDomainVcpuPrivateNew(void)
+{
+ virCHDomainVcpuPrivate *priv;
+
+ if (virCHDomainVcpuPrivateInitialize() < 0)
+ return NULL;
+
+ if (!(priv = virObjectNew(virCHDomainVcpuPrivateClass)))
+ return NULL;
+
+ return (virObject *) priv;
+}
+
+
static int
virCHDomainDefPostParse(virDomainDef *def,
unsigned int parseFlags G_GNUC_UNUSED,
return 0;
}
+virDomainXMLPrivateDataCallbacks virCHDriverPrivateDataCallbacks = {
+ .alloc = virCHDomainObjPrivateAlloc,
+ .free = virCHDomainObjPrivateFree,
+ .vcpuNew = virCHDomainVcpuPrivateNew,
+};
+
static int
chValidateDomainDeviceDef(const virDomainDeviceDef *dev,
const virDomainDef *def G_GNUC_UNUSED,
virCHMonitor *virCHDomainGetMonitor(virDomainObj *vm);
+typedef struct _virCHDomainVcpuPrivate virCHDomainVcpuPrivate;
+struct _virCHDomainVcpuPrivate {
+ virObject parent;
+
+ pid_t tid; /* vcpu thread id */
+ virTristateBool halted;
+};
+
+#define CH_DOMAIN_VCPU_PRIVATE(vcpu) \
+ ((virCHDomainVcpuPrivate *) (vcpu)->privateData)
+
extern virDomainXMLPrivateDataCallbacks virCHDriverPrivateDataCallbacks;
extern virDomainDefParserConfig virCHDriverDomainDefParserConfig;