From 84d8b7850d83a239271b4a0a794dddc32fc8fbf9 Mon Sep 17 00:00:00 2001 From: Giannis Adamopoulos Date: Sun, 1 Aug 2010 16:27:48 +0000 Subject: [PATCH] [hal] - define REGISTERCALL in order to replace __attribute__((regparm(3))) and fix compilation with msvc. It was used only as an optimization so it is safe to be defined as FASTCALL for msvc. For gcc it is still defined as __attribute__((regparm(3))) svn path=/trunk/; revision=48397 --- reactos/hal/halx86/include/halp.h | 26 ++++++++++++++++---------- reactos/hal/halx86/up/pic.c | 22 +++++++++++----------- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/reactos/hal/halx86/include/halp.h b/reactos/hal/halx86/include/halp.h index 09331786206..7a5155decc0 100644 --- a/reactos/hal/halx86/include/halp.h +++ b/reactos/hal/halx86/include/halp.h @@ -4,6 +4,13 @@ #pragma once + +#ifdef _MSC_VER +#define REGISTERCALL FASTCALL +#else +#define REGISTERCALL __attribute__((regparm(3))) +#endif + typedef struct _HAL_BIOS_FRAME { ULONG SegSs; @@ -408,15 +415,14 @@ typedef struct _PIC_MASK typedef BOOLEAN -__attribute__((regparm(3))) -(*PHAL_DISMISS_INTERRUPT)( +( REGISTERCALL *PHAL_DISMISS_INTERRUPT)( IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql ); BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrqGeneric( IN KIRQL Irql, IN ULONG Irq, @@ -424,7 +430,7 @@ HalpDismissIrqGeneric( ); BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq15( IN KIRQL Irql, IN ULONG Irq, @@ -432,7 +438,7 @@ HalpDismissIrq15( ); BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq13( IN KIRQL Irql, IN ULONG Irq, @@ -440,7 +446,7 @@ HalpDismissIrq13( ); BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq07( IN KIRQL Irql, IN ULONG Irq, @@ -448,7 +454,7 @@ HalpDismissIrq07( ); BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrqLevel( IN KIRQL Irql, IN ULONG Irq, @@ -456,7 +462,7 @@ HalpDismissIrqLevel( ); BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq15Level( IN KIRQL Irql, IN ULONG Irq, @@ -464,7 +470,7 @@ HalpDismissIrq15Level( ); BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq13Level( IN KIRQL Irql, IN ULONG Irq, @@ -472,7 +478,7 @@ HalpDismissIrq13Level( ); BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq07Level( IN KIRQL Irql, IN ULONG Irq, diff --git a/reactos/hal/halx86/up/pic.c b/reactos/hal/halx86/up/pic.c index 91b902b1a35..d441c1a4997 100644 --- a/reactos/hal/halx86/up/pic.c +++ b/reactos/hal/halx86/up/pic.c @@ -813,7 +813,7 @@ _HalpDismissIrqGeneric(IN KIRQL Irql, } BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrqGeneric(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) @@ -823,7 +823,7 @@ HalpDismissIrqGeneric(IN KIRQL Irql, } BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq15(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) @@ -859,7 +859,7 @@ HalpDismissIrq15(IN KIRQL Irql, BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq13(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) @@ -872,7 +872,7 @@ HalpDismissIrq13(IN KIRQL Irql, } BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq07(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) @@ -956,7 +956,7 @@ _HalpDismissIrqLevel(IN KIRQL Irql, } BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrqLevel(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) @@ -966,7 +966,7 @@ HalpDismissIrqLevel(IN KIRQL Irql, } BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq15Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) @@ -1001,7 +1001,7 @@ HalpDismissIrq15Level(IN KIRQL Irql, } BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq13Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) @@ -1014,7 +1014,7 @@ HalpDismissIrq13Level(IN KIRQL Irql, } BOOLEAN -__attribute__((regparm(3))) +REGISTERCALL HalpDismissIrq07Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) @@ -1252,8 +1252,8 @@ _HalpApcInterruptHandler(IN PKTRAP_FRAME TrapFrame) } VOID -FASTCALL DECLSPEC_NORETURN +FASTCALL HalpApcInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame) { /* Do the work */ @@ -1261,8 +1261,8 @@ HalpApcInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame) } VOID -FASTCALL DECLSPEC_NORETURN +FASTCALL HalpApcInterruptHandler(IN PKTRAP_FRAME TrapFrame) { /* Set up a fake INT Stack */ @@ -1301,8 +1301,8 @@ _HalpDispatchInterruptHandler(VOID) } VOID -FASTCALL DECLSPEC_NORETURN +FASTCALL HalpDispatchInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame) { KIRQL CurrentIrql;