Re: [libvirt] [PATCH v4 01/13] Adding structure and defines for virDomainSet/GetMemoryParameters

2010-10-12 Thread Daniel Veillard
On Fri, Oct 08, 2010 at 05:44:48PM +0530, Nikunj A. Dadhania wrote:
 From: Nikunj A. Dadhania nik...@linux.vnet.ibm.com
 
 This patch adds a structure virMemoryParameter, it contains the name of the
 parameter and the type of the parameter along with a union.
 
 v4:
 + Add unsigned int flags to the public api for future extensions
 
 v3:
 + Protoype for virDomainGetMemoryParameters and dummy python binding.
 
 v2:
 + Includes dummy python bindings for the library to build cleanly.
 + Define string constants like hard_limit, etc.
 + re-order this patch.

  Okay, looks fine except :

 +/**
 + * virDomainMemoryParameterType:
 + *
 + * A memory parameter field type
 + */
 +typedef enum {
 +VIR_DOMAIN_MEMORY_FIELD_INT = 1, /* integer case */
 +VIR_DOMAIN_MEMORY_FIELD_UINT= 2, /* unsigned integer case */
 +VIR_DOMAIN_MEMORY_FIELD_LLONG   = 3, /* long long case */
 +VIR_DOMAIN_MEMORY_FIELD_ULLONG  = 4, /* unsigned long long case */
 +VIR_DOMAIN_MEMORY_FIELD_DOUBLE  = 5, /* double case */
 +VIR_DOMAIN_MEMORY_FIELD_BOOLEAN = 6  /* boolean(character) case */
 +} virMemoryParameterType;

  I'm renaming those to VIR_DOMAIN_MEMORY_PARAM_INT ... the 'field'
is not an important information, but the fact it's a memory parameter
type is the important point.

[...]
 +typedef virMemoryParameter *virMemoryParameterPtr;
 +
 +/* Set memory tunables for the domain*/
 +int virDomainSetMemoryParameters(virDomainPtr domain,
 +  virMemoryParameterPtr params,
 +  int nparams, unsigned int flags);
 +int virDomainGetMemoryParameters(virDomainPtr domain,
 +  virMemoryParameterPtr params,
 +  int *nparams, unsigned int flags);

I also removed tabs here, we don't use tabs, please use make syntax-check

  otherwise looks fine, ACK,

Daniel

-- 
Daniel Veillard  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
dan...@veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH v4 01/13] Adding structure and defines for virDomainSet/GetMemoryParameters

2010-10-08 Thread Nikunj A. Dadhania
From: Nikunj A. Dadhania nik...@linux.vnet.ibm.com

This patch adds a structure virMemoryParameter, it contains the name of the
parameter and the type of the parameter along with a union.

v4:
+ Add unsigned int flags to the public api for future extensions

v3:
+ Protoype for virDomainGetMemoryParameters and dummy python binding.

v2:
+ Includes dummy python bindings for the library to build cleanly.
+ Define string constants like hard_limit, etc.
+ re-order this patch.

Signed-off-by: Nikunj A. Dadhania nik...@linux.vnet.ibm.com
---
 include/libvirt/libvirt.h.in|   63 +++
 python/generator.py |2 +
 python/libvirt-override-api.xml |   12 +++
 python/libvirt-override.c   |   14 +
 4 files changed, 91 insertions(+), 0 deletions(-)

diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index b45f7ec..75a84fb 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -674,6 +674,69 @@ int virDomainGetInfo
(virDomainPtr domain,
 char *  virDomainGetSchedulerType(virDomainPtr domain,
  int *nparams);
 
+/**
+ * virDomainMemoryParameterType:
+ *
+ * A memory parameter field type
+ */
+typedef enum {
+VIR_DOMAIN_MEMORY_FIELD_INT = 1, /* integer case */
+VIR_DOMAIN_MEMORY_FIELD_UINT= 2, /* unsigned integer case */
+VIR_DOMAIN_MEMORY_FIELD_LLONG   = 3, /* long long case */
+VIR_DOMAIN_MEMORY_FIELD_ULLONG  = 4, /* unsigned long long case */
+VIR_DOMAIN_MEMORY_FIELD_DOUBLE  = 5, /* double case */
+VIR_DOMAIN_MEMORY_FIELD_BOOLEAN = 6  /* boolean(character) case */
+} virMemoryParameterType;
+
+/**
+ * VIR_DOMAIN_MEMORY_FIELD_LENGTH:
+ *
+ * Macro providing the field length of virMemoryParameter
+ */
+
+#define VIR_DOMAIN_MEMORY_FIELD_LENGTH 80
+#define VIR_DOMAIN_MEMORY_HARD_LIMIT hard_limit
+#define VIR_DOMAIN_MEMORY_SOFT_LIMIT soft_limit
+#define VIR_DOMAIN_MEMORY_MIN_GUARANTEE min_guarantee
+#define VIR_DOMAIN_SWAP_HARD_LIMIT swap_hard_limit
+
+/**
+ * virDomainMemoryParameter:
+ *
+ * a virDomainMemoryParameter is the set of scheduler parameters
+ */
+
+typedef struct _virMemoryParameter virMemoryParameter;
+
+struct _virMemoryParameter {
+char field[VIR_DOMAIN_MEMORY_FIELD_LENGTH];  /* parameter name */
+int type;   /* parameter type */
+union {
+int i;  /* data for integer case */
+unsigned int ui;/* data for unsigned integer case */
+long long int l;/* data for long long integer case */
+unsigned long long int ul;  /* data for unsigned long long integer 
case */
+double d;   /* data for double case */
+char b; /* data for char case */
+} value; /* parameter value */
+};
+
+/**
+ * virMemoryParameterPtr:
+ *
+ * a virMemoryParameterPtr is a pointer to a virMemoryParameter structure.
+ */
+
+typedef virMemoryParameter *virMemoryParameterPtr;
+
+/* Set memory tunables for the domain*/
+int virDomainSetMemoryParameters(virDomainPtr domain,
+virMemoryParameterPtr params,
+int nparams, unsigned int flags);
+int virDomainGetMemoryParameters(virDomainPtr domain,
+virMemoryParameterPtr params,
+int *nparams, unsigned int flags);
+
 /*
  * Dynamic control of domains
  */
diff --git a/python/generator.py b/python/generator.py
index d876df6..68009b9 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -306,6 +306,8 @@ skip_impl = (
 'virDomainGetSchedulerType',
 'virDomainGetSchedulerParameters',
 'virDomainSetSchedulerParameters',
+'virDomainSetMemoryParameters',
+'virDomainGetMemoryParameters',
 'virDomainGetVcpus',
 'virDomainPinVcpu',
 'virSecretGetValue',
diff --git a/python/libvirt-override-api.xml b/python/libvirt-override-api.xml
index ca16993..f209608 100644
--- a/python/libvirt-override-api.xml
+++ b/python/libvirt-override-api.xml
@@ -162,6 +162,18 @@
   arg name='domain' type='virDomainPtr' info='pointer to domain object'/
   arg name='params' type='virSchedParameterPtr' info='pointer to 
scheduler parameter objects'/
 /function
+function name='virDomainSetMemoryParameters' file='python'
+  infoChange the memory tunables/info
+  return type='int' info='-1 in case of error, 0 in case of success.'/
+  arg name='domain' type='virDomainPtr' info='pointer to domain object'/
+  arg name='params' type='virMemoryParameterPtr' info='pointer to memory 
tunable objects'/
+/function
+function name='virDomainGetMemoryParameters' file='python'
+  infoGet the memory parameters, the @params array will be filled with 
the values./info
+  return type='int' info='-1 in case of error, 0 in case of success.'/
+  arg name='domain'