mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 09:17:52 +03:00
Add new API virDomainMemoryStats to header and drivers
Set up the types for the domainMemoryStats function and insert it into the virDriver structure definition. Because of static initializers, update every driver and set the new field to NULL. * include/libvirt/libvirt.h.in: new API * src/driver.h src/*/*_driver.c src/vbox/vbox_tmpl.c: add the new entry to the driver structure * python/generator.py: fix compiler errors, the actual python binding is implemented later
This commit is contained in:
parent
7c59337d5d
commit
3a70131312
@ -333,6 +333,55 @@ struct _virDomainInterfaceStats {
|
||||
*/
|
||||
typedef virDomainInterfaceStatsStruct *virDomainInterfaceStatsPtr;
|
||||
|
||||
/**
|
||||
* Memory Statistics Tags:
|
||||
*/
|
||||
typedef enum {
|
||||
/* The total amount of data read from swap space (in kB). */
|
||||
VIR_DOMAIN_MEMORY_STAT_SWAP_IN = 0,
|
||||
/* The total amount of memory written out to swap space (in kB). */
|
||||
VIR_DOMAIN_MEMORY_STAT_SWAP_OUT = 1,
|
||||
|
||||
/*
|
||||
* Page faults occur when a process makes a valid access to virtual memory
|
||||
* that is not available. When servicing the page fault, if disk IO is
|
||||
* required, it is considered a major fault. If not, it is a minor fault.
|
||||
* These are expressed as the number of faults that have occurred.
|
||||
*/
|
||||
VIR_DOMAIN_MEMORY_STAT_MAJOR_FAULT = 2,
|
||||
VIR_DOMAIN_MEMORY_STAT_MINOR_FAULT = 3,
|
||||
|
||||
/*
|
||||
* The amount of memory left completely unused by the system. Memory that
|
||||
* is available but used for reclaimable caches should NOT be reported as
|
||||
* free. This value is expressed in kB.
|
||||
*/
|
||||
VIR_DOMAIN_MEMORY_STAT_UNUSED = 4,
|
||||
|
||||
/*
|
||||
* The total amount of usable memory as seen by the domain. This value
|
||||
* may be less than the amount of memory assigned to the domain if a
|
||||
* balloon driver is in use or if the guest OS does not initialize all
|
||||
* assigned pages. This value is expressed in kB.
|
||||
*/
|
||||
VIR_DOMAIN_MEMORY_STAT_AVAILABLE = 5,
|
||||
|
||||
/*
|
||||
* The number of statistics supported by this version of the interface.
|
||||
* To add new statistics, add them to the enum and increase this value.
|
||||
*/
|
||||
VIR_DOMAIN_MEMORY_STAT_NR = 6,
|
||||
} virDomainMemoryStatTags;
|
||||
|
||||
typedef struct _virDomainMemoryStat virDomainMemoryStatStruct;
|
||||
|
||||
struct _virDomainMemoryStat {
|
||||
int tag;
|
||||
unsigned long long val;
|
||||
};
|
||||
|
||||
typedef virDomainMemoryStatStruct *virDomainMemoryStatPtr;
|
||||
|
||||
|
||||
/* Domain core dump flags. */
|
||||
typedef enum {
|
||||
@ -644,6 +693,10 @@ int virDomainInterfaceStats (virDomainPtr dom,
|
||||
const char *path,
|
||||
virDomainInterfaceStatsPtr stats,
|
||||
size_t size);
|
||||
int virDomainMemoryStats (virDomainPtr dom,
|
||||
virDomainMemoryStatPtr stats,
|
||||
unsigned int nr_stats,
|
||||
unsigned int flags);
|
||||
int virDomainBlockPeek (virDomainPtr dom,
|
||||
const char *path,
|
||||
unsigned long long offset,
|
||||
|
@ -160,7 +160,8 @@ def enum(type, name, value):
|
||||
|
||||
functions_failed = []
|
||||
functions_skipped = [
|
||||
"virConnectListDomains"
|
||||
"virConnectListDomains",
|
||||
"virDomainMemoryStats"
|
||||
]
|
||||
|
||||
skipped_modules = {
|
||||
@ -170,6 +171,7 @@ skipped_types = {
|
||||
# 'int *': "usually a return type",
|
||||
'virConnectDomainEventCallback': "No function types in python",
|
||||
'virEventAddHandleFunc': "No function types in python",
|
||||
'virDomainMemoryStatPtr': "Not implemented yet",
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
|
@ -228,6 +228,12 @@ typedef int
|
||||
const char *path,
|
||||
struct _virDomainInterfaceStats *stats);
|
||||
|
||||
typedef int
|
||||
(*virDrvDomainMemoryStats)
|
||||
(virDomainPtr domain,
|
||||
struct _virDomainMemoryStat *stats,
|
||||
unsigned int nr_stats);
|
||||
|
||||
typedef int
|
||||
(*virDrvDomainBlockPeek)
|
||||
(virDomainPtr domain,
|
||||
@ -424,6 +430,7 @@ struct _virDriver {
|
||||
virDrvDomainMigrateFinish domainMigrateFinish;
|
||||
virDrvDomainBlockStats domainBlockStats;
|
||||
virDrvDomainInterfaceStats domainInterfaceStats;
|
||||
virDrvDomainMemoryStats domainMemoryStats;
|
||||
virDrvDomainBlockPeek domainBlockPeek;
|
||||
virDrvDomainMemoryPeek domainMemoryPeek;
|
||||
virDrvNodeGetCellsFreeMemory nodeGetCellsFreeMemory;
|
||||
|
@ -3437,6 +3437,7 @@ static virDriver esxDriver = {
|
||||
esxDomainMigrateFinish, /* domainMigrateFinish */
|
||||
NULL, /* domainBlockStats */
|
||||
NULL, /* domainInterfaceStats */
|
||||
NULL, /* domainMemoryStats */
|
||||
NULL, /* domainBlockPeek */
|
||||
NULL, /* domainMemoryPeek */
|
||||
NULL, /* nodeGetCellsFreeMemory */
|
||||
|
@ -2438,6 +2438,7 @@ static virDriver lxcDriver = {
|
||||
NULL, /* domainMigrateFinish */
|
||||
NULL, /* domainBlockStats */
|
||||
lxcDomainInterfaceStats, /* domainInterfaceStats */
|
||||
NULL, /* domainMemoryStats */
|
||||
NULL, /* domainBlockPeek */
|
||||
NULL, /* domainMemoryPeek */
|
||||
nodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
|
||||
|
@ -765,6 +765,7 @@ static virDriver oneDriver = {
|
||||
NULL, /* domainMigrateFinish */
|
||||
NULL, /* domainBlockStats */
|
||||
NULL, /* domainInterfaceStats */
|
||||
NULL, /* domainMemoryStats */
|
||||
NULL, /* domainBlockPeek */
|
||||
NULL, /* domainMemoryPeek */
|
||||
NULL, /* nodeGetCellsFreeMemory */
|
||||
|
@ -1517,6 +1517,7 @@ static virDriver openvzDriver = {
|
||||
NULL, /* domainMigrateFinish */
|
||||
NULL, /* domainBlockStats */
|
||||
NULL, /* domainInterfaceStats */
|
||||
NULL, /* domainMemoryStats */
|
||||
NULL, /* domainBlockPeek */
|
||||
NULL, /* domainMemoryPeek */
|
||||
NULL, /* nodeGetCellsFreeMemory */
|
||||
|
@ -1633,6 +1633,7 @@ virDriver phypDriver = {
|
||||
NULL, /* domainMigrateFinish */
|
||||
NULL, /* domainBlockStats */
|
||||
NULL, /* domainInterfaceStats */
|
||||
NULL, /* domainMemoryStats */
|
||||
NULL, /* domainBlockPeek */
|
||||
NULL, /* domainMemoryPeek */
|
||||
NULL, /* nodeGetCellsFreeMemory */
|
||||
|
@ -7930,6 +7930,7 @@ static virDriver qemuDriver = {
|
||||
NULL, /* domainMigrateFinish */
|
||||
qemudDomainBlockStats, /* domainBlockStats */
|
||||
qemudDomainInterfaceStats, /* domainInterfaceStats */
|
||||
NULL, /* domainMemoryStats */
|
||||
qemudDomainBlockPeek, /* domainBlockPeek */
|
||||
qemudDomainMemoryPeek, /* domainMemoryPeek */
|
||||
nodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
|
||||
|
@ -8841,6 +8841,7 @@ static virDriver remote_driver = {
|
||||
remoteDomainMigrateFinish, /* domainMigrateFinish */
|
||||
remoteDomainBlockStats, /* domainBlockStats */
|
||||
remoteDomainInterfaceStats, /* domainInterfaceStats */
|
||||
NULL, /* domainMemoryStats */
|
||||
remoteDomainBlockPeek, /* domainBlockPeek */
|
||||
remoteDomainMemoryPeek, /* domainMemoryPeek */
|
||||
remoteNodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
|
||||
|
@ -5220,6 +5220,7 @@ static virDriver testDriver = {
|
||||
NULL, /* domainMigrateFinish */
|
||||
testDomainBlockStats, /* domainBlockStats */
|
||||
testDomainInterfaceStats, /* domainInterfaceStats */
|
||||
NULL, /* domainMemoryStats */
|
||||
NULL, /* domainBlockPeek */
|
||||
NULL, /* domainMemoryPeek */
|
||||
testNodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
|
||||
|
@ -1906,6 +1906,7 @@ static virDriver umlDriver = {
|
||||
NULL, /* domainMigrateFinish */
|
||||
NULL, /* domainBlockStats */
|
||||
NULL, /* domainInterfaceStats */
|
||||
NULL, /* domainMemoryStats */
|
||||
umlDomainBlockPeek, /* domainBlockPeek */
|
||||
NULL, /* domainMemoryPeek */
|
||||
nodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
|
||||
|
@ -7028,6 +7028,7 @@ virDriver NAME(Driver) = {
|
||||
NULL, /* domainMigrateFinish */
|
||||
NULL, /* domainBlockStats */
|
||||
NULL, /* domainInterfaceStats */
|
||||
NULL, /* domainMemoryStats */
|
||||
NULL, /* domainBlockPeek */
|
||||
NULL, /* domainMemoryPeek */
|
||||
nodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
|
||||
|
@ -1844,6 +1844,7 @@ static virDriver xenUnifiedDriver = {
|
||||
xenUnifiedDomainMigrateFinish, /* domainMigrateFinish */
|
||||
xenUnifiedDomainBlockStats, /* domainBlockStats */
|
||||
xenUnifiedDomainInterfaceStats, /* domainInterfaceStats */
|
||||
NULL, /* domainMemoryStats */
|
||||
xenUnifiedDomainBlockPeek, /* domainBlockPeek */
|
||||
NULL, /* domainMemoryPeek */
|
||||
xenUnifiedNodeGetCellsFreeMemory, /* nodeGetCellsFreeMemory */
|
||||
|
Loading…
Reference in New Issue
Block a user