2 * FILE: hal/halx86/up/pic.S
3 * COPYRIGHT: See COPYING in the top level directory
4 * PURPOSE: HAL PIC Management and Control Code
5 * PROGRAMMER: Thomas Faber (thomas.faber@reactos.org)
8 /* INCLUDES ******************************************************************/
14 /* GLOBALS *******************************************************************/
17 ASSUME CS:NOTHING, DS:NOTHING, ES:NOTHING, FS:NOTHING, GS:NOTHING
19 /* FUNCTIONS *****************************************************************/
23 MACRO(DEFINE_END_INTERRUPT_WRAPPER, WrapperName, HandlerName)
24 EXTERN @&HandlerName&@8:PROC
25 PUBLIC _&WrapperName&@8
26 .PROC _&WrapperName&@8
27 FPO 0, 2, 0, 0, 0, FRAME_FPO
29 /* Call the C function with the same arguments we got */
34 /* Check if we got a pointer back */
36 jnz WrapperName&_CallIntHandler
41 WrapperName&_CallIntHandler:
42 /* We got a pointer to call. Since it won't return, free up our stack
43 space. Otherwise we could end up with some nasty deep recursion.
44 The next function takes the trap frame as its (fastcall) argument. */
52 DEFINE_END_INTERRUPT_WRAPPER HalpEndSoftwareInterrupt, HalpEndSoftwareInterrupt2