have __DEFINE_COMPAT_HANDLE() generate const versions
authorRazvan Cojocaru <rcojocaru@bitdefender.com>
Mon, 5 Sep 2016 10:47:46 +0000 (12:47 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 5 Sep 2016 10:47:46 +0000 (12:47 +0200)
Both DEFINE_XEN_GUEST_HANDLE() and __DEFINE_XEN_GUEST_HANDLE()
each produce both const and non-const handles,
only DEFINE_COMPAT_HANDLE() does (__DEFINE_COMPAT_HANDLE()
does not). This patch has __DEFINE_COMPAT_HANDLE() also
produce a const handle.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Razvan Cojocaru <rcojocaru@bitdefender.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
xen/include/xen/compat.h

index 3f4cef6088fe0b51f10445f0ea1c13f242de968b..ce913ac292b74e2bb57fd16dc5b6eee7e3deddb1 100644 (file)
     typedef struct { \
         compat_ptr_t c; \
         type *_[0] __packed; \
-    } __compat_handle_ ## name
+    } __compat_handle_ ## name; \
+    typedef struct { \
+        compat_ptr_t c; \
+        const type *_[0] __packed; \
+    } __compat_handle_const_ ## name
 
 #define DEFINE_COMPAT_HANDLE(name) \
-    __DEFINE_COMPAT_HANDLE(name, name); \
-    __DEFINE_COMPAT_HANDLE(const_ ## name, const name)
+    __DEFINE_COMPAT_HANDLE(name, name)
 #define COMPAT_HANDLE(name)          __compat_handle_ ## name
 
 /* NB: it is assumed that if an arch uses the compat layer it does not