virNodeGetMemoryStats: Expose new API Signed-off-by: Minoru Usui <usui@xxxxxxxxxxxxxxxxx> --- include/libvirt/libvirt.h.in | 78 ++++++++++++++++++++++++++++++++++++++++++ src/libvirt_public.syms | 1 + 2 files changed, 79 insertions(+), 0 deletions(-) diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in index 43e59a7..885db25 100644 --- a/include/libvirt/libvirt.h.in +++ b/include/libvirt/libvirt.h.in @@ -339,6 +339,70 @@ struct _virCPUStats { unsigned long long value; }; +/** + * VIR_MEMORY_STATS_FIELD_LENGTH: + * + * Macro providing the field length of virMemoryStats + */ +#define VIR_MEMORY_STATS_FIELD_LENGTH 80 + +/** + * VIR_MEMORY_STATS_ALL_CELLS: + * + * Macro for the total memory of all cells. + */ +#define VIR_MEMORY_STATS_ALL_CELLS -1 + +/** + * VIR_MEMORY_STATS_TOTAL: + * + * Macro for the total memory of specified cell: + * it represents the maximum memory. + */ + +#define VIR_MEMORY_STATS_TOTAL "total" + +/** + * VIR_MEMORY_STATS_FREE: + * + * Macro for the free memory of specified cell: + * On linux, it includes buffer and cached memory, in case of + * VIR_MEMORY_STATS_ALL_CELLS. + */ + +#define VIR_MEMORY_STATS_FREE "free" + +/** + * VIR_MEMORY_STATS_BUFFERS: + * + * Macro for the buffer memory: On linux, it only returns in case of + * VIR_MEMORY_STATS_ALL_CELLS. + */ + +#define VIR_MEMORY_STATS_BUFFERS "buffers" + +/** + * VIR_MEMORY_STATS_CACHED: + * + * Macro for the cached memory: On linux, it only returns in case of + * VIR_MEMORY_STATS_ALL_CELLS. + */ + +#define VIR_MEMORY_STATS_CACHED "cached" + +/** + * virMemoryStats: + * + * a virMemoryStats is a structure filled by virNodeGetMemoryStats() + * and providing the information of the memory of the Node. + */ + +typedef struct _virMemoryStats virMemoryStats; + +struct _virMemoryStats { + char field[VIR_MEMORY_STATS_FIELD_LENGTH]; + unsigned long long value; +}; /* Common data types shared among interfaces with name/type/value lists. */ @@ -611,6 +675,14 @@ typedef virNodeInfo *virNodeInfoPtr; typedef virCPUStats *virCPUStatsPtr; /** + * virMemoryStatsPtr: + * + * a virMemoryStatsPtr is a pointer to a virMemoryStats structure. + */ + +typedef virMemoryStats *virMemoryStatsPtr; + +/** * virConnectFlags * * Flags when opening a connection to a hypervisor @@ -750,6 +822,12 @@ int virNodeGetCPUStats (virConnectPtr conn, int *nparams, unsigned int flags); +int virNodeGetMemoryStats (virConnectPtr conn, + int cellNum, + virCPUStatsPtr params, + int *nparams, + unsigned int flags); + unsigned long long virNodeGetFreeMemory (virConnectPtr conn); int virNodeGetSecurityModel (virConnectPtr conn, diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms index 271b8e3..3aadc6f 100644 --- a/src/libvirt_public.syms +++ b/src/libvirt_public.syms @@ -453,6 +453,7 @@ LIBVIRT_0.9.2 { LIBVIRT_0.9.3 { global: virNodeGetCPUStats; + virNodeGetMemoryStats; } LIBVIRT_0.9.2; # .... define new API here using predicted next version number .... -- 1.7.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list