From 0df87548b9a472ddf4132f62ad9467b20d4417cf Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Tue, 29 Mar 2016 19:56:48 +0000 Subject: [PATCH] Type of the interrupt handlers on x86 cannot be expressed in C. Simplify and unify placeholder type definitions. Reviewed by: jhb Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D5771 --- sys/amd64/include/intr_machdep.h | 2 +- sys/amd64/include/md_var.h | 3 --- sys/i386/include/intr_machdep.h | 2 +- sys/i386/include/md_var.h | 1 - sys/x86/include/x86_var.h | 7 +++++++ 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/sys/amd64/include/intr_machdep.h b/sys/amd64/include/intr_machdep.h index d37c7956db4..22f9a49c1d6 100644 --- a/sys/amd64/include/intr_machdep.h +++ b/sys/amd64/include/intr_machdep.h @@ -83,7 +83,7 @@ #ifndef LOCORE -typedef void inthand_t(u_int cs, u_int ef, u_int esp, u_int ss); +typedef void inthand_t(void); #define IDTVEC(name) __CONCAT(X,name) diff --git a/sys/amd64/include/md_var.h b/sys/amd64/include/md_var.h index ddeb2573140..e4c50eba764 100644 --- a/sys/amd64/include/md_var.h +++ b/sys/amd64/include/md_var.h @@ -36,9 +36,6 @@ extern uint64_t *vm_page_dump; -/* XXX */ -typedef void alias_for_inthand_t(u_int cs, u_int ef, u_int esp, u_int ss); - struct savefpu; void amd64_db_resume_dbreg(void); diff --git a/sys/i386/include/intr_machdep.h b/sys/i386/include/intr_machdep.h index 0a2a6d55cf7..d1be076f65a 100644 --- a/sys/i386/include/intr_machdep.h +++ b/sys/i386/include/intr_machdep.h @@ -83,7 +83,7 @@ #ifndef LOCORE -typedef void inthand_t(u_int cs, u_int ef, u_int esp, u_int ss); +typedef void inthand_t(void); #define IDTVEC(name) __CONCAT(X,name) diff --git a/sys/i386/include/md_var.h b/sys/i386/include/md_var.h index f8543734f39..c4c9ca96c36 100644 --- a/sys/i386/include/md_var.h +++ b/sys/i386/include/md_var.h @@ -46,7 +46,6 @@ extern int szosigcode; #endif extern uint32_t *vm_page_dump; -typedef void alias_for_inthand_t(u_int cs, u_int ef, u_int esp, u_int ss); struct segment_descriptor; union savefpu; diff --git a/sys/x86/include/x86_var.h b/sys/x86/include/x86_var.h index c34991341f6..46ce1a0facb 100644 --- a/sys/x86/include/x86_var.h +++ b/sys/x86/include/x86_var.h @@ -86,6 +86,13 @@ struct fpreg; struct dbreg; struct dumperinfo; +/* + * The interface type of the interrupt handler entry point cannot be + * expressed in C. Use simplest non-variadic function type as an + * approximation. + */ +typedef void alias_for_inthand_t(void); + void *alloc_fpusave(int flags); void busdma_swi(void); bool cpu_mwait_usable(void);