From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: "Juergen Gross" <jgross@suse.com>,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Julien Grall" <julien@xen.org>,
"Bertrand Marquis" <bertrand.marquis@arm.com>,
"Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>,
"Andrew Cooper" <andrew.cooper3@citrix.com>,
"George Dunlap" <george.dunlap@citrix.com>,
"Jan Beulich" <jbeulich@suse.com>, "Wei Liu" <wl@xen.org>,
"Roger Pau Monné" <roger.pau@citrix.com>,
"Julien Grall" <jgrall@amazon.com>
Subject: [PATCH v6 6/9] xen: use generated prototypes for hypercall handlers
Date: Thu, 24 Mar 2022 15:01:36 +0100 [thread overview]
Message-ID: <20220324140139.5899-7-jgross@suse.com> (raw)
In-Reply-To: <20220324140139.5899-1-jgross@suse.com>
Remove the hypercall handler's prototypes in the related header files
and use the generated ones instead.
Some handlers having been static before need to be made globally
visible.
Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
xen/arch/arm/include/asm/hypercall.h | 1 -
xen/arch/x86/hvm/hypercall.c | 7 +-
xen/arch/x86/include/asm/hypercall.h | 141 ---------------------
xen/include/xen/hypercall.h | 177 +--------------------------
4 files changed, 5 insertions(+), 321 deletions(-)
diff --git a/xen/arch/arm/include/asm/hypercall.h b/xen/arch/arm/include/asm/hypercall.h
index 8182895358..ccd26c5184 100644
--- a/xen/arch/arm/include/asm/hypercall.h
+++ b/xen/arch/arm/include/asm/hypercall.h
@@ -6,7 +6,6 @@
#define __ASM_ARM_HYPERCALL_H__
#include <public/domctl.h> /* for arch_do_domctl */
-int do_arm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
long subarch_do_domctl(struct xen_domctl *domctl, struct domain *d,
XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 3a35543997..a9c9ad721f 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -31,8 +31,7 @@
#include <public/hvm/hvm_op.h>
#include <public/hvm/params.h>
-static long cf_check hvm_memory_op(
- unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+long cf_check hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
long rc;
@@ -52,7 +51,7 @@ static long cf_check hvm_memory_op(
}
#ifdef CONFIG_GRANT_TABLE
-static long cf_check hvm_grant_table_op(
+long cf_check hvm_grant_table_op(
unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
{
switch ( cmd )
@@ -78,7 +77,7 @@ static long cf_check hvm_grant_table_op(
}
#endif
-static long cf_check hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+long cf_check hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
{
const struct vcpu *curr = current;
const struct domain *currd = curr->domain;
diff --git a/xen/arch/x86/include/asm/hypercall.h b/xen/arch/x86/include/asm/hypercall.h
index 81ca25f7b3..2d243b48bc 100644
--- a/xen/arch/x86/include/asm/hypercall.h
+++ b/xen/arch/x86/include/asm/hypercall.h
@@ -44,109 +44,6 @@ void pv_ring3_init_hypercall_page(void *ptr);
*/
#define MMU_UPDATE_PREEMPTED (~(~0U>>1))
-extern long cf_check
-do_event_channel_op_compat(
- XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop);
-
-/* Legacy hypercall (as of 0x00030202). */
-extern long cf_check do_physdev_op_compat(
- XEN_GUEST_HANDLE(physdev_op_t) uop);
-
-/* Legacy hypercall (as of 0x00030101). */
-extern long cf_check do_sched_op_compat(
- int cmd, unsigned long arg);
-
-extern long cf_check
-do_set_trap_table(
- XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps);
-
-extern long cf_check
-do_mmu_update(
- XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
- unsigned int count,
- XEN_GUEST_HANDLE_PARAM(uint) pdone,
- unsigned int foreigndom);
-
-extern long cf_check
-do_set_gdt(
- XEN_GUEST_HANDLE_PARAM(xen_ulong_t) frame_list,
- unsigned int entries);
-
-extern long cf_check
-do_stack_switch(
- unsigned long ss,
- unsigned long esp);
-
-extern long cf_check
-do_fpu_taskswitch(
- int set);
-
-extern long cf_check
-do_set_debugreg(
- int reg,
- unsigned long value);
-
-extern long cf_check
-do_get_debugreg(
- int reg);
-
-extern long cf_check
-do_update_descriptor(
- uint64_t gaddr, seg_desc_t desc);
-
-extern long cf_check
-do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc);
-
-extern long cf_check
-do_update_va_mapping(
- unsigned long va,
- uint64_t val64,
- unsigned long flags);
-
-extern long cf_check
-do_physdev_op(
- int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long cf_check
-do_update_va_mapping_otherdomain(
- unsigned long va,
- uint64_t val64,
- unsigned long flags,
- domid_t domid);
-
-extern long cf_check
-do_mmuext_op(
- XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
- unsigned int count,
- XEN_GUEST_HANDLE_PARAM(uint) pdone,
- unsigned int foreigndom);
-
-extern long cf_check do_callback_op(
- int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg);
-
-extern long cf_check
-do_iret(
- void);
-
-extern long cf_check
-do_set_callbacks(
- unsigned long event_address,
- unsigned long failsafe_address,
- unsigned long syscall_address);
-
-extern long cf_check
-do_set_segment_base(
- unsigned int which,
- unsigned long base);
-
-long cf_check do_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-long cf_check do_xenpmu_op(unsigned int op,
- XEN_GUEST_HANDLE_PARAM(xen_pmu_params_t) arg);
-
-long cf_check do_paging_domctl_cont(
- XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
-
#ifdef CONFIG_COMPAT
#include <compat/arch-x86/xen.h>
@@ -157,44 +54,6 @@ extern int
compat_common_vcpu_op(
int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
-extern int cf_check compat_mmuext_op(
- XEN_GUEST_HANDLE_PARAM(void) arg,
- unsigned int count,
- XEN_GUEST_HANDLE_PARAM(uint) pdone,
- unsigned int foreigndom);
-
-extern int cf_check compat_callback_op(
- int cmd, XEN_GUEST_HANDLE(const_void) arg);
-
-extern int cf_check compat_update_va_mapping(
- unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags);
-
-extern int cf_check compat_update_va_mapping_otherdomain(
- unsigned int va, uint32_t lo, uint32_t hi, unsigned int flags, domid_t domid);
-
-DEFINE_XEN_GUEST_HANDLE(trap_info_compat_t);
-extern int cf_check compat_set_trap_table(
- XEN_GUEST_HANDLE(trap_info_compat_t) traps);
-
-extern int cf_check compat_set_gdt(
- XEN_GUEST_HANDLE_PARAM(uint) frame_list, unsigned int entries);
-
-extern int cf_check compat_update_descriptor(
- uint32_t pa_lo, uint32_t pa_hi, uint32_t desc_lo, uint32_t desc_hi);
-
-extern int cf_check compat_iret(void);
-
-extern int cf_check compat_nmi_op(
- unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int cf_check compat_set_callbacks(
- unsigned long event_selector, unsigned long event_address,
- unsigned long failsafe_selector, unsigned long failsafe_address);
-
-DEFINE_XEN_GUEST_HANDLE(physdev_op_compat_t);
-extern int cf_check compat_physdev_op_compat(
- XEN_GUEST_HANDLE(physdev_op_compat_t) uop);
-
#endif /* CONFIG_COMPAT */
#endif /* __ASM_X86_HYPERCALL_H__ */
diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h
index ca8ee22717..f307dfb597 100644
--- a/xen/include/xen/hypercall.h
+++ b/xen/include/xen/hypercall.h
@@ -21,33 +21,19 @@
#include <asm/hypercall.h>
#include <xsm/xsm.h>
-extern long cf_check
-do_sched_op(
- int cmd,
- XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long cf_check
-do_domctl(
- XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
+/* Needs to be after asm/hypercall.h. */
+#include <xen/hypercall-defs.h>
extern long
arch_do_domctl(
struct xen_domctl *domctl, struct domain *d,
XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
-extern long cf_check
-do_sysctl(
- XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
-
extern long
arch_do_sysctl(
struct xen_sysctl *sysctl,
XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
-extern long cf_check
-do_platform_op(
- XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op);
-
extern long
pci_physdev_op(
int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
@@ -65,170 +51,11 @@ pci_physdev_op(
#define MEMOP_EXTENT_SHIFT 6 /* cmd[:6] == start_extent */
#define MEMOP_CMD_MASK ((1 << MEMOP_EXTENT_SHIFT) - 1)
-extern long cf_check
-do_memory_op(
- unsigned long cmd,
- XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long cf_check
-do_multicall(
- XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list,
- unsigned int nr_calls);
-
-extern long cf_check
-do_set_timer_op(
- s_time_t timeout);
-
-extern long cf_check
-do_event_channel_op(
- int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long cf_check
-do_xen_version(
- int cmd,
- XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long cf_check
-do_console_io(
- unsigned int cmd,
- unsigned int count,
- XEN_GUEST_HANDLE_PARAM(char) buffer);
-
-extern long cf_check
-do_grant_table_op(
- unsigned int cmd,
- XEN_GUEST_HANDLE_PARAM(void) uop,
- unsigned int count);
-
-extern long cf_check
-do_vm_assist(
- unsigned int cmd,
- unsigned int type);
-
-extern long cf_check
-do_vcpu_op(
- int cmd,
- unsigned int vcpuid,
- XEN_GUEST_HANDLE_PARAM(void) arg);
-
-struct vcpu;
extern long
common_vcpu_op(int cmd,
struct vcpu *v,
XEN_GUEST_HANDLE_PARAM(void) arg);
-extern long cf_check
-do_hvm_op(
- unsigned long op,
- XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long cf_check
-do_kexec_op(
- unsigned int op,
- XEN_GUEST_HANDLE_PARAM(void) uarg);
-
-extern long cf_check
-do_xsm_op(
- XEN_GUEST_HANDLE_PARAM(void) u_xsm_op);
-
-#ifdef CONFIG_ARGO
-extern long cf_check do_argo_op(
- unsigned int cmd,
- XEN_GUEST_HANDLE_PARAM(void) arg1,
- XEN_GUEST_HANDLE_PARAM(void) arg2,
- unsigned long arg3,
- unsigned long arg4);
-#endif
-
-extern long cf_check
-do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern long cf_check
-do_dm_op(
- domid_t domid,
- unsigned int nr_bufs,
- XEN_GUEST_HANDLE_PARAM(xen_dm_op_buf_t) bufs);
-
-#ifdef CONFIG_HYPFS
-extern long cf_check
-do_hypfs_op(
- unsigned int cmd,
- XEN_GUEST_HANDLE_PARAM(const_char) arg1,
- unsigned long arg2,
- XEN_GUEST_HANDLE_PARAM(void) arg3,
- unsigned long arg4);
-#endif
-
-#ifdef CONFIG_COMPAT
-
-extern int cf_check
-compat_memory_op(
- unsigned int cmd,
- XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int cf_check
-compat_grant_table_op(
- unsigned int cmd,
- XEN_GUEST_HANDLE_PARAM(void) uop,
- unsigned int count);
-
-extern int cf_check
-compat_vcpu_op(
- int cmd,
- unsigned int vcpuid,
- XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int cf_check
-compat_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int cf_check
-compat_xen_version(
- int cmd,
- XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int cf_check
-compat_sched_op(
- int cmd,
- XEN_GUEST_HANDLE_PARAM(void) arg);
-
-extern int cf_check
-compat_set_timer_op(
- uint32_t lo,
- int32_t hi);
-
-extern int cf_check compat_xsm_op(
- XEN_GUEST_HANDLE_PARAM(void) op);
-
-extern int cf_check compat_kexec_op(
- unsigned int op, XEN_GUEST_HANDLE_PARAM(void) uarg);
-
-DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
-extern int cf_check compat_multicall(
- XEN_GUEST_HANDLE_PARAM(multicall_entry_compat_t) call_list,
- uint32_t nr_calls);
-
-int compat_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
-
-DEFINE_XEN_GUEST_HANDLE(compat_platform_op_t);
-int compat_platform_op(XEN_GUEST_HANDLE_PARAM(compat_platform_op_t) u_xenpf_op);
-
-#ifdef CONFIG_ARGO
-extern int cf_check compat_argo_op(
- unsigned int cmd,
- XEN_GUEST_HANDLE_PARAM(void) arg1,
- XEN_GUEST_HANDLE_PARAM(void) arg2,
- unsigned long arg3,
- unsigned long arg4);
-#endif
-
-extern int cf_check
-compat_dm_op(
- domid_t domid,
- unsigned int nr_bufs,
- XEN_GUEST_HANDLE_PARAM(void) bufs);
-
-#endif
-
void arch_get_xen_caps(xen_capabilities_info_t *info);
#endif /* __XEN_HYPERCALL_H__ */
--
2.34.1
next prev parent reply other threads:[~2022-03-24 14:02 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-24 14:01 [PATCH v6 0/9] xen: drop hypercall function tables Juergen Gross
2022-03-24 14:01 ` [PATCH v6 1/9] xen: move do_vcpu_op() to arch specific code Juergen Gross
2022-06-07 5:00 ` Juergen Gross
2022-06-27 10:28 ` Roger Pau Monné
2022-06-27 10:40 ` Juergen Gross
2022-06-27 11:02 ` Roger Pau Monné
2022-06-27 11:08 ` Juergen Gross
2022-06-27 11:35 ` Roger Pau Monné
2022-06-27 11:47 ` Juergen Gross
2022-06-27 13:00 ` Roger Pau Monné
2022-03-24 14:01 ` [PATCH v6 2/9] xen: harmonize return types of hypercall handlers Juergen Gross
2022-06-29 6:24 ` Juergen Gross
2022-07-06 19:22 ` Christopher Clark
2022-07-07 16:12 ` Christopher Clark
2022-03-24 14:01 ` [PATCH v6 3/9] xen: don't include asm/hypercall.h from C sources Juergen Gross
2022-03-24 14:01 ` [PATCH v6 4/9] xen: include compat/platform.h from hypercall.h Juergen Gross
2022-03-24 14:01 ` [PATCH v6 5/9] xen: generate hypercall interface related code Juergen Gross
2022-07-11 10:18 ` Jan Beulich
2022-07-11 10:50 ` Juergen Gross
2022-03-24 14:01 ` Juergen Gross [this message]
2022-03-24 14:01 ` [PATCH v6 7/9] xen/x86: call hypercall handlers via generated macro Juergen Gross
2022-03-24 14:01 ` [PATCH v6 8/9] xen/arm: " Juergen Gross
2022-03-24 14:01 ` [PATCH v6 9/9] xen/x86: remove cf_check attribute from hypercall handlers Juergen Gross
2022-04-08 10:36 ` Dario Faggioli
2022-04-19 8:01 ` [PATCH v6 0/9] xen: drop hypercall function tables Juergen Gross
2022-05-04 7:53 ` Juergen Gross
2022-05-18 9:45 ` Juergen Gross
2022-05-18 9:50 ` Jan Beulich
2022-06-07 5:05 ` Juergen Gross
2022-06-23 13:07 ` Juergen Gross
2022-07-06 7:30 ` Henry Wang
2022-07-06 8:57 ` Jan Beulich
2022-07-06 9:35 ` Henry Wang
2022-07-07 16:10 ` ***PING***: " Jan Beulich
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=20220324140139.5899-7-jgross@suse.com \
--to=jgross@suse.com \
--cc=Volodymyr_Babchuk@epam.com \
--cc=andrew.cooper3@citrix.com \
--cc=bertrand.marquis@arm.com \
--cc=george.dunlap@citrix.com \
--cc=jbeulich@suse.com \
--cc=jgrall@amazon.com \
--cc=julien@xen.org \
--cc=roger.pau@citrix.com \
--cc=sstabellini@kernel.org \
--cc=wl@xen.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.