mirror of https://gitee.com/openkylin/libvirt.git
Move virConnect related APIs out of libvirt.h.in
Create a new libvirt-host.h file to hold the public API definitions for the virConnect type. This header file is not self-contained, so applications will not directly include it. They will continue to #include <libvirt/libvirt.h>
This commit is contained in:
parent
653a5e4939
commit
bcec07b9f0
|
@ -25,6 +25,7 @@ included_files = {
|
|||
"libvirt-domain.h": "header with general libvirt API definitions",
|
||||
"libvirt-domain-snapshot.h": "header with general libvirt API definitions",
|
||||
"libvirt-event.h": "header with general libvirt API definitions",
|
||||
"libvirt-host.h": "header with general libvirt API definitions",
|
||||
"libvirt-interface.h": "header with general libvirt API definitions",
|
||||
"libvirt-network.h": "header with general libvirt API definitions",
|
||||
"libvirt-nodedev.h": "header with general libvirt API definitions",
|
||||
|
|
|
@ -22,6 +22,7 @@ virinc_HEADERS = libvirt.h \
|
|||
libvirt-domain.h \
|
||||
libvirt-domain-snapshot.h \
|
||||
libvirt-event.h \
|
||||
libvirt-host.h \
|
||||
libvirt-interface.h \
|
||||
libvirt-network.h \
|
||||
libvirt-nodedev.h \
|
||||
|
|
|
@ -0,0 +1,892 @@
|
|||
/*
|
||||
* libvirt-host.h
|
||||
* Summary: APIs for management of hosts
|
||||
* Description: Provides APIs for the management of hosts
|
||||
* Author: Daniel Veillard <veillard@redhat.com>
|
||||
*
|
||||
* Copyright (C) 2006-2014 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __VIR_LIBVIRT_HOST_H__
|
||||
# define __VIR_LIBVIRT_HOST_H__
|
||||
|
||||
# ifndef __VIR_LIBVIRT_H_INCLUDES__
|
||||
# error "Don't include this file directly, only use libvirt/libvirt.h"
|
||||
# endif
|
||||
|
||||
|
||||
/*
|
||||
* virFreeCallback:
|
||||
* @opaque: opaque user data provided at registration
|
||||
*
|
||||
* Type for a callback cleanup function to be paired with a callback. This
|
||||
* function will be called as a final chance to clean up the @opaque
|
||||
* registered with the primary callback, at the time when the primary
|
||||
* callback is deregistered.
|
||||
*
|
||||
* It is forbidden to call any other libvirt APIs from an
|
||||
* implementation of this callback, since it can be invoked
|
||||
* from a context which is not re-entrant safe. Failure to
|
||||
* abide by this requirement may lead to application deadlocks
|
||||
* or crashes.
|
||||
*/
|
||||
typedef void (*virFreeCallback)(void *opaque);
|
||||
|
||||
|
||||
/**
|
||||
* virConnect:
|
||||
*
|
||||
* a virConnect is a private structure representing a connection to
|
||||
* the Hypervisor.
|
||||
*/
|
||||
typedef struct _virConnect virConnect;
|
||||
|
||||
/**
|
||||
* virConnectPtr:
|
||||
*
|
||||
* a virConnectPtr is pointer to a virConnect private structure, this is the
|
||||
* type used to reference a connection to the Hypervisor in the API.
|
||||
*/
|
||||
typedef virConnect *virConnectPtr;
|
||||
|
||||
/**
|
||||
* virNodeSuspendTarget:
|
||||
*
|
||||
* Flags to indicate which system-wide sleep state the host must be
|
||||
* transitioned to.
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_NODE_SUSPEND_TARGET_MEM = 0,
|
||||
VIR_NODE_SUSPEND_TARGET_DISK = 1,
|
||||
VIR_NODE_SUSPEND_TARGET_HYBRID = 2,
|
||||
|
||||
# ifdef VIR_ENUM_SENTINELS
|
||||
VIR_NODE_SUSPEND_TARGET_LAST /* This constant is subject to change */
|
||||
# endif
|
||||
} virNodeSuspendTarget;
|
||||
|
||||
/**
|
||||
* virStream:
|
||||
*
|
||||
* a virStream is a private structure representing a data stream.
|
||||
*/
|
||||
typedef struct _virStream virStream;
|
||||
|
||||
/**
|
||||
* virStreamPtr:
|
||||
*
|
||||
* a virStreamPtr is pointer to a virStream private structure, this is the
|
||||
* type used to reference a data stream in the API.
|
||||
*/
|
||||
typedef virStream *virStreamPtr;
|
||||
|
||||
/**
|
||||
* VIR_SECURITY_LABEL_BUFLEN:
|
||||
*
|
||||
* Macro providing the maximum length of the virSecurityLabel label string.
|
||||
* Note that this value is based on that used by Labeled NFS.
|
||||
*/
|
||||
# define VIR_SECURITY_LABEL_BUFLEN (4096 + 1)
|
||||
|
||||
/**
|
||||
* virSecurityLabel:
|
||||
*
|
||||
* a virSecurityLabel is a structure filled by virDomainGetSecurityLabel(),
|
||||
* providing the security label and associated attributes for the specified
|
||||
* domain.
|
||||
*
|
||||
*/
|
||||
typedef struct _virSecurityLabel {
|
||||
char label[VIR_SECURITY_LABEL_BUFLEN]; /* security label string */
|
||||
int enforcing; /* 1 if security policy is being enforced for domain */
|
||||
} virSecurityLabel;
|
||||
|
||||
/**
|
||||
* virSecurityLabelPtr:
|
||||
*
|
||||
* a virSecurityLabelPtr is a pointer to a virSecurityLabel.
|
||||
*/
|
||||
typedef virSecurityLabel *virSecurityLabelPtr;
|
||||
|
||||
/**
|
||||
* VIR_SECURITY_MODEL_BUFLEN:
|
||||
*
|
||||
* Macro providing the maximum length of the virSecurityModel model string.
|
||||
*/
|
||||
# define VIR_SECURITY_MODEL_BUFLEN (256 + 1)
|
||||
|
||||
/**
|
||||
* VIR_SECURITY_DOI_BUFLEN:
|
||||
*
|
||||
* Macro providing the maximum length of the virSecurityModel doi string.
|
||||
*/
|
||||
# define VIR_SECURITY_DOI_BUFLEN (256 + 1)
|
||||
|
||||
/**
|
||||
* virSecurityModel:
|
||||
*
|
||||
* a virSecurityModel is a structure filled by virNodeGetSecurityModel(),
|
||||
* providing the per-hypervisor security model and DOI attributes for the
|
||||
* specified domain.
|
||||
*
|
||||
*/
|
||||
typedef struct _virSecurityModel {
|
||||
char model[VIR_SECURITY_MODEL_BUFLEN]; /* security model string */
|
||||
char doi[VIR_SECURITY_DOI_BUFLEN]; /* domain of interpetation */
|
||||
} virSecurityModel;
|
||||
|
||||
/**
|
||||
* virSecurityModelPtr:
|
||||
*
|
||||
* a virSecurityModelPtr is a pointer to a virSecurityModel.
|
||||
*/
|
||||
typedef virSecurityModel *virSecurityModelPtr;
|
||||
|
||||
/* Common data types shared among interfaces with name/type/value lists. */
|
||||
|
||||
/**
|
||||
* virTypedParameterType:
|
||||
*
|
||||
* Express the type of a virTypedParameter
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_TYPED_PARAM_INT = 1, /* integer case */
|
||||
VIR_TYPED_PARAM_UINT = 2, /* unsigned integer case */
|
||||
VIR_TYPED_PARAM_LLONG = 3, /* long long case */
|
||||
VIR_TYPED_PARAM_ULLONG = 4, /* unsigned long long case */
|
||||
VIR_TYPED_PARAM_DOUBLE = 5, /* double case */
|
||||
VIR_TYPED_PARAM_BOOLEAN = 6, /* boolean(character) case */
|
||||
VIR_TYPED_PARAM_STRING = 7, /* string case */
|
||||
|
||||
# ifdef VIR_ENUM_SENTINELS
|
||||
VIR_TYPED_PARAM_LAST
|
||||
# endif
|
||||
} virTypedParameterType;
|
||||
|
||||
/**
|
||||
* virTypedParameterFlags:
|
||||
*
|
||||
* Flags related to libvirt APIs that use virTypedParameter.
|
||||
*
|
||||
* These enums should not conflict with those of virDomainModificationImpact.
|
||||
*/
|
||||
typedef enum {
|
||||
/* 1 << 0 is reserved for virDomainModificationImpact */
|
||||
/* 1 << 1 is reserved for virDomainModificationImpact */
|
||||
|
||||
/* Older servers lacked the ability to handle string typed
|
||||
* parameters. Attempts to set a string parameter with an older
|
||||
* server will fail at the client, but attempts to retrieve
|
||||
* parameters must not return strings from a new server to an
|
||||
* older client, so this flag exists to identify newer clients to
|
||||
* newer servers. This flag is automatically set when needed, so
|
||||
* the user does not have to worry about it; however, manually
|
||||
* setting the flag can be used to reject servers that cannot
|
||||
* return typed strings, even if no strings would be returned.
|
||||
*/
|
||||
VIR_TYPED_PARAM_STRING_OKAY = 1 << 2,
|
||||
|
||||
} virTypedParameterFlags;
|
||||
|
||||
/**
|
||||
* VIR_TYPED_PARAM_FIELD_LENGTH:
|
||||
*
|
||||
* Macro providing the field length of virTypedParameter name
|
||||
*/
|
||||
# define VIR_TYPED_PARAM_FIELD_LENGTH 80
|
||||
|
||||
/**
|
||||
* virTypedParameter:
|
||||
*
|
||||
* A named parameter, including a type and value.
|
||||
*
|
||||
* The types virSchedParameter, virBlkioParameter, and
|
||||
* virMemoryParameter are aliases of this type, for use when
|
||||
* targetting libvirt earlier than 0.9.2.
|
||||
*/
|
||||
typedef struct _virTypedParameter virTypedParameter;
|
||||
|
||||
struct _virTypedParameter {
|
||||
char field[VIR_TYPED_PARAM_FIELD_LENGTH]; /* parameter name */
|
||||
int type; /* parameter type, virTypedParameterType */
|
||||
union {
|
||||
int i; /* type is INT */
|
||||
unsigned int ui; /* type is UINT */
|
||||
long long int l; /* type is LLONG */
|
||||
unsigned long long int ul; /* type is ULLONG */
|
||||
double d; /* type is DOUBLE */
|
||||
char b; /* type is BOOLEAN */
|
||||
char *s; /* type is STRING, may not be NULL */
|
||||
} value; /* parameter value */
|
||||
};
|
||||
|
||||
/**
|
||||
* virTypedParameterPtr:
|
||||
*
|
||||
* a pointer to a virTypedParameter structure.
|
||||
*/
|
||||
typedef virTypedParameter *virTypedParameterPtr;
|
||||
|
||||
|
||||
virTypedParameterPtr
|
||||
virTypedParamsGet (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name);
|
||||
int
|
||||
virTypedParamsGetInt (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
int *value);
|
||||
int
|
||||
virTypedParamsGetUInt (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
unsigned int *value);
|
||||
int
|
||||
virTypedParamsGetLLong (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
long long *value);
|
||||
int
|
||||
virTypedParamsGetULLong (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
unsigned long long *value);
|
||||
int
|
||||
virTypedParamsGetDouble (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
double *value);
|
||||
int
|
||||
virTypedParamsGetBoolean(virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
int *value);
|
||||
int
|
||||
virTypedParamsGetString (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
const char **value);
|
||||
int
|
||||
virTypedParamsAddInt (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
int value);
|
||||
int
|
||||
virTypedParamsAddUInt (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
unsigned int value);
|
||||
int
|
||||
virTypedParamsAddLLong (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
long long value);
|
||||
int
|
||||
virTypedParamsAddULLong (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
unsigned long long value);
|
||||
int
|
||||
virTypedParamsAddDouble (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
double value);
|
||||
int
|
||||
virTypedParamsAddBoolean(virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
int value);
|
||||
int
|
||||
virTypedParamsAddString (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
const char *value);
|
||||
int
|
||||
virTypedParamsAddFromString(virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
int type,
|
||||
const char *value);
|
||||
void
|
||||
virTypedParamsClear (virTypedParameterPtr params,
|
||||
int nparams);
|
||||
void
|
||||
virTypedParamsFree (virTypedParameterPtr params,
|
||||
int nparams);
|
||||
|
||||
/* data types related to virNodePtr */
|
||||
|
||||
/**
|
||||
* virNodeInfoPtr:
|
||||
*
|
||||
* a virNodeInfo is a structure filled by virNodeGetInfo() and providing
|
||||
* the information for the Node.
|
||||
*/
|
||||
|
||||
typedef struct _virNodeInfo virNodeInfo;
|
||||
|
||||
struct _virNodeInfo {
|
||||
char model[32]; /* string indicating the CPU model */
|
||||
unsigned long memory; /* memory size in kilobytes */
|
||||
unsigned int cpus; /* the number of active CPUs */
|
||||
unsigned int mhz; /* expected CPU frequency */
|
||||
unsigned int nodes; /* the number of NUMA cell, 1 for unusual NUMA
|
||||
topologies or uniform memory access; check
|
||||
capabilities XML for the actual NUMA topology */
|
||||
unsigned int sockets; /* number of CPU sockets per node if nodes > 1,
|
||||
1 in case of unusual NUMA topology */
|
||||
unsigned int cores; /* number of cores per socket, total number of
|
||||
processors in case of unusual NUMA topology*/
|
||||
unsigned int threads; /* number of threads per core, 1 in case of
|
||||
unusual numa topology */
|
||||
};
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_FIELD_LENGTH:
|
||||
*
|
||||
* Macro providing the field length of virNodeCPUStats
|
||||
*/
|
||||
# define VIR_NODE_CPU_STATS_FIELD_LENGTH 80
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_ALL_CPUS:
|
||||
*
|
||||
* Value for specifying request for the total CPU time/utilization
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_NODE_CPU_STATS_ALL_CPUS = -1,
|
||||
} virNodeGetCPUStatsAllCPUs;
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_KERNEL:
|
||||
*
|
||||
* Macro for the cumulative CPU time which was spent by the kernel,
|
||||
* since the node booting up (in nanoseconds).
|
||||
*/
|
||||
# define VIR_NODE_CPU_STATS_KERNEL "kernel"
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_USER:
|
||||
*
|
||||
* The cumulative CPU time which was spent by user processes,
|
||||
* since the node booting up (in nanoseconds).
|
||||
*/
|
||||
# define VIR_NODE_CPU_STATS_USER "user"
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_IDLE:
|
||||
*
|
||||
* The cumulative idle CPU time,
|
||||
* since the node booting up (in nanoseconds).
|
||||
*/
|
||||
# define VIR_NODE_CPU_STATS_IDLE "idle"
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_IOWAIT:
|
||||
*
|
||||
* The cumulative I/O wait CPU time,
|
||||
* since the node booting up (in nanoseconds).
|
||||
*/
|
||||
# define VIR_NODE_CPU_STATS_IOWAIT "iowait"
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_INTR:
|
||||
*
|
||||
* The cumulative interrupt CPU time,
|
||||
* since the node booting up (in nanoseconds).
|
||||
*/
|
||||
# define VIR_NODE_CPU_STATS_INTR "intr"
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_UTILIZATION:
|
||||
*
|
||||
* The CPU utilization of a node.
|
||||
* The usage value is in percent and 100% represents all CPUs of
|
||||
* the node.
|
||||
*/
|
||||
# define VIR_NODE_CPU_STATS_UTILIZATION "utilization"
|
||||
|
||||
/**
|
||||
* virNodeCPUStats:
|
||||
*
|
||||
* a virNodeCPUStats is a structure filled by virNodeGetCPUStats()
|
||||
* providing information about the CPU stats of the node.
|
||||
*/
|
||||
typedef struct _virNodeCPUStats virNodeCPUStats;
|
||||
|
||||
struct _virNodeCPUStats {
|
||||
char field[VIR_NODE_CPU_STATS_FIELD_LENGTH];
|
||||
unsigned long long value;
|
||||
};
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_FIELD_LENGTH:
|
||||
*
|
||||
* Macro providing the field length of virNodeMemoryStats
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_STATS_FIELD_LENGTH 80
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_ALL_CELLS:
|
||||
*
|
||||
* Value for specifying request for the total memory of all cells.
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_NODE_MEMORY_STATS_ALL_CELLS = -1,
|
||||
} virNodeGetMemoryStatsAllCells;
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_TOTAL:
|
||||
*
|
||||
* Macro for the total memory of specified cell:
|
||||
* it represents the maximum memory.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_STATS_TOTAL "total"
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_FREE:
|
||||
*
|
||||
* Macro for the free memory of specified cell:
|
||||
* On Linux, it includes buffer and cached memory, in case of
|
||||
* VIR_NODE_MEMORY_STATS_ALL_CELLS.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_STATS_FREE "free"
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_BUFFERS:
|
||||
*
|
||||
* Macro for the buffer memory: On Linux, it is only returned in case of
|
||||
* VIR_NODE_MEMORY_STATS_ALL_CELLS.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_STATS_BUFFERS "buffers"
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_CACHED:
|
||||
*
|
||||
* Macro for the cached memory: On Linux, it is only returned in case of
|
||||
* VIR_NODE_MEMORY_STATS_ALL_CELLS.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_STATS_CACHED "cached"
|
||||
|
||||
/**
|
||||
* virNodeMemoryStats:
|
||||
*
|
||||
* a virNodeMemoryStats is a structure filled by virNodeGetMemoryStats()
|
||||
* providing information about the memory of the node.
|
||||
*/
|
||||
typedef struct _virNodeMemoryStats virNodeMemoryStats;
|
||||
|
||||
struct _virNodeMemoryStats {
|
||||
char field[VIR_NODE_MEMORY_STATS_FIELD_LENGTH];
|
||||
unsigned long long value;
|
||||
};
|
||||
|
||||
/*
|
||||
* VIR_NODE_MEMORY_SHARED_PAGES_TO_SCAN:
|
||||
*
|
||||
* Macro for typed parameter that represents how many present pages
|
||||
* to scan before the shared memory service goes to sleep.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_PAGES_TO_SCAN "shm_pages_to_scan"
|
||||
|
||||
/*
|
||||
* VIR_NODE_MEMORY_SHARED_SLEEP_MILLISECS:
|
||||
*
|
||||
* Macro for typed parameter that represents how many milliseconds
|
||||
* the shared memory service should sleep before next scan.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_SLEEP_MILLISECS "shm_sleep_millisecs"
|
||||
|
||||
/*
|
||||
* VIR_NODE_MEMORY_SHARED_PAGES_SHARED:
|
||||
*
|
||||
* Macro for typed parameter that represents how many the shared
|
||||
* memory pages are being used.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_PAGES_SHARED "shm_pages_shared"
|
||||
|
||||
/*
|
||||
* VIR_NODE_MEMORY_SHARED_PAGES_SHARING:
|
||||
*
|
||||
* Macro for typed parameter that represents how many sites are
|
||||
* sharing the pages i.e. how much saved.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_PAGES_SHARING "shm_pages_sharing"
|
||||
|
||||
/* VIR_NODE_MEMORY_SHARED_PAGES_UNSHARED:
|
||||
*
|
||||
* Macro for typed parameter that represents how many pages unique
|
||||
* but repeatedly checked for merging.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_PAGES_UNSHARED "shm_pages_unshared"
|
||||
|
||||
/* VIR_NODE_MEMORY_SHARED_PAGES_VOLATILE:
|
||||
*
|
||||
* Macro for typed parameter that represents how many pages changing
|
||||
* too fast to be placed in a tree.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_PAGES_VOLATILE "shm_pages_volatile"
|
||||
|
||||
/* VIR_NODE_MEMORY_SHARED_FULL_SCAN:
|
||||
*
|
||||
* Macro for typed parameter that represents how many times all
|
||||
* mergeable areas have been scanned.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_FULL_SCANS "shm_full_scans"
|
||||
|
||||
/* VIR_NODE_MEMORY_SHARED_MERGE_ACROSS_NODES:
|
||||
*
|
||||
* Macro for typed parameter that represents whether pages from
|
||||
* different NUMA nodes can be merged. The parameter has type int,
|
||||
* when its value is 0, only pages which physically reside in the
|
||||
* memory area of same NUMA node are merged; When its value is 1,
|
||||
* pages from all nodes can be merged. Other values are reserved
|
||||
* for future use.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_MERGE_ACROSS_NODES "shm_merge_across_nodes"
|
||||
|
||||
|
||||
int virNodeGetMemoryParameters(virConnectPtr conn,
|
||||
virTypedParameterPtr params,
|
||||
int *nparams,
|
||||
unsigned int flags);
|
||||
|
||||
int virNodeSetMemoryParameters(virConnectPtr conn,
|
||||
virTypedParameterPtr params,
|
||||
int nparams,
|
||||
unsigned int flags);
|
||||
|
||||
/*
|
||||
* node CPU map
|
||||
*/
|
||||
int virNodeGetCPUMap(virConnectPtr conn,
|
||||
unsigned char **cpumap,
|
||||
unsigned int *online,
|
||||
unsigned int flags);
|
||||
|
||||
|
||||
/**
|
||||
* VIR_NODEINFO_MAXCPUS:
|
||||
* @nodeinfo: virNodeInfo instance
|
||||
*
|
||||
* This macro is to calculate the total number of CPUs supported
|
||||
* but not necessary active in the host.
|
||||
*/
|
||||
|
||||
|
||||
# define VIR_NODEINFO_MAXCPUS(nodeinfo) ((nodeinfo).nodes*(nodeinfo).sockets*(nodeinfo).cores*(nodeinfo).threads)
|
||||
|
||||
/**
|
||||
* virNodeInfoPtr:
|
||||
*
|
||||
* a virNodeInfoPtr is a pointer to a virNodeInfo structure.
|
||||
*/
|
||||
|
||||
typedef virNodeInfo *virNodeInfoPtr;
|
||||
|
||||
/**
|
||||
* virNodeCPUStatsPtr:
|
||||
*
|
||||
* a virNodeCPUStatsPtr is a pointer to a virNodeCPUStats structure.
|
||||
*/
|
||||
|
||||
typedef virNodeCPUStats *virNodeCPUStatsPtr;
|
||||
|
||||
/**
|
||||
* virNodeMemoryStatsPtr:
|
||||
*
|
||||
* a virNodeMemoryStatsPtr is a pointer to a virNodeMemoryStats structure.
|
||||
*/
|
||||
|
||||
typedef virNodeMemoryStats *virNodeMemoryStatsPtr;
|
||||
|
||||
/**
|
||||
* virConnectFlags
|
||||
*
|
||||
* Flags when opening a connection to a hypervisor
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_CONNECT_RO = (1 << 0), /* A readonly connection */
|
||||
VIR_CONNECT_NO_ALIASES = (1 << 1), /* Don't try to resolve URI aliases */
|
||||
} virConnectFlags;
|
||||
|
||||
|
||||
typedef enum {
|
||||
VIR_CRED_USERNAME = 1, /* Identity to act as */
|
||||
VIR_CRED_AUTHNAME = 2, /* Identify to authorize as */
|
||||
VIR_CRED_LANGUAGE = 3, /* RFC 1766 languages, comma separated */
|
||||
VIR_CRED_CNONCE = 4, /* client supplies a nonce */
|
||||
VIR_CRED_PASSPHRASE = 5, /* Passphrase secret */
|
||||
VIR_CRED_ECHOPROMPT = 6, /* Challenge response */
|
||||
VIR_CRED_NOECHOPROMPT = 7, /* Challenge response */
|
||||
VIR_CRED_REALM = 8, /* Authentication realm */
|
||||
VIR_CRED_EXTERNAL = 9, /* Externally managed credential */
|
||||
|
||||
# ifdef VIR_ENUM_SENTINELS
|
||||
VIR_CRED_LAST /* More may be added - expect the unexpected */
|
||||
# endif
|
||||
} virConnectCredentialType;
|
||||
|
||||
struct _virConnectCredential {
|
||||
int type; /* One of virConnectCredentialType constants */
|
||||
const char *prompt; /* Prompt to show to user */
|
||||
const char *challenge; /* Additional challenge to show */
|
||||
const char *defresult; /* Optional default result */
|
||||
char *result; /* Result to be filled with user response (or defresult) */
|
||||
unsigned int resultlen; /* Length of the result */
|
||||
};
|
||||
|
||||
typedef struct _virConnectCredential virConnectCredential;
|
||||
typedef virConnectCredential *virConnectCredentialPtr;
|
||||
|
||||
|
||||
/**
|
||||
* virConnectAuthCallbackPtr:
|
||||
* @cred: list of virConnectCredential object to fetch from user
|
||||
* @ncred: size of cred list
|
||||
* @cbdata: opaque data passed to virConnectOpenAuth
|
||||
*
|
||||
* When authentication requires one or more interactions, this callback
|
||||
* is invoked. For each interaction supplied, data must be gathered
|
||||
* from the user and filled in to the 'result' and 'resultlen' fields.
|
||||
* If an interaction cannot be filled, fill in NULL and 0.
|
||||
*
|
||||
* Returns 0 if all interactions were filled, or -1 upon error
|
||||
*/
|
||||
typedef int (*virConnectAuthCallbackPtr)(virConnectCredentialPtr cred,
|
||||
unsigned int ncred,
|
||||
void *cbdata);
|
||||
|
||||
struct _virConnectAuth {
|
||||
int *credtype; /* List of supported virConnectCredentialType values */
|
||||
unsigned int ncredtype;
|
||||
|
||||
virConnectAuthCallbackPtr cb; /* Callback used to collect credentials */
|
||||
void *cbdata;
|
||||
};
|
||||
|
||||
|
||||
typedef struct _virConnectAuth virConnectAuth;
|
||||
typedef virConnectAuth *virConnectAuthPtr;
|
||||
|
||||
VIR_EXPORT_VAR virConnectAuthPtr virConnectAuthPtrDefault;
|
||||
|
||||
/**
|
||||
* VIR_UUID_BUFLEN:
|
||||
*
|
||||
* This macro provides the length of the buffer required
|
||||
* for virDomainGetUUID()
|
||||
*/
|
||||
|
||||
# define VIR_UUID_BUFLEN (16)
|
||||
|
||||
/**
|
||||
* VIR_UUID_STRING_BUFLEN:
|
||||
*
|
||||
* This macro provides the length of the buffer required
|
||||
* for virDomainGetUUIDString()
|
||||
*/
|
||||
|
||||
# define VIR_UUID_STRING_BUFLEN (36+1)
|
||||
|
||||
|
||||
int virGetVersion (unsigned long *libVer,
|
||||
const char *type,
|
||||
unsigned long *typeVer);
|
||||
|
||||
/*
|
||||
* Connection and disconnections to the Hypervisor
|
||||
*/
|
||||
int virInitialize (void);
|
||||
|
||||
virConnectPtr virConnectOpen (const char *name);
|
||||
virConnectPtr virConnectOpenReadOnly (const char *name);
|
||||
virConnectPtr virConnectOpenAuth (const char *name,
|
||||
virConnectAuthPtr auth,
|
||||
unsigned int flags);
|
||||
int virConnectRef (virConnectPtr conn);
|
||||
int virConnectClose (virConnectPtr conn);
|
||||
const char * virConnectGetType (virConnectPtr conn);
|
||||
int virConnectGetVersion (virConnectPtr conn,
|
||||
unsigned long *hvVer);
|
||||
int virConnectGetLibVersion (virConnectPtr conn,
|
||||
unsigned long *libVer);
|
||||
char * virConnectGetHostname (virConnectPtr conn);
|
||||
char * virConnectGetURI (virConnectPtr conn);
|
||||
char * virConnectGetSysinfo (virConnectPtr conn,
|
||||
unsigned int flags);
|
||||
|
||||
int virConnectSetKeepAlive(virConnectPtr conn,
|
||||
int interval,
|
||||
unsigned int count);
|
||||
|
||||
typedef enum {
|
||||
VIR_CONNECT_CLOSE_REASON_ERROR = 0, /* Misc I/O error */
|
||||
VIR_CONNECT_CLOSE_REASON_EOF = 1, /* End-of-file from server */
|
||||
VIR_CONNECT_CLOSE_REASON_KEEPALIVE = 2, /* Keepalive timer triggered */
|
||||
VIR_CONNECT_CLOSE_REASON_CLIENT = 3, /* Client requested it */
|
||||
|
||||
# ifdef VIR_ENUM_SENTINELS
|
||||
VIR_CONNECT_CLOSE_REASON_LAST
|
||||
# endif
|
||||
} virConnectCloseReason;
|
||||
|
||||
/**
|
||||
* virConnectCloseFunc:
|
||||
* @conn: virConnect connection
|
||||
* @reason: reason why the connection was closed (one of virConnectCloseReason)
|
||||
* @opaque: opaque user data
|
||||
*
|
||||
* A callback function to be registered, and called when the connection
|
||||
* is closed.
|
||||
*/
|
||||
typedef void (*virConnectCloseFunc)(virConnectPtr conn,
|
||||
int reason,
|
||||
void *opaque);
|
||||
|
||||
int virConnectRegisterCloseCallback(virConnectPtr conn,
|
||||
virConnectCloseFunc cb,
|
||||
void *opaque,
|
||||
virFreeCallback freecb);
|
||||
int virConnectUnregisterCloseCallback(virConnectPtr conn,
|
||||
virConnectCloseFunc cb);
|
||||
|
||||
/*
|
||||
* Capabilities of the connection / driver.
|
||||
*/
|
||||
|
||||
int virConnectGetMaxVcpus (virConnectPtr conn,
|
||||
const char *type);
|
||||
int virNodeGetInfo (virConnectPtr conn,
|
||||
virNodeInfoPtr info);
|
||||
char * virConnectGetCapabilities (virConnectPtr conn);
|
||||
|
||||
int virNodeGetCPUStats (virConnectPtr conn,
|
||||
int cpuNum,
|
||||
virNodeCPUStatsPtr params,
|
||||
int *nparams,
|
||||
unsigned int flags);
|
||||
|
||||
int virNodeGetMemoryStats (virConnectPtr conn,
|
||||
int cellNum,
|
||||
virNodeMemoryStatsPtr params,
|
||||
int *nparams,
|
||||
unsigned int flags);
|
||||
|
||||
unsigned long long virNodeGetFreeMemory (virConnectPtr conn);
|
||||
|
||||
int virNodeGetSecurityModel (virConnectPtr conn,
|
||||
virSecurityModelPtr secmodel);
|
||||
|
||||
int virNodeSuspendForDuration (virConnectPtr conn,
|
||||
unsigned int target,
|
||||
unsigned long long duration,
|
||||
unsigned int flags);
|
||||
|
||||
/*
|
||||
* NUMA support
|
||||
*/
|
||||
|
||||
int virNodeGetCellsFreeMemory(virConnectPtr conn,
|
||||
unsigned long long *freeMems,
|
||||
int startCell,
|
||||
int maxCells);
|
||||
|
||||
|
||||
int virConnectIsEncrypted(virConnectPtr conn);
|
||||
int virConnectIsSecure(virConnectPtr conn);
|
||||
int virConnectIsAlive(virConnectPtr conn);
|
||||
|
||||
/*
|
||||
* CPU specification API
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
VIR_CPU_COMPARE_ERROR = -1,
|
||||
VIR_CPU_COMPARE_INCOMPATIBLE = 0,
|
||||
VIR_CPU_COMPARE_IDENTICAL = 1,
|
||||
VIR_CPU_COMPARE_SUPERSET = 2,
|
||||
|
||||
# ifdef VIR_ENUM_SENTINELS
|
||||
VIR_CPU_COMPARE_LAST
|
||||
# endif
|
||||
} virCPUCompareResult;
|
||||
|
||||
typedef enum {
|
||||
VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE = (1 << 0), /* treat incompatible
|
||||
CPUs as failure */
|
||||
} virConnectCompareCPUFlags;
|
||||
|
||||
int virConnectCompareCPU(virConnectPtr conn,
|
||||
const char *xmlDesc,
|
||||
unsigned int flags);
|
||||
|
||||
int virConnectGetCPUModelNames(virConnectPtr conn,
|
||||
const char *arch,
|
||||
char ***models,
|
||||
unsigned int flags);
|
||||
|
||||
/**
|
||||
* virConnectBaselineCPUFlags
|
||||
*
|
||||
* Flags when getting XML description of a computed CPU
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES = (1 << 0), /* show all features */
|
||||
} virConnectBaselineCPUFlags;
|
||||
|
||||
char *virConnectBaselineCPU(virConnectPtr conn,
|
||||
const char **xmlCPUs,
|
||||
unsigned int ncpus,
|
||||
unsigned int flags);
|
||||
|
||||
|
||||
int virNodeGetFreePages(virConnectPtr conn,
|
||||
unsigned int npages,
|
||||
unsigned int *pages,
|
||||
int startcell,
|
||||
unsigned int cellcount,
|
||||
unsigned long long *counts,
|
||||
unsigned int flags);
|
||||
|
||||
typedef enum {
|
||||
VIR_NODE_ALLOC_PAGES_ADD = 0, /* Add @pageCounts to the pages pool. This
|
||||
can be used only to size up the pool. */
|
||||
VIR_NODE_ALLOC_PAGES_SET = (1 << 0), /* Don't add @pageCounts, instead set
|
||||
passed number of pages. This can be
|
||||
used to free allocated pages. */
|
||||
} virNodeAllocPagesFlags;
|
||||
|
||||
int virNodeAllocPages(virConnectPtr conn,
|
||||
unsigned int npages,
|
||||
unsigned int *pageSizes,
|
||||
unsigned long long *pageCounts,
|
||||
int startCell,
|
||||
unsigned int cellCount,
|
||||
unsigned int flags);
|
||||
|
||||
|
||||
#endif /* __VIR_LIBVIRT_HOST_H__ */
|
|
@ -55,695 +55,12 @@ extern "C" {
|
|||
# define VIR_EXPORT_VAR extern
|
||||
#endif
|
||||
|
||||
/* General note - throughout this file, any linear enumeration which
|
||||
/* General note - in the header files, any linear enumeration which
|
||||
* might be expanded in the future has an optional *_LAST value that
|
||||
* gives the size of the enum at the time of compilation, if the user
|
||||
* defines VIR_ENUM_SENTINELS. Enumerations for bit values do not
|
||||
* have a *_LAST value, but additional bits may be defined. */
|
||||
|
||||
/*
|
||||
* virFreeCallback:
|
||||
* @opaque: opaque user data provided at registration
|
||||
*
|
||||
* Type for a callback cleanup function to be paired with a callback. This
|
||||
* function will be called as a final chance to clean up the @opaque
|
||||
* registered with the primary callback, at the time when the primary
|
||||
* callback is deregistered.
|
||||
*
|
||||
* It is forbidden to call any other libvirt APIs from an
|
||||
* implementation of this callback, since it can be invoked
|
||||
* from a context which is not re-entrant safe. Failure to
|
||||
* abide by this requirement may lead to application deadlocks
|
||||
* or crashes.
|
||||
*/
|
||||
typedef void (*virFreeCallback)(void *opaque);
|
||||
|
||||
|
||||
/**
|
||||
* virConnect:
|
||||
*
|
||||
* a virConnect is a private structure representing a connection to
|
||||
* the Hypervisor.
|
||||
*/
|
||||
typedef struct _virConnect virConnect;
|
||||
|
||||
/**
|
||||
* virConnectPtr:
|
||||
*
|
||||
* a virConnectPtr is pointer to a virConnect private structure, this is the
|
||||
* type used to reference a connection to the Hypervisor in the API.
|
||||
*/
|
||||
typedef virConnect *virConnectPtr;
|
||||
|
||||
/**
|
||||
* virNodeSuspendTarget:
|
||||
*
|
||||
* Flags to indicate which system-wide sleep state the host must be
|
||||
* transitioned to.
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_NODE_SUSPEND_TARGET_MEM = 0,
|
||||
VIR_NODE_SUSPEND_TARGET_DISK = 1,
|
||||
VIR_NODE_SUSPEND_TARGET_HYBRID = 2,
|
||||
|
||||
#ifdef VIR_ENUM_SENTINELS
|
||||
VIR_NODE_SUSPEND_TARGET_LAST /* This constant is subject to change */
|
||||
#endif
|
||||
} virNodeSuspendTarget;
|
||||
|
||||
/**
|
||||
* virStream:
|
||||
*
|
||||
* a virStream is a private structure representing a data stream.
|
||||
*/
|
||||
typedef struct _virStream virStream;
|
||||
|
||||
/**
|
||||
* virStreamPtr:
|
||||
*
|
||||
* a virStreamPtr is pointer to a virStream private structure, this is the
|
||||
* type used to reference a data stream in the API.
|
||||
*/
|
||||
typedef virStream *virStreamPtr;
|
||||
|
||||
/**
|
||||
* VIR_SECURITY_LABEL_BUFLEN:
|
||||
*
|
||||
* Macro providing the maximum length of the virSecurityLabel label string.
|
||||
* Note that this value is based on that used by Labeled NFS.
|
||||
*/
|
||||
#define VIR_SECURITY_LABEL_BUFLEN (4096 + 1)
|
||||
|
||||
/**
|
||||
* virSecurityLabel:
|
||||
*
|
||||
* a virSecurityLabel is a structure filled by virDomainGetSecurityLabel(),
|
||||
* providing the security label and associated attributes for the specified
|
||||
* domain.
|
||||
*
|
||||
*/
|
||||
typedef struct _virSecurityLabel {
|
||||
char label[VIR_SECURITY_LABEL_BUFLEN]; /* security label string */
|
||||
int enforcing; /* 1 if security policy is being enforced for domain */
|
||||
} virSecurityLabel;
|
||||
|
||||
/**
|
||||
* virSecurityLabelPtr:
|
||||
*
|
||||
* a virSecurityLabelPtr is a pointer to a virSecurityLabel.
|
||||
*/
|
||||
typedef virSecurityLabel *virSecurityLabelPtr;
|
||||
|
||||
/**
|
||||
* VIR_SECURITY_MODEL_BUFLEN:
|
||||
*
|
||||
* Macro providing the maximum length of the virSecurityModel model string.
|
||||
*/
|
||||
#define VIR_SECURITY_MODEL_BUFLEN (256 + 1)
|
||||
|
||||
/**
|
||||
* VIR_SECURITY_DOI_BUFLEN:
|
||||
*
|
||||
* Macro providing the maximum length of the virSecurityModel doi string.
|
||||
*/
|
||||
#define VIR_SECURITY_DOI_BUFLEN (256 + 1)
|
||||
|
||||
/**
|
||||
* virSecurityModel:
|
||||
*
|
||||
* a virSecurityModel is a structure filled by virNodeGetSecurityModel(),
|
||||
* providing the per-hypervisor security model and DOI attributes for the
|
||||
* specified domain.
|
||||
*
|
||||
*/
|
||||
typedef struct _virSecurityModel {
|
||||
char model[VIR_SECURITY_MODEL_BUFLEN]; /* security model string */
|
||||
char doi[VIR_SECURITY_DOI_BUFLEN]; /* domain of interpetation */
|
||||
} virSecurityModel;
|
||||
|
||||
/**
|
||||
* virSecurityModelPtr:
|
||||
*
|
||||
* a virSecurityModelPtr is a pointer to a virSecurityModel.
|
||||
*/
|
||||
typedef virSecurityModel *virSecurityModelPtr;
|
||||
|
||||
/* Common data types shared among interfaces with name/type/value lists. */
|
||||
|
||||
/**
|
||||
* virTypedParameterType:
|
||||
*
|
||||
* Express the type of a virTypedParameter
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_TYPED_PARAM_INT = 1, /* integer case */
|
||||
VIR_TYPED_PARAM_UINT = 2, /* unsigned integer case */
|
||||
VIR_TYPED_PARAM_LLONG = 3, /* long long case */
|
||||
VIR_TYPED_PARAM_ULLONG = 4, /* unsigned long long case */
|
||||
VIR_TYPED_PARAM_DOUBLE = 5, /* double case */
|
||||
VIR_TYPED_PARAM_BOOLEAN = 6, /* boolean(character) case */
|
||||
VIR_TYPED_PARAM_STRING = 7, /* string case */
|
||||
|
||||
#ifdef VIR_ENUM_SENTINELS
|
||||
VIR_TYPED_PARAM_LAST
|
||||
#endif
|
||||
} virTypedParameterType;
|
||||
|
||||
/**
|
||||
* virTypedParameterFlags:
|
||||
*
|
||||
* Flags related to libvirt APIs that use virTypedParameter.
|
||||
*
|
||||
* These enums should not conflict with those of virDomainModificationImpact.
|
||||
*/
|
||||
typedef enum {
|
||||
/* 1 << 0 is reserved for virDomainModificationImpact */
|
||||
/* 1 << 1 is reserved for virDomainModificationImpact */
|
||||
|
||||
/* Older servers lacked the ability to handle string typed
|
||||
* parameters. Attempts to set a string parameter with an older
|
||||
* server will fail at the client, but attempts to retrieve
|
||||
* parameters must not return strings from a new server to an
|
||||
* older client, so this flag exists to identify newer clients to
|
||||
* newer servers. This flag is automatically set when needed, so
|
||||
* the user does not have to worry about it; however, manually
|
||||
* setting the flag can be used to reject servers that cannot
|
||||
* return typed strings, even if no strings would be returned.
|
||||
*/
|
||||
VIR_TYPED_PARAM_STRING_OKAY = 1 << 2,
|
||||
|
||||
} virTypedParameterFlags;
|
||||
|
||||
/**
|
||||
* VIR_TYPED_PARAM_FIELD_LENGTH:
|
||||
*
|
||||
* Macro providing the field length of virTypedParameter name
|
||||
*/
|
||||
#define VIR_TYPED_PARAM_FIELD_LENGTH 80
|
||||
|
||||
/**
|
||||
* virTypedParameter:
|
||||
*
|
||||
* A named parameter, including a type and value.
|
||||
*
|
||||
* The types virSchedParameter, virBlkioParameter, and
|
||||
* virMemoryParameter are aliases of this type, for use when
|
||||
* targetting libvirt earlier than 0.9.2.
|
||||
*/
|
||||
typedef struct _virTypedParameter virTypedParameter;
|
||||
|
||||
struct _virTypedParameter {
|
||||
char field[VIR_TYPED_PARAM_FIELD_LENGTH]; /* parameter name */
|
||||
int type; /* parameter type, virTypedParameterType */
|
||||
union {
|
||||
int i; /* type is INT */
|
||||
unsigned int ui; /* type is UINT */
|
||||
long long int l; /* type is LLONG */
|
||||
unsigned long long int ul; /* type is ULLONG */
|
||||
double d; /* type is DOUBLE */
|
||||
char b; /* type is BOOLEAN */
|
||||
char *s; /* type is STRING, may not be NULL */
|
||||
} value; /* parameter value */
|
||||
};
|
||||
|
||||
/**
|
||||
* virTypedParameterPtr:
|
||||
*
|
||||
* a pointer to a virTypedParameter structure.
|
||||
*/
|
||||
typedef virTypedParameter *virTypedParameterPtr;
|
||||
|
||||
|
||||
virTypedParameterPtr
|
||||
virTypedParamsGet (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name);
|
||||
int
|
||||
virTypedParamsGetInt (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
int *value);
|
||||
int
|
||||
virTypedParamsGetUInt (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
unsigned int *value);
|
||||
int
|
||||
virTypedParamsGetLLong (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
long long *value);
|
||||
int
|
||||
virTypedParamsGetULLong (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
unsigned long long *value);
|
||||
int
|
||||
virTypedParamsGetDouble (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
double *value);
|
||||
int
|
||||
virTypedParamsGetBoolean(virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
int *value);
|
||||
int
|
||||
virTypedParamsGetString (virTypedParameterPtr params,
|
||||
int nparams,
|
||||
const char *name,
|
||||
const char **value);
|
||||
int
|
||||
virTypedParamsAddInt (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
int value);
|
||||
int
|
||||
virTypedParamsAddUInt (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
unsigned int value);
|
||||
int
|
||||
virTypedParamsAddLLong (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
long long value);
|
||||
int
|
||||
virTypedParamsAddULLong (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
unsigned long long value);
|
||||
int
|
||||
virTypedParamsAddDouble (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
double value);
|
||||
int
|
||||
virTypedParamsAddBoolean(virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
int value);
|
||||
int
|
||||
virTypedParamsAddString (virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
const char *value);
|
||||
int
|
||||
virTypedParamsAddFromString(virTypedParameterPtr *params,
|
||||
int *nparams,
|
||||
int *maxparams,
|
||||
const char *name,
|
||||
int type,
|
||||
const char *value);
|
||||
void
|
||||
virTypedParamsClear (virTypedParameterPtr params,
|
||||
int nparams);
|
||||
void
|
||||
virTypedParamsFree (virTypedParameterPtr params,
|
||||
int nparams);
|
||||
|
||||
/* data types related to virNodePtr */
|
||||
|
||||
/**
|
||||
* virNodeInfoPtr:
|
||||
*
|
||||
* a virNodeInfo is a structure filled by virNodeGetInfo() and providing
|
||||
* the information for the Node.
|
||||
*/
|
||||
|
||||
typedef struct _virNodeInfo virNodeInfo;
|
||||
|
||||
struct _virNodeInfo {
|
||||
char model[32]; /* string indicating the CPU model */
|
||||
unsigned long memory; /* memory size in kilobytes */
|
||||
unsigned int cpus; /* the number of active CPUs */
|
||||
unsigned int mhz; /* expected CPU frequency */
|
||||
unsigned int nodes; /* the number of NUMA cell, 1 for unusual NUMA
|
||||
topologies or uniform memory access; check
|
||||
capabilities XML for the actual NUMA topology */
|
||||
unsigned int sockets; /* number of CPU sockets per node if nodes > 1,
|
||||
1 in case of unusual NUMA topology */
|
||||
unsigned int cores; /* number of cores per socket, total number of
|
||||
processors in case of unusual NUMA topology*/
|
||||
unsigned int threads; /* number of threads per core, 1 in case of
|
||||
unusual numa topology */
|
||||
};
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_FIELD_LENGTH:
|
||||
*
|
||||
* Macro providing the field length of virNodeCPUStats
|
||||
*/
|
||||
#define VIR_NODE_CPU_STATS_FIELD_LENGTH 80
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_ALL_CPUS:
|
||||
*
|
||||
* Value for specifying request for the total CPU time/utilization
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_NODE_CPU_STATS_ALL_CPUS = -1,
|
||||
} virNodeGetCPUStatsAllCPUs;
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_KERNEL:
|
||||
*
|
||||
* Macro for the cumulative CPU time which was spent by the kernel,
|
||||
* since the node booting up (in nanoseconds).
|
||||
*/
|
||||
#define VIR_NODE_CPU_STATS_KERNEL "kernel"
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_USER:
|
||||
*
|
||||
* The cumulative CPU time which was spent by user processes,
|
||||
* since the node booting up (in nanoseconds).
|
||||
*/
|
||||
#define VIR_NODE_CPU_STATS_USER "user"
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_IDLE:
|
||||
*
|
||||
* The cumulative idle CPU time,
|
||||
* since the node booting up (in nanoseconds).
|
||||
*/
|
||||
#define VIR_NODE_CPU_STATS_IDLE "idle"
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_IOWAIT:
|
||||
*
|
||||
* The cumulative I/O wait CPU time,
|
||||
* since the node booting up (in nanoseconds).
|
||||
*/
|
||||
#define VIR_NODE_CPU_STATS_IOWAIT "iowait"
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_INTR:
|
||||
*
|
||||
* The cumulative interrupt CPU time,
|
||||
* since the node booting up (in nanoseconds).
|
||||
*/
|
||||
#define VIR_NODE_CPU_STATS_INTR "intr"
|
||||
|
||||
/**
|
||||
* VIR_NODE_CPU_STATS_UTILIZATION:
|
||||
*
|
||||
* The CPU utilization of a node.
|
||||
* The usage value is in percent and 100% represents all CPUs of
|
||||
* the node.
|
||||
*/
|
||||
#define VIR_NODE_CPU_STATS_UTILIZATION "utilization"
|
||||
|
||||
/**
|
||||
* virNodeCPUStats:
|
||||
*
|
||||
* a virNodeCPUStats is a structure filled by virNodeGetCPUStats()
|
||||
* providing information about the CPU stats of the node.
|
||||
*/
|
||||
typedef struct _virNodeCPUStats virNodeCPUStats;
|
||||
|
||||
struct _virNodeCPUStats {
|
||||
char field[VIR_NODE_CPU_STATS_FIELD_LENGTH];
|
||||
unsigned long long value;
|
||||
};
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_FIELD_LENGTH:
|
||||
*
|
||||
* Macro providing the field length of virNodeMemoryStats
|
||||
*/
|
||||
#define VIR_NODE_MEMORY_STATS_FIELD_LENGTH 80
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_ALL_CELLS:
|
||||
*
|
||||
* Value for specifying request for the total memory of all cells.
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_NODE_MEMORY_STATS_ALL_CELLS = -1,
|
||||
} virNodeGetMemoryStatsAllCells;
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_TOTAL:
|
||||
*
|
||||
* Macro for the total memory of specified cell:
|
||||
* it represents the maximum memory.
|
||||
*/
|
||||
#define VIR_NODE_MEMORY_STATS_TOTAL "total"
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_FREE:
|
||||
*
|
||||
* Macro for the free memory of specified cell:
|
||||
* On Linux, it includes buffer and cached memory, in case of
|
||||
* VIR_NODE_MEMORY_STATS_ALL_CELLS.
|
||||
*/
|
||||
#define VIR_NODE_MEMORY_STATS_FREE "free"
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_BUFFERS:
|
||||
*
|
||||
* Macro for the buffer memory: On Linux, it is only returned in case of
|
||||
* VIR_NODE_MEMORY_STATS_ALL_CELLS.
|
||||
*/
|
||||
#define VIR_NODE_MEMORY_STATS_BUFFERS "buffers"
|
||||
|
||||
/**
|
||||
* VIR_NODE_MEMORY_STATS_CACHED:
|
||||
*
|
||||
* Macro for the cached memory: On Linux, it is only returned in case of
|
||||
* VIR_NODE_MEMORY_STATS_ALL_CELLS.
|
||||
*/
|
||||
#define VIR_NODE_MEMORY_STATS_CACHED "cached"
|
||||
|
||||
/**
|
||||
* virNodeMemoryStats:
|
||||
*
|
||||
* a virNodeMemoryStats is a structure filled by virNodeGetMemoryStats()
|
||||
* providing information about the memory of the node.
|
||||
*/
|
||||
typedef struct _virNodeMemoryStats virNodeMemoryStats;
|
||||
|
||||
struct _virNodeMemoryStats {
|
||||
char field[VIR_NODE_MEMORY_STATS_FIELD_LENGTH];
|
||||
unsigned long long value;
|
||||
};
|
||||
|
||||
/*
|
||||
* VIR_NODE_MEMORY_SHARED_PAGES_TO_SCAN:
|
||||
*
|
||||
* Macro for typed parameter that represents how many present pages
|
||||
* to scan before the shared memory service goes to sleep.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_PAGES_TO_SCAN "shm_pages_to_scan"
|
||||
|
||||
/*
|
||||
* VIR_NODE_MEMORY_SHARED_SLEEP_MILLISECS:
|
||||
*
|
||||
* Macro for typed parameter that represents how many milliseconds
|
||||
* the shared memory service should sleep before next scan.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_SLEEP_MILLISECS "shm_sleep_millisecs"
|
||||
|
||||
/*
|
||||
* VIR_NODE_MEMORY_SHARED_PAGES_SHARED:
|
||||
*
|
||||
* Macro for typed parameter that represents how many the shared
|
||||
* memory pages are being used.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_PAGES_SHARED "shm_pages_shared"
|
||||
|
||||
/*
|
||||
* VIR_NODE_MEMORY_SHARED_PAGES_SHARING:
|
||||
*
|
||||
* Macro for typed parameter that represents how many sites are
|
||||
* sharing the pages i.e. how much saved.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_PAGES_SHARING "shm_pages_sharing"
|
||||
|
||||
/* VIR_NODE_MEMORY_SHARED_PAGES_UNSHARED:
|
||||
*
|
||||
* Macro for typed parameter that represents how many pages unique
|
||||
* but repeatedly checked for merging.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_PAGES_UNSHARED "shm_pages_unshared"
|
||||
|
||||
/* VIR_NODE_MEMORY_SHARED_PAGES_VOLATILE:
|
||||
*
|
||||
* Macro for typed parameter that represents how many pages changing
|
||||
* too fast to be placed in a tree.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_PAGES_VOLATILE "shm_pages_volatile"
|
||||
|
||||
/* VIR_NODE_MEMORY_SHARED_FULL_SCAN:
|
||||
*
|
||||
* Macro for typed parameter that represents how many times all
|
||||
* mergeable areas have been scanned.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_FULL_SCANS "shm_full_scans"
|
||||
|
||||
/* VIR_NODE_MEMORY_SHARED_MERGE_ACROSS_NODES:
|
||||
*
|
||||
* Macro for typed parameter that represents whether pages from
|
||||
* different NUMA nodes can be merged. The parameter has type int,
|
||||
* when its value is 0, only pages which physically reside in the
|
||||
* memory area of same NUMA node are merged; When its value is 1,
|
||||
* pages from all nodes can be merged. Other values are reserved
|
||||
* for future use.
|
||||
*/
|
||||
# define VIR_NODE_MEMORY_SHARED_MERGE_ACROSS_NODES "shm_merge_across_nodes"
|
||||
|
||||
|
||||
int virNodeGetMemoryParameters(virConnectPtr conn,
|
||||
virTypedParameterPtr params,
|
||||
int *nparams,
|
||||
unsigned int flags);
|
||||
|
||||
int virNodeSetMemoryParameters(virConnectPtr conn,
|
||||
virTypedParameterPtr params,
|
||||
int nparams,
|
||||
unsigned int flags);
|
||||
|
||||
/*
|
||||
* node CPU map
|
||||
*/
|
||||
int virNodeGetCPUMap(virConnectPtr conn,
|
||||
unsigned char **cpumap,
|
||||
unsigned int *online,
|
||||
unsigned int flags);
|
||||
|
||||
|
||||
/**
|
||||
* VIR_NODEINFO_MAXCPUS:
|
||||
* @nodeinfo: virNodeInfo instance
|
||||
*
|
||||
* This macro is to calculate the total number of CPUs supported
|
||||
* but not necessary active in the host.
|
||||
*/
|
||||
|
||||
|
||||
#define VIR_NODEINFO_MAXCPUS(nodeinfo) ((nodeinfo).nodes*(nodeinfo).sockets*(nodeinfo).cores*(nodeinfo).threads)
|
||||
|
||||
/**
|
||||
* virNodeInfoPtr:
|
||||
*
|
||||
* a virNodeInfoPtr is a pointer to a virNodeInfo structure.
|
||||
*/
|
||||
|
||||
typedef virNodeInfo *virNodeInfoPtr;
|
||||
|
||||
/**
|
||||
* virNodeCPUStatsPtr:
|
||||
*
|
||||
* a virNodeCPUStatsPtr is a pointer to a virNodeCPUStats structure.
|
||||
*/
|
||||
|
||||
typedef virNodeCPUStats *virNodeCPUStatsPtr;
|
||||
|
||||
/**
|
||||
* virNodeMemoryStatsPtr:
|
||||
*
|
||||
* a virNodeMemoryStatsPtr is a pointer to a virNodeMemoryStats structure.
|
||||
*/
|
||||
|
||||
typedef virNodeMemoryStats *virNodeMemoryStatsPtr;
|
||||
|
||||
/**
|
||||
* virConnectFlags
|
||||
*
|
||||
* Flags when opening a connection to a hypervisor
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_CONNECT_RO = (1 << 0), /* A readonly connection */
|
||||
VIR_CONNECT_NO_ALIASES = (1 << 1), /* Don't try to resolve URI aliases */
|
||||
} virConnectFlags;
|
||||
|
||||
|
||||
typedef enum {
|
||||
VIR_CRED_USERNAME = 1, /* Identity to act as */
|
||||
VIR_CRED_AUTHNAME = 2, /* Identify to authorize as */
|
||||
VIR_CRED_LANGUAGE = 3, /* RFC 1766 languages, comma separated */
|
||||
VIR_CRED_CNONCE = 4, /* client supplies a nonce */
|
||||
VIR_CRED_PASSPHRASE = 5, /* Passphrase secret */
|
||||
VIR_CRED_ECHOPROMPT = 6, /* Challenge response */
|
||||
VIR_CRED_NOECHOPROMPT = 7, /* Challenge response */
|
||||
VIR_CRED_REALM = 8, /* Authentication realm */
|
||||
VIR_CRED_EXTERNAL = 9, /* Externally managed credential */
|
||||
|
||||
#ifdef VIR_ENUM_SENTINELS
|
||||
VIR_CRED_LAST /* More may be added - expect the unexpected */
|
||||
#endif
|
||||
} virConnectCredentialType;
|
||||
|
||||
struct _virConnectCredential {
|
||||
int type; /* One of virConnectCredentialType constants */
|
||||
const char *prompt; /* Prompt to show to user */
|
||||
const char *challenge; /* Additional challenge to show */
|
||||
const char *defresult; /* Optional default result */
|
||||
char *result; /* Result to be filled with user response (or defresult) */
|
||||
unsigned int resultlen; /* Length of the result */
|
||||
};
|
||||
|
||||
typedef struct _virConnectCredential virConnectCredential;
|
||||
typedef virConnectCredential *virConnectCredentialPtr;
|
||||
|
||||
|
||||
/**
|
||||
* virConnectAuthCallbackPtr:
|
||||
* @cred: list of virConnectCredential object to fetch from user
|
||||
* @ncred: size of cred list
|
||||
* @cbdata: opaque data passed to virConnectOpenAuth
|
||||
*
|
||||
* When authentication requires one or more interactions, this callback
|
||||
* is invoked. For each interaction supplied, data must be gathered
|
||||
* from the user and filled in to the 'result' and 'resultlen' fields.
|
||||
* If an interaction cannot be filled, fill in NULL and 0.
|
||||
*
|
||||
* Returns 0 if all interactions were filled, or -1 upon error
|
||||
*/
|
||||
typedef int (*virConnectAuthCallbackPtr)(virConnectCredentialPtr cred,
|
||||
unsigned int ncred,
|
||||
void *cbdata);
|
||||
|
||||
struct _virConnectAuth {
|
||||
int *credtype; /* List of supported virConnectCredentialType values */
|
||||
unsigned int ncredtype;
|
||||
|
||||
virConnectAuthCallbackPtr cb; /* Callback used to collect credentials */
|
||||
void *cbdata;
|
||||
};
|
||||
|
||||
|
||||
typedef struct _virConnectAuth virConnectAuth;
|
||||
typedef virConnectAuth *virConnectAuthPtr;
|
||||
|
||||
VIR_EXPORT_VAR virConnectAuthPtr virConnectAuthPtrDefault;
|
||||
|
||||
/**
|
||||
* VIR_UUID_BUFLEN:
|
||||
*
|
||||
* This macro provides the length of the buffer required
|
||||
* for virDomainGetUUID()
|
||||
*/
|
||||
|
||||
#define VIR_UUID_BUFLEN (16)
|
||||
|
||||
/**
|
||||
* VIR_UUID_STRING_BUFLEN:
|
||||
*
|
||||
* This macro provides the length of the buffer required
|
||||
* for virDomainGetUUIDString()
|
||||
*/
|
||||
|
||||
#define VIR_UUID_STRING_BUFLEN (36+1)
|
||||
|
||||
/* library versioning */
|
||||
|
||||
/**
|
||||
|
@ -771,182 +88,8 @@ VIR_EXPORT_VAR virConnectAuthPtr virConnectAuthPtrDefault;
|
|||
#define LIBVIR_CHECK_VERSION(major, minor, micro) \
|
||||
((major) * 1000000 + (minor) * 1000 + (micro) <= LIBVIR_VERSION_NUMBER)
|
||||
|
||||
int virGetVersion (unsigned long *libVer,
|
||||
const char *type,
|
||||
unsigned long *typeVer);
|
||||
|
||||
/*
|
||||
* Connection and disconnections to the Hypervisor
|
||||
*/
|
||||
int virInitialize (void);
|
||||
|
||||
virConnectPtr virConnectOpen (const char *name);
|
||||
virConnectPtr virConnectOpenReadOnly (const char *name);
|
||||
virConnectPtr virConnectOpenAuth (const char *name,
|
||||
virConnectAuthPtr auth,
|
||||
unsigned int flags);
|
||||
int virConnectRef (virConnectPtr conn);
|
||||
int virConnectClose (virConnectPtr conn);
|
||||
const char * virConnectGetType (virConnectPtr conn);
|
||||
int virConnectGetVersion (virConnectPtr conn,
|
||||
unsigned long *hvVer);
|
||||
int virConnectGetLibVersion (virConnectPtr conn,
|
||||
unsigned long *libVer);
|
||||
char * virConnectGetHostname (virConnectPtr conn);
|
||||
char * virConnectGetURI (virConnectPtr conn);
|
||||
char * virConnectGetSysinfo (virConnectPtr conn,
|
||||
unsigned int flags);
|
||||
|
||||
int virConnectSetKeepAlive(virConnectPtr conn,
|
||||
int interval,
|
||||
unsigned int count);
|
||||
|
||||
typedef enum {
|
||||
VIR_CONNECT_CLOSE_REASON_ERROR = 0, /* Misc I/O error */
|
||||
VIR_CONNECT_CLOSE_REASON_EOF = 1, /* End-of-file from server */
|
||||
VIR_CONNECT_CLOSE_REASON_KEEPALIVE = 2, /* Keepalive timer triggered */
|
||||
VIR_CONNECT_CLOSE_REASON_CLIENT = 3, /* Client requested it */
|
||||
|
||||
# ifdef VIR_ENUM_SENTINELS
|
||||
VIR_CONNECT_CLOSE_REASON_LAST
|
||||
# endif
|
||||
} virConnectCloseReason;
|
||||
|
||||
/**
|
||||
* virConnectCloseFunc:
|
||||
* @conn: virConnect connection
|
||||
* @reason: reason why the connection was closed (one of virConnectCloseReason)
|
||||
* @opaque: opaque user data
|
||||
*
|
||||
* A callback function to be registered, and called when the connection
|
||||
* is closed.
|
||||
*/
|
||||
typedef void (*virConnectCloseFunc)(virConnectPtr conn,
|
||||
int reason,
|
||||
void *opaque);
|
||||
|
||||
int virConnectRegisterCloseCallback(virConnectPtr conn,
|
||||
virConnectCloseFunc cb,
|
||||
void *opaque,
|
||||
virFreeCallback freecb);
|
||||
int virConnectUnregisterCloseCallback(virConnectPtr conn,
|
||||
virConnectCloseFunc cb);
|
||||
|
||||
/*
|
||||
* Capabilities of the connection / driver.
|
||||
*/
|
||||
|
||||
int virConnectGetMaxVcpus (virConnectPtr conn,
|
||||
const char *type);
|
||||
int virNodeGetInfo (virConnectPtr conn,
|
||||
virNodeInfoPtr info);
|
||||
char * virConnectGetCapabilities (virConnectPtr conn);
|
||||
|
||||
int virNodeGetCPUStats (virConnectPtr conn,
|
||||
int cpuNum,
|
||||
virNodeCPUStatsPtr params,
|
||||
int *nparams,
|
||||
unsigned int flags);
|
||||
|
||||
int virNodeGetMemoryStats (virConnectPtr conn,
|
||||
int cellNum,
|
||||
virNodeMemoryStatsPtr params,
|
||||
int *nparams,
|
||||
unsigned int flags);
|
||||
|
||||
unsigned long long virNodeGetFreeMemory (virConnectPtr conn);
|
||||
|
||||
int virNodeGetSecurityModel (virConnectPtr conn,
|
||||
virSecurityModelPtr secmodel);
|
||||
|
||||
int virNodeSuspendForDuration (virConnectPtr conn,
|
||||
unsigned int target,
|
||||
unsigned long long duration,
|
||||
unsigned int flags);
|
||||
|
||||
/*
|
||||
* NUMA support
|
||||
*/
|
||||
|
||||
int virNodeGetCellsFreeMemory(virConnectPtr conn,
|
||||
unsigned long long *freeMems,
|
||||
int startCell,
|
||||
int maxCells);
|
||||
|
||||
|
||||
int virConnectIsEncrypted(virConnectPtr conn);
|
||||
int virConnectIsSecure(virConnectPtr conn);
|
||||
int virConnectIsAlive(virConnectPtr conn);
|
||||
|
||||
/*
|
||||
* CPU specification API
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
VIR_CPU_COMPARE_ERROR = -1,
|
||||
VIR_CPU_COMPARE_INCOMPATIBLE = 0,
|
||||
VIR_CPU_COMPARE_IDENTICAL = 1,
|
||||
VIR_CPU_COMPARE_SUPERSET = 2,
|
||||
|
||||
#ifdef VIR_ENUM_SENTINELS
|
||||
VIR_CPU_COMPARE_LAST
|
||||
#endif
|
||||
} virCPUCompareResult;
|
||||
|
||||
typedef enum {
|
||||
VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE = (1 << 0), /* treat incompatible
|
||||
CPUs as failure */
|
||||
} virConnectCompareCPUFlags;
|
||||
|
||||
int virConnectCompareCPU(virConnectPtr conn,
|
||||
const char *xmlDesc,
|
||||
unsigned int flags);
|
||||
|
||||
int virConnectGetCPUModelNames(virConnectPtr conn,
|
||||
const char *arch,
|
||||
char ***models,
|
||||
unsigned int flags);
|
||||
|
||||
/**
|
||||
* virConnectBaselineCPUFlags
|
||||
*
|
||||
* Flags when getting XML description of a computed CPU
|
||||
*/
|
||||
typedef enum {
|
||||
VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES = (1 << 0), /* show all features */
|
||||
} virConnectBaselineCPUFlags;
|
||||
|
||||
char *virConnectBaselineCPU(virConnectPtr conn,
|
||||
const char **xmlCPUs,
|
||||
unsigned int ncpus,
|
||||
unsigned int flags);
|
||||
|
||||
|
||||
int virNodeGetFreePages(virConnectPtr conn,
|
||||
unsigned int npages,
|
||||
unsigned int *pages,
|
||||
int startcell,
|
||||
unsigned int cellcount,
|
||||
unsigned long long *counts,
|
||||
unsigned int flags);
|
||||
|
||||
typedef enum {
|
||||
VIR_NODE_ALLOC_PAGES_ADD = 0, /* Add @pageCounts to the pages pool. This
|
||||
can be used only to size up the pool. */
|
||||
VIR_NODE_ALLOC_PAGES_SET = (1 << 0), /* Don't add @pageCounts, instead set
|
||||
passed number of pages. This can be
|
||||
used to free allocated pages. */
|
||||
} virNodeAllocPagesFlags;
|
||||
|
||||
int virNodeAllocPages(virConnectPtr conn,
|
||||
unsigned int npages,
|
||||
unsigned int *pageSizes,
|
||||
unsigned long long *pageCounts,
|
||||
int startCell,
|
||||
unsigned int cellCount,
|
||||
unsigned int flags);
|
||||
|
||||
#define __VIR_LIBVIRT_H_INCLUDES__
|
||||
#include <libvirt/libvirt-host.h>
|
||||
#include <libvirt/libvirt-domain.h>
|
||||
#include <libvirt/libvirt-domain-snapshot.h>
|
||||
#include <libvirt/libvirt-event.h>
|
||||
|
|
|
@ -2254,6 +2254,7 @@ exit 0
|
|||
%{_includedir}/libvirt/libvirt-domain.h
|
||||
%{_includedir}/libvirt/libvirt-domain-snapshot.h
|
||||
%{_includedir}/libvirt/libvirt-event.h
|
||||
%{_includedir}/libvirt/libvirt-host.h
|
||||
%{_includedir}/libvirt/libvirt-interface.h
|
||||
%{_includedir}/libvirt/libvirt-network.h
|
||||
%{_includedir}/libvirt/libvirt-nodedev.h
|
||||
|
|
|
@ -232,6 +232,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
|
|||
%{mingw32_includedir}/libvirt/libvirt-domain.h
|
||||
%{mingw32_includedir}/libvirt/libvirt-domain-snapshot.h
|
||||
%{mingw32_includedir}/libvirt/libvirt-event.h
|
||||
%{mingw32_includedir}/libvirt/libvirt-host.h
|
||||
%{mingw32_includedir}/libvirt/libvirt-interface.h
|
||||
%{mingw32_includedir}/libvirt/libvirt-network.h
|
||||
%{mingw32_includedir}/libvirt/libvirt-nodedev.h
|
||||
|
@ -305,6 +306,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
|
|||
%{mingw64_includedir}/libvirt/libvirt-domain.h
|
||||
%{mingw64_includedir}/libvirt/libvirt-domain-snapshot.h
|
||||
%{mingw64_includedir}/libvirt/libvirt-event.h
|
||||
%{mingw64_includedir}/libvirt/libvirt-host.h
|
||||
%{mingw64_includedir}/libvirt/libvirt-interface.h
|
||||
%{mingw64_includedir}/libvirt/libvirt-network.h
|
||||
%{mingw64_includedir}/libvirt/libvirt-nodedev.h
|
||||
|
|
Loading…
Reference in New Issue