Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

128 lines
2.3 KiB

//
// No Check-in Source Code.
//
// Do not make this code available to non-Microsoft personnel
// without Intel's express permission
//
/**
*** Copyright (C) 1996-97 Intel Corporation. All rights reserved.
***
*** The information and source code contained herein is the exclusive
*** property of Intel Corporation and may not be disclosed, examined
*** or reproduced in whole or in part without explicit written authorization
*** from the company.
**/
/*++
Copyright (c) 1995 Intel Corporation
Module Name:
simswint.c
Abstract:
This module implements the routines to support software interrupts.
Author:
14-Apr-1995
Environment:
Kernel mode
Revision History:
--*/
#include "halp.h"
#include "ssc.h"
VOID
FASTCALL
HalRequestSoftwareInterrupt (
IN KIRQL RequestIrql
)
/*++
Routine Description:
This routine is used to request a software interrupt to the
system. Also, this routine calls the SSC function
SscGenerateInterrupt() to request the simulator to deliver
the specified interrupt. As a result, the associated bit in
the EIRR will be set.
Arguments:
RequestIrql - Supplies the request IRQL value
Return Value:
None.
--*/
{
switch (RequestIrql) {
case APC_LEVEL:
SscGenerateInterrupt (SSC_APC_INTERRUPT);
break;
case DISPATCH_LEVEL:
SscGenerateInterrupt (SSC_DPC_INTERRUPT);
break;
default:
DbgPrint("HalRequestSoftwareInterrupt: Undefined Software Interrupt!\n");
break;
}
}
VOID
HalClearSoftwareInterrupt (
IN KIRQL RequestIrql
)
/*++
Routine Description:
This routine is used to clear a possible pending software interrupt.
The kernel has already cleared the corresponding bit in the EIRR.
The support for this function is optional, depending on the external
interrupt control.
Arguments:
RequestIrql - Supplies the request IRQL value
Return Value:
None.
--*/
{
switch (RequestIrql) {
case APC_LEVEL:
case DISPATCH_LEVEL:
//
// Nothing to do.
//
break;
default:
DbgPrint("HalClearSoftwareInterrupt: Undefined Software Interrupt!\n");
break;
}
}