Hi Andrew,
On 26/03/2020 14:53, Andrew Cooper wrote:
On 21/03/2020 22:19, Julien Grall wrote:
diff --git a/xen/include/xen/xmalloc.h b/xen/include/xen/xmalloc.h
index f515ceee2a..16979a117c 100644
--- a/xen/include/xen/xmalloc.h
+++ b/xen/include/xen/xmalloc.h
@@ -51,6 +51,17 @@
#define xmalloc_bytes(_bytes) _xmalloc(_bytes, SMP_CACHE_BYTES)
#define xzalloc_bytes(_bytes) _xzalloc(_bytes, SMP_CACHE_BYTES)
+/* Allocate untyped storage and copying an existing instance. */
+#define xmemdup_bytes(_src, _nr) \
+ ({ \
+ unsigned long nr_ = (_nr); \
+ void *dst_ = xmalloc_bytes(nr_); \
The nr_ vs _nr is really confusing to read. Could you re-implement the
function as a static inline?
I'd really prefer to, but sadly not.
That requires untangling headers sufficiently so we can include
string.h, to be able to use memcpy. I don't have time at the moment to
sort that out.
Ok :(. We will have to live with the macro for the time being then.
Acked-by: Julien Grall <jgr...@amazon.com>
Cheers,
--
Julien Grall