📄 libvirt.h
字号:
* from the user and filled in to the 'result' and 'resultlen' fields. * If an interaction can not be filled, fill in NULL and 0. * * Return 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;extern 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 *//** * LIBVIR_VERSION_NUMBER: * * Macro providing the version of the library as * version * 1,000,000 + minor * 1000 + micro */#define LIBVIR_VERSION_NUMBER 4006int 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, int flags);int virConnectClose (virConnectPtr conn);const char * virConnectGetType (virConnectPtr conn);int virConnectGetVersion (virConnectPtr conn, unsigned long *hvVer);char * virConnectGetHostname (virConnectPtr conn);char * virConnectGetURI (virConnectPtr conn);/* * Capabilities of the connection / driver. */int virConnectGetMaxVcpus (virConnectPtr conn, const char *type);int virNodeGetInfo (virConnectPtr conn, virNodeInfoPtr info);char * virConnectGetCapabilities (virConnectPtr conn);unsigned long long virNodeGetFreeMemory (virConnectPtr conn);/* * Gather list of running domains */int virConnectListDomains (virConnectPtr conn, int *ids, int maxids);/* * Number of domains */int virConnectNumOfDomains (virConnectPtr conn);/* * Get connection from domain. */virConnectPtr virDomainGetConnect (virDomainPtr domain);/* * Domain creation and destruction */virDomainPtr virDomainCreateLinux (virConnectPtr conn, const char *xmlDesc, unsigned int flags);virDomainPtr virDomainLookupByName (virConnectPtr conn, const char *name);virDomainPtr virDomainLookupByID (virConnectPtr conn, int id);virDomainPtr virDomainLookupByUUID (virConnectPtr conn, const unsigned char *uuid);virDomainPtr virDomainLookupByUUIDString (virConnectPtr conn, const char *uuid);int virDomainShutdown (virDomainPtr domain);int virDomainReboot (virDomainPtr domain, unsigned int flags);int virDomainDestroy (virDomainPtr domain);int virDomainFree (virDomainPtr domain);/* * Domain suspend/resume */int virDomainSuspend (virDomainPtr domain);int virDomainResume (virDomainPtr domain);/* * Domain save/restore */int virDomainSave (virDomainPtr domain, const char *to);int virDomainRestore (virConnectPtr conn, const char *from);/* * Domain core dump */int virDomainCoreDump (virDomainPtr domain, const char *to, int flags);/* * Domain runtime information */int virDomainGetInfo (virDomainPtr domain, virDomainInfoPtr info);/* * Return scheduler type in effect 'sedf', 'credit', 'linux' */char * virDomainGetSchedulerType(virDomainPtr domain, int *nparams);/* * Dynamic control of domains */const char * virDomainGetName (virDomainPtr domain);unsigned int virDomainGetID (virDomainPtr domain);int virDomainGetUUID (virDomainPtr domain, unsigned char *uuid);int virDomainGetUUIDString (virDomainPtr domain, char *buf);char * virDomainGetOSType (virDomainPtr domain);unsigned long virDomainGetMaxMemory (virDomainPtr domain);int virDomainSetMaxMemory (virDomainPtr domain, unsigned long memory);int virDomainSetMemory (virDomainPtr domain, unsigned long memory);int virDomainGetMaxVcpus (virDomainPtr domain);/* * XML domain description *//** * virDomainXMLFlags: * * Flags available for virDomainGetXMLDesc */typedef enum { VIR_DOMAIN_XML_SECURE = 1, /* dump security sensitive information too */ VIR_DOMAIN_XML_INACTIVE = 2/* dump inactive domain information */} virDomainXMLFlags;char * virDomainGetXMLDesc (virDomainPtr domain, int flags);int virDomainBlockStats (virDomainPtr dom, const char *path, virDomainBlockStatsPtr stats, size_t size);int virDomainInterfaceStats (virDomainPtr dom, const char *path, virDomainInterfaceStatsPtr stats, size_t size);int virDomainBlockPeek (virDomainPtr dom, const char *path, unsigned long long offset, size_t size, void *buffer, unsigned int flags);/* Memory peeking flags. */typedef enum { VIR_MEMORY_VIRTUAL = 1, /* addresses are virtual addresses */} virDomainMemoryFlags;int virDomainMemoryPeek (virDomainPtr dom, unsigned long long start, size_t size, void *buffer, unsigned int flags);/* * defined but not running domains */virDomainPtr virDomainDefineXML (virConnectPtr conn, const char *xml);int virDomainUndefine (virDomainPtr domain);int virConnectNumOfDefinedDomains (virConnectPtr conn);int virConnectListDefinedDomains (virConnectPtr conn, char **const names, int maxnames);int virDomainCreate (virDomainPtr domain);int virDomainGetAutostart (virDomainPtr domain, int *autostart);int virDomainSetAutostart (virDomainPtr domain, int autostart);/** * virVcpuInfo: structure for information about a virtual CPU in a domain. */typedef enum { VIR_VCPU_OFFLINE = 0, /* the virtual CPU is offline */ VIR_VCPU_RUNNING = 1, /* the virtual CPU is running */ VIR_VCPU_BLOCKED = 2, /* the virtual CPU is blocked on resource */} virVcpuState;typedef struct _virVcpuInfo virVcpuInfo;struct _virVcpuInfo { unsigned int number; /* virtual CPU number */ int state; /* value from virVcpuState */ unsigned long long cpuTime; /* CPU time used, in nanoseconds */ int cpu; /* real CPU number, or -1 if offline */};typedef virVcpuInfo *virVcpuInfoPtr;int virDomainSetVcpus (virDomainPtr domain, unsigned int nvcpus);int virDomainPinVcpu (virDomainPtr domain, unsigned int vcpu, unsigned char *cpumap, int maplen);/** * VIR_USE_CPU: * @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT) * @cpu: the physical CPU number * * This macro is to be used in conjunction with virDomainPinVcpu() API. * USE_CPU macro set the bit (CPU usable) of the related cpu in cpumap. */#define VIR_USE_CPU(cpumap,cpu) (cpumap[(cpu)/8] |= (1<<((cpu)%8)))/** * VIR_UNUSE_CPU: * @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT) * @cpu: the physical CPU number * * This macro is to be used in conjunction with virDomainPinVcpu() API. * USE_CPU macro reset the bit (CPU not usable) of the related cpu in cpumap. */#define VIR_UNUSE_CPU(cpumap,cpu) (cpumap[(cpu)/8] &= ~(1<<((cpu)%8)))/** * VIR_CPU_MAPLEN: * @cpu: number of physical CPUs * * This macro is to be used in conjunction with virDomainPinVcpu() API. * It returns the length (in bytes) required to store the complete * CPU map between a single virtual & all physical CPUs of a domain. */#define VIR_CPU_MAPLEN(cpu) (((cpu)+7)/8)int virDomainGetVcpus (virDomainPtr domain, virVcpuInfoPtr info, int maxinfo, unsigned char *cpumaps, int maplen);/** * VIR_CPU_USABLE: * @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN) * @maplen: the length (in bytes) of one cpumap * @vcpu: the virtual CPU number * @cpu: the physical CPU number * * This macro is to be used in conjunction with virDomainGetVcpus() API. * VIR_CPU_USABLE macro returns a non zero value (true) if the cpu * is usable by the vcpu, and 0 otherwise. */#define VIR_CPU_USABLE(cpumaps,maplen,vcpu,cpu) \ (cpumaps[((vcpu)*(maplen))+((cpu)/8)] & (1<<((cpu)%8)))/** * VIR_COPY_CPUMAP: * @cpumaps: pointer to an array of cpumap (in 8-bit bytes) (IN) * @maplen: the length (in bytes) of one cpumap * @vcpu: the virtual CPU number * @cpumap: pointer to a cpumap (in 8-bit bytes) (OUT) * This cpumap must be previously allocated by the caller * (ie: malloc(maplen)) * * This macro is to be used in conjunction with virDomainGetVcpus() and * virDomainPinVcpu() APIs. VIR_COPY_CPUMAP macro extract the cpumap of * the specified vcpu from cpumaps array and copy it into cpumap to be used * later by virDomainPinVcpu() API. */#define VIR_COPY_CPUMAP(cpumaps,maplen,vcpu,cpumap) \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -