source: trunk/include/rmioctl.h@ 9969

Last change on this file since 9969 was 8403, checked in by sandervl, 23 years ago

added resource manager header files

File size: 3.7 KB
Line 
1/**************************************************************************
2 *
3 * SOURCE FILE NAME = RMIOCTL.H
4 *
5 * DESCRIPTIVE NAME = RM defines and structures related to RM IOCTLs
6 *
7 *
8 * Copyright : COPYRIGHT IBM CORPORATION, 1994, 1995
9 * LICENSED MATERIAL - PROGRAM PROPERTY OF IBM
10 * REFER TO COPYRIGHT INSTRUCTION FORM#G120-2083
11 * RESTRICTED MATERIALS OF IBM
12 * IBM CONFIDENTIAL
13 *
14 * VERSION = V1.01
15 *
16 * DATE
17 *
18 * DESCRIPTION :
19 *
20 * Purpose:
21 *
22 *
23 *
24 * FUNCTIONS :
25 *
26 * NOTES
27 *
28 *
29 * STRUCTURES
30 *
31 * EXTERNAL REFERENCES
32 *
33 *
34 *
35 * EXTERNAL FUNCTIONS
36 *
37 * CHANGE ACTIVITY =
38 * DATE FLAG APAR CHANGE DESCRIPTION
39 * -------- ---------- ----- --------------------------------------
40 *
41 ****************************************************************************/
42#ifndef __RM_HEADER__
43#include "rmbase.h"
44#endif
45
46#ifndef __RM_IOCTL__
47#define __RM_IOCTL__
48
49#define CAT_RM 0x80 /* Resource Manager Category */
50#define FUNC_RM_GET_NODEINFO 0x01 /* Get RM Structure */
51#define FUNC_RM_ENUM_NODES 0x02 /* Get Physical Topology */
52#define FUNC_RM_ENUM_DRIVERS 0x03 /* Get DriverHandles */
53
54
55/******************************************/
56/* RM_NODE Ring 3 Super Structure */
57/******************************************/
58
59typedef struct {
60 ULONG Count;
61 RESOURCESTRUCT Resource[1];
62} RESOURCELIST, FAR *PRESOURCELIST, NEAR *NPRESOURCELIST;
63
64typedef struct {
65
66 ULONG VersionInfo;
67 ULONG NodeType;
68 RMHANDLE DriverHandle;
69 union {
70 PADAPTERSTRUCT pAdapterNode;
71 PDEVICESTRUCT pDeviceNode;
72 PLDEVSTRUCT pLDevNode;
73 PSYSNAMESTRUCT pSysNameNode;
74 PDRIVERSTRUCT pDriverNode;
75 PDETECTEDSTRUCT pDetectedNode;
76 PRESOURCESTRUCT pResourceNode;
77 };
78 PRESOURCELIST pResourceList;
79
80} RM_NODE, FAR *PRM_NODE, NEAR *NPRM_NODE;
81
82/* pRM_NODE->NodeType */
83
84#define RMTYPE_ADAPTER 0x0000
85#define RMTYPE_DEVICE 0x0001
86#define RMTYPE_LDEV 0x0002
87#define RMTYPE_SYSNAME 0x0003
88#define RMTYPE_DRIVER 0x0004
89#define RMTYPE_DETECTED 0x0005
90#define RMTYPE_RESOURCE 0x0006
91
92/**************************/
93/* FUNC_RM_GETNODEINFO */
94/**************************/
95
96typedef struct {
97 RMHANDLE RMHandle;
98 ULONG Linaddr;
99} RM_GETNODE_PARM, FAR *PRM_GETNODE_PARM, NEAR *NPRM_GETNODE_PARM;
100
101typedef struct {
102 ULONG RMNodeSize;
103 RM_NODE RMNode;
104} RM_GETNODE_DATA, FAR *PRM_GETNODE_DATA, NEAR *NPRM_GETNODE_DATA;
105
106
107#define MAX_RESOURCES 10
108#define MAX_TEXT_DATA 128
109
110#define MAX_RM_NODE_SIZE ( sizeof(RM_NODE) + \
111 sizeof(ADAPTERSTRUCT) + MAX_TEXT_DATA + \
112 sizeof(DRIVERSTRUCT) + MAX_TEXT_DATA + \
113 sizeof(RESOURCESTRUCT) * MAX_RESOURCES )
114
115
116/**************************/
117/* FUNC_RM_ENUM_NODE */
118/**************************/
119
120typedef struct {
121 USHORT Command; /* Size of Data Packet */
122} RM_ENUMNODES_PARM, FAR *PRM_ENUMNODES_PARM, NEAR *NPRM_ENUMNODES_PARM;
123
124/* pRM_ENUMNODES_PARM->Command */
125#define RM_COMMAND_PHYS 0
126#define RM_COMMAND_LOG 1
127#define RM_COMMAND_DRVR 2
128#define RM_COMMAND_PREVIOUS_DETECT 3
129#define RM_COMMAND_CURRENT_DETECT 4
130
131typedef struct {
132 RMHANDLE RMHandle;
133 ULONG Depth;
134} NODEENTRY, FAR *PNODEENTRY, NEAR *NPNODEENTRY;
135
136typedef struct {
137 ULONG NumEntries; /* Number of Topology Entries */
138 NODEENTRY NodeEntry[1]; /* First Entry in Map of Nodes */
139} RM_ENUMNODES_DATA, FAR *PRM_ENUMNODES_DATA, NEAR *NPRM_ENUMNODES_DATA;
140
141#define MAX_ENUM_SIZE ( sizeof(NODEENTRY) * 255 + sizeof(ULONG))
142
143
144#endif /* __RM_IOCTL__ */
Note: See TracBrowser for help on using the repository browser.