85 lines
1.8 KiB
C
85 lines
1.8 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1998 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
ixpciir.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This header file defines the private interfaces, defines and structures
|
||
|
for Pci Irq Routing support.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Santosh Jodh (santoshj) 10-June-1998
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
Kernel mode only.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#include <pciirqmp.h>
|
||
|
|
||
|
#define PCI_LINK_SIGNATURE 'KNLP'
|
||
|
|
||
|
#define IsPciIrqRoutingEnabled() \
|
||
|
(HalpPciIrqRoutingInfo.PciIrqRoutingTable && HalpPciIrqRoutingInfo.PciInterface)
|
||
|
|
||
|
typedef struct _LINK_STATE LINK_STATE, *PLINK_STATE;
|
||
|
typedef struct _LINK_NODE LINK_NODE, *PLINK_NODE;
|
||
|
typedef struct _PCI_IRQ_ROUTING_INFO PCI_IRQ_ROUTING_INFO, *PPCI_IRQ_ROUTING_INFO;
|
||
|
|
||
|
struct _LINK_STATE {
|
||
|
ULONG Interrupt; // Interrupt for this link.
|
||
|
ULONG RefCount; // Number of devices using this link.
|
||
|
};
|
||
|
|
||
|
struct _LINK_NODE {
|
||
|
ULONG Signature; // Signature 'PLNK'.
|
||
|
PLINK_NODE Next;
|
||
|
ULONG Link; // Link value.
|
||
|
ULONG InterruptMap; // Possible Irq map.
|
||
|
PLINK_STATE Allocation;
|
||
|
PLINK_STATE PossibleAllocation;
|
||
|
};
|
||
|
|
||
|
struct _PCI_IRQ_ROUTING_INFO {
|
||
|
PPCI_IRQ_ROUTING_TABLE PciIrqRoutingTable;
|
||
|
PINT_ROUTE_INTERFACE_STANDARD PciInterface;
|
||
|
PLINK_NODE LinkNodeHead;
|
||
|
ULONG Parameters;
|
||
|
};
|
||
|
|
||
|
NTSTATUS
|
||
|
HalpInitPciIrqRouting (
|
||
|
OUT PPCI_IRQ_ROUTING_INFO PciIrqRoutingInfo
|
||
|
);
|
||
|
|
||
|
NTSTATUS
|
||
|
HalpFindLinkNode (
|
||
|
IN PPCI_IRQ_ROUTING_INFO PciIrqRoutingInfo,
|
||
|
IN PDEVICE_OBJECT Pdo,
|
||
|
IN ULONG Bus,
|
||
|
IN ULONG Slot,
|
||
|
OUT PLINK_NODE *LinkNode
|
||
|
);
|
||
|
|
||
|
NTSTATUS
|
||
|
HalpCommitLink (
|
||
|
IN PLINK_NODE LinkNode
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
HalpProgramInterruptLine (
|
||
|
IN PPCI_IRQ_ROUTING_INFO PciIrqRoutingInfo,
|
||
|
IN PDEVICE_OBJECT Pdo,
|
||
|
IN ULONG Interrupt
|
||
|
);
|
||
|
|
||
|
extern PCI_IRQ_ROUTING_INFO HalpPciIrqRoutingInfo;
|