From: Wei Liu <wei.liu2@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>, Wei Liu <wei.liu2@citrix.com>
Subject: [PATCH v4 1/5] libxl: constify copy and length calculation functions
Date: Mon, 11 Jul 2016 16:49:33 +0100 [thread overview]
Message-ID: <1468252177-12625-2-git-send-email-wei.liu2@citrix.com> (raw)
In-Reply-To: <1468252177-12625-1-git-send-email-wei.liu2@citrix.com>
These functions are not supposed to modify the passed in parameters.
Reflect that in function declarations.
Mark the change in APIs in libxl.h
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
---
tools/libxl/gentypes.py | 4 ++--
tools/libxl/libxl.c | 10 +++++-----
tools/libxl/libxl.h | 23 +++++++++++++++--------
tools/libxl/libxl_cpuid.c | 4 ++--
tools/libxl/libxl_genid.c | 2 +-
tools/libxl/libxl_internal.h | 2 +-
tools/libxl/libxl_utils.c | 2 +-
tools/libxl/libxl_utils.h | 2 +-
8 files changed, 28 insertions(+), 21 deletions(-)
diff --git a/tools/libxl/gentypes.py b/tools/libxl/gentypes.py
index 00816c0..4ea7091 100644
--- a/tools/libxl/gentypes.py
+++ b/tools/libxl/gentypes.py
@@ -544,7 +544,7 @@ if __name__ == '__main__':
if ty.dispose_fn is not None:
f.write("%svoid %s(%s);\n" % (ty.hidden(), ty.dispose_fn, ty.make_arg("p")))
if ty.copy_fn is not None:
- f.write("%svoid %s(libxl_ctx *ctx, %s, %s);\n" % (ty.hidden(), ty.copy_fn,
+ f.write("%svoid %s(libxl_ctx *ctx, %s, const %s);\n" % (ty.hidden(), ty.copy_fn,
ty.make_arg("dst"), ty.make_arg("src")))
if ty.init_fn is not None:
f.write("%svoid %s(%s);\n" % (ty.hidden(), ty.init_fn, ty.make_arg("p")))
@@ -649,7 +649,7 @@ if __name__ == '__main__':
f.write("\n")
for ty in [t for t in types if t.copy_fn and t.autogenerate_copy_fn]:
- f.write("void %s(libxl_ctx *ctx, %s, %s)\n" % (ty.copy_fn,
+ f.write("void %s(libxl_ctx *ctx, %s, const %s)\n" % (ty.copy_fn,
ty.make_arg("dst", passby=idl.PASS_BY_REFERENCE),
ty.make_arg("src", passby=idl.PASS_BY_REFERENCE)))
f.write("{\n")
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 1c81239..0c34d6b 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -234,7 +234,7 @@ void libxl_string_list_dispose(libxl_string_list *psl)
void libxl_string_list_copy(libxl_ctx *ctx,
libxl_string_list *dst,
- libxl_string_list *src)
+ const libxl_string_list *src)
{
GC_INIT(ctx);
int i, len;
@@ -266,7 +266,7 @@ int libxl_string_list_length(const libxl_string_list *psl)
return i;
}
-int libxl_key_value_list_length(libxl_key_value_list *pkvl)
+int libxl_key_value_list_length(const libxl_key_value_list *pkvl)
{
int i = 0;
libxl_key_value_list kvl = *pkvl;
@@ -301,7 +301,7 @@ void libxl_key_value_list_dispose(libxl_key_value_list *pkvl)
void libxl_key_value_list_copy(libxl_ctx *ctx,
libxl_key_value_list *dst,
- libxl_key_value_list *src)
+ const libxl_key_value_list *src)
{
GC_INIT(ctx);
int i, len;
@@ -7227,7 +7227,7 @@ out_err:
}
-void libxl_hwcap_copy(libxl_ctx *ctx,libxl_hwcap *dst, libxl_hwcap *src)
+void libxl_hwcap_copy(libxl_ctx *ctx,libxl_hwcap *dst, const libxl_hwcap *src)
{
int i;
@@ -7235,7 +7235,7 @@ void libxl_hwcap_copy(libxl_ctx *ctx,libxl_hwcap *dst, libxl_hwcap *src)
(*dst)[i] = (*src)[i];
}
-void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, libxl_mac *src)
+void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, const libxl_mac *src)
{
int i;
diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
index 2c0f868..f2843fd 100644
--- a/tools/libxl/libxl.h
+++ b/tools/libxl/libxl.h
@@ -67,6 +67,13 @@
* the same $(XEN_VERSION) (e.g. throughout a major release).
*/
+/* LIBXL_HAVE_CONST_COPY_AND_LENGTH_FUNCTIONS
+ *
+ * If this is defined, the copy functions have constified src parameter and the
+ * length functions accept constified parameter.
+ */
+#define LIBXL_HAVE_CONST_COPY_AND_LENGTH_FUNCTIONS 1
+
/* LIBXL_HAVE_VNUMA
*
* If this is defined the type libxl_vnode_info exists, and a
@@ -839,7 +846,7 @@ typedef uint8_t libxl_mac[6];
#define LIBXL_MAC_FMT "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx"
#define LIBXL_MAC_FMTLEN ((2*6)+5) /* 6 hex bytes plus 5 colons */
#define LIBXL_MAC_BYTES(mac) mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]
-void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, libxl_mac *src);
+void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, const libxl_mac *src);
#if defined(__i386__) || defined(__x86_64__)
/*
@@ -962,17 +969,17 @@ typedef char **libxl_string_list;
void libxl_string_list_dispose(libxl_string_list *sl);
int libxl_string_list_length(const libxl_string_list *sl);
void libxl_string_list_copy(libxl_ctx *ctx, libxl_string_list *dst,
- libxl_string_list *src);
+ const libxl_string_list *src);
typedef char **libxl_key_value_list;
void libxl_key_value_list_dispose(libxl_key_value_list *kvl);
-int libxl_key_value_list_length(libxl_key_value_list *kvl);
+int libxl_key_value_list_length(const libxl_key_value_list *kvl);
void libxl_key_value_list_copy(libxl_ctx *ctx,
libxl_key_value_list *dst,
- libxl_key_value_list *src);
+ const libxl_key_value_list *src);
typedef uint32_t libxl_hwcap[8];
-void libxl_hwcap_copy(libxl_ctx *ctx, libxl_hwcap *dst, libxl_hwcap *src);
+void libxl_hwcap_copy(libxl_ctx *ctx, libxl_hwcap *dst, const libxl_hwcap *src);
typedef uint64_t libxl_ev_user;
@@ -990,10 +997,10 @@ void libxl_bitmap_dispose(libxl_bitmap *map);
typedef struct libxl__cpuid_policy libxl_cpuid_policy;
typedef libxl_cpuid_policy * libxl_cpuid_policy_list;
void libxl_cpuid_dispose(libxl_cpuid_policy_list *cpuid_list);
-int libxl_cpuid_policy_list_length(libxl_cpuid_policy_list *l);
+int libxl_cpuid_policy_list_length(const libxl_cpuid_policy_list *l);
void libxl_cpuid_policy_list_copy(libxl_ctx *ctx,
libxl_cpuid_policy_list *dst,
- libxl_cpuid_policy_list *src);
+ const libxl_cpuid_policy_list *src);
#define LIBXL_PCI_FUNC_ALL (~0U)
@@ -2004,7 +2011,7 @@ int libxl_flask_loadpolicy(libxl_ctx *ctx, void *policy, uint32_t size);
int libxl_ms_vm_genid_generate(libxl_ctx *ctx, libxl_ms_vm_genid *id);
bool libxl_ms_vm_genid_is_zero(const libxl_ms_vm_genid *id);
void libxl_ms_vm_genid_copy(libxl_ctx *ctx, libxl_ms_vm_genid *dst,
- libxl_ms_vm_genid *src);
+ const libxl_ms_vm_genid *src);
#ifdef LIBXL_HAVE_PSR_CMT
int libxl_psr_cmt_attach(libxl_ctx *ctx, uint32_t domid);
diff --git a/tools/libxl/libxl_cpuid.c b/tools/libxl/libxl_cpuid.c
index fc20157..24591e2 100644
--- a/tools/libxl/libxl_cpuid.c
+++ b/tools/libxl/libxl_cpuid.c
@@ -465,7 +465,7 @@ int libxl__cpuid_policy_list_parse_json(libxl__gc *gc,
return 0;
}
-int libxl_cpuid_policy_list_length(libxl_cpuid_policy_list *pl)
+int libxl_cpuid_policy_list_length(const libxl_cpuid_policy_list *pl)
{
int i = 0;
libxl_cpuid_policy_list l = *pl;
@@ -480,7 +480,7 @@ int libxl_cpuid_policy_list_length(libxl_cpuid_policy_list *pl)
void libxl_cpuid_policy_list_copy(libxl_ctx *ctx,
libxl_cpuid_policy_list *dst,
- libxl_cpuid_policy_list *src)
+ const libxl_cpuid_policy_list *src)
{
GC_INIT(ctx);
int i, j, len;
diff --git a/tools/libxl/libxl_genid.c b/tools/libxl/libxl_genid.c
index f1c4eb7..7f52356 100644
--- a/tools/libxl/libxl_genid.c
+++ b/tools/libxl/libxl_genid.c
@@ -52,7 +52,7 @@ bool libxl_ms_vm_genid_is_zero(const libxl_ms_vm_genid *id)
}
void libxl_ms_vm_genid_copy(libxl_ctx *ctx, libxl_ms_vm_genid *dst,
- libxl_ms_vm_genid *src)
+ const libxl_ms_vm_genid *src)
{
memcpy(dst, src, LIBXL_MS_VM_GENID_LEN);
}
diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
index e7ab85d..de77579 100644
--- a/tools/libxl/libxl_internal.h
+++ b/tools/libxl/libxl_internal.h
@@ -4095,7 +4095,7 @@ void libxl__update_domain_configuration(libxl__gc *gc,
const libxl_domain_config *src);
static inline void libxl__update_config_nic(libxl__gc *gc,
libxl_device_nic *dst,
- libxl_device_nic *src)
+ const libxl_device_nic *src)
{
dst->devid = src->devid;
dst->nictype = src->nictype;
diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c
index 6108d4b..1607d4f 100644
--- a/tools/libxl/libxl_utils.c
+++ b/tools/libxl/libxl_utils.c
@@ -1271,7 +1271,7 @@ int libxl_domid_valid_guest(uint32_t domid)
return domid > 0 && domid < DOMID_FIRST_RESERVED;
}
-void libxl_string_copy(libxl_ctx *ctx, char **dst, char **src)
+void libxl_string_copy(libxl_ctx *ctx, char **dst, char * const*src)
{
GC_INIT(ctx);
diff --git a/tools/libxl/libxl_utils.h b/tools/libxl/libxl_utils.h
index 4495417..25773d8 100644
--- a/tools/libxl/libxl_utils.h
+++ b/tools/libxl/libxl_utils.h
@@ -167,7 +167,7 @@ int libxl_cpumap_to_nodemap(libxl_ctx *ctx,
return (s + 1023) / 1024;
}
-void libxl_string_copy(libxl_ctx *ctx, char **dst, char **src);
+void libxl_string_copy(libxl_ctx *ctx, char **dst, char * const*src);
#define LIBXL_FILLZERO(object) (memset(&(object), 0, sizeof((object))))
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-07-11 15:49 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-11 15:49 [PATCH v4 0/5] libxl: update available vcpus map in retrieved configuration Wei Liu
2016-07-11 15:49 ` Wei Liu [this message]
2016-07-11 15:52 ` [PATCH v4 1/5] libxl: constify copy and length calculation functions Ian Jackson
2016-07-11 15:49 ` [PATCH v4 2/5] libxl: libxl_domain_need_memory shouldn't modify b_info Wei Liu
2016-07-11 15:52 ` Ian Jackson
2016-07-11 15:49 ` [PATCH v4 3/5] libxl: introduce libxl__qmp_query_cpus Wei Liu
2016-07-11 15:49 ` [PATCH v4 4/5] libxl: update vcpus bitmap in retrieved guest config Wei Liu
2016-07-11 15:56 ` Ian Jackson
2016-07-11 16:24 ` Wei Liu
2016-07-11 16:38 ` Ian Jackson
2016-07-11 15:49 ` [PATCH v4 5/5] libxl: only issue cpu-add call to QEMU for not present CPU Wei Liu
2016-07-11 15:56 ` Ian Jackson
2016-07-12 13:40 ` [PATCH v4 0/5] libxl: update available vcpus map in retrieved configuration Wei Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1468252177-12625-2-git-send-email-wei.liu2@citrix.com \
--to=wei.liu2@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).