summaryrefslogtreecommitdiffstats
path: root/private/ntos/nthals/halpinna/alpha/iousage.h
blob: b54cd179a61792347843b0b6561296214d88c49d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*++

Copyright (c) 1993-1995  Microsoft Corporation
Copyright (c) 1993-1995  Digital Equipment Corporation

Module Name:

    iousage.h

Abstract:

    This header file defines the iousage definitions

Author:

    Sameer Dekate 5-3-1994


Revision History:

    Chao Chen 1-25-1995

--*/

//
// Resource usage information
//

//
// Bus usage information.
//

typedef struct _HalBusUsage{
    INTERFACE_TYPE      BusType;
    struct _HalBusUsage *Next;
} BUS_USAGE, *PBUS_USAGE;

//
// Address usage information.
//

typedef struct _HalResourceUsage {

    //
    // Common elements.
    //

    INTERFACE_TYPE   BusType;
    ULONG            BusNumber;
    CM_RESOURCE_TYPE ResourceType; 
    struct _HalResourceUsage *Next;

    //
    // Resource type specific.
    //

    union {

        //
        // Address usage.
        //

        struct {
          ULONG Start;
          ULONG Length;
        };

        //
        // Vector type specific.
        //

        struct {
          KINTERRUPT_MODE InterruptMode;
          ULONG BusInterruptVector;
          ULONG SystemInterruptVector;
          KIRQL SystemIrql;
        };

        //
        // Dma type specific.
        //

        struct {
          ULONG DmaChannel;
          ULONG DmaPort;
        };
    } u;
} RESOURCE_USAGE, *PRESOURCE_USAGE;

//
// Functions to report HAL's resource usage.
//

VOID
HalpRegisterHalName(
    IN PUCHAR HalName
    );

VOID
HalpRegisterBusUsage (
    IN INTERFACE_TYPE BusType
    );

VOID
HalpRegisterResourceUsage (
    IN PRESOURCE_USAGE Resource
    );