95 lines
1.3 KiB
C
95 lines
1.3 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1995 Digital Equipment Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
icic.c
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
This module implements functions specific to the Interrupt
|
|||
|
Controller IC (ICIC).
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Dave Richards 26-May-1995
|
|||
|
|
|||
|
Environment:
|
|||
|
|
|||
|
Kernel mode
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#include "halp.h"
|
|||
|
#include "t2.h"
|
|||
|
#include "icic.h"
|
|||
|
|
|||
|
|
|||
|
ULONGLONG
|
|||
|
READ_ICIC_REGISTER(
|
|||
|
IN PVOID TxQva,
|
|||
|
IN ICIC_REGISTER IcIcRegister
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Read a 64-bit value from an ICIC register.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
TxQva - The QVA of the T3/T4 CSR space.
|
|||
|
|
|||
|
IcIcRegister - The register number to read.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
The 64-bit value read.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
WRITE_T2_REGISTER( &((PT2_CSRS)TxQva)->Air, IcIcRegister );
|
|||
|
|
|||
|
return READ_T2_REGISTER( &((PT2_CSRS)TxQva)->Dir );
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
WRITE_ICIC_REGISTER(
|
|||
|
IN PVOID TxQva,
|
|||
|
IN ICIC_REGISTER IcIcRegister,
|
|||
|
IN ULONGLONG Value
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Write a 64-bit value to an ICIC register.
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
TxQva - The QVA of the T3/T4 CSR space.
|
|||
|
|
|||
|
IcIcRegister - The register number to write.
|
|||
|
|
|||
|
Value - The 64-bit value to write.
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
None.
|
|||
|
|
|||
|
--*/
|
|||
|
{
|
|||
|
WRITE_T2_REGISTER( &((PT2_CSRS)TxQva)->Air, IcIcRegister );
|
|||
|
|
|||
|
WRITE_T2_REGISTER( &((PT2_CSRS)TxQva)->Dir, Value );
|
|||
|
|
|||
|
(VOID)READ_T2_REGISTER( &((PT2_CSRS)TxQva)->Dir );
|
|||
|
}
|