source: trunk/include/rmcalls.h@ 10366

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

added resource manager header files

File size: 11.4 KB
RevLine 
[8403]1/**************************************************************************
2 *
3 * SOURCE FILE NAME = RMCALLS.H
4 *
5 * DESCRIPTIVE NAME = RM function prototypes exported to drivers
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
43
44/****************************************************************************/
45/* */
46/* Function Prototypes */
47/* */
48/****************************************************************************/
49
50
51
52#ifndef __RM_CALLS__
53#define __RM_CALLS__
54
55#include <rmbase.h>
56#include <rmioctl.h>
57#ifdef __32BIT__
58#define CDECL _Optlink
59#else
60#ifndef APIRET
61#define APIRET USHORT
62#endif
63#ifndef CDECL
64#define CDECL _cdecl
65#endif
66#endif
67
68#ifndef __32BIT__
69typedef USHORT (_cdecl FAR *PFNRM)();
70#endif
71
72APIRET CDECL FAR RMCreateDriver(PDRIVERSTRUCT pDriverStruct,
73 PHDRIVER phDriver);
74
75APIRET CDECL FAR RMDestroyDriver(HDRIVER hDriver);
76
77APIRET CDECL FAR RMCreateAdapter(HDRIVER hDriver,
78 PHADAPTER phAdapter,
79 PADAPTERSTRUCT pAdapterStruct,
80 HDEVICE hDevice,
81 PAHRESOURCE pahResource);
82
83APIRET CDECL FAR RMDestroyAdapter(HDRIVER hDriver,
84 HADAPTER hAdapter);
85
86
87APIRET CDECL FAR RMCreateDevice(HDRIVER hDriver,
88 PHDEVICE phDevice,
89 PDEVICESTRUCT pDeviceStruct,
90 HADAPTER hAdapter,
91 PAHRESOURCE pahResource);
92
93APIRET CDECL FAR RMDestroyDevice(HDRIVER hDriver,
94 HDEVICE hDevice);
95
96APIRET CDECL FAR RMAllocResource(HDRIVER hDriver,
97 PHRESOURCE phResource,
98 PRESOURCESTRUCT pResourceStruct);
99
100
101APIRET CDECL FAR RMDeallocResource(HDRIVER hDriver,
102 HRESOURCE hResource);
103
104APIRET CDECL FAR RMClaimResources(HDRIVER hDriver,
105 HADAPTER hAdapter);
106
107APIRET CDECL FAR RMReleaseResources(HDRIVER hDriver,
108 HADAPTER hAdapter);
109
110APIRET CDECL FAR RMCreateLDev(HDRIVER hDriver,
111 PHLDEV phLDev,
112 HDEVICE hDevice,
113 PLDEVSTRUCT pLDevStruct);
114
115APIRET CDECL FAR RMDestroyLDev(HDRIVER hDriver,
116 HLDEV hLDev);
117
118APIRET CDECL FAR RMCreateSysName(HDRIVER hDriver,
119 PHSYSNAME phSysName,
120 HLDEV hLDev,
121 PSYSNAMESTRUCT pSysNameStruct);
122
123APIRET CDECL FAR RMDestroySysName(HDRIVER hDriver,
124 HSYSNAME hLDev);
125
126APIRET CDECL FAR RMADDToHDEVICE(PHDEVICE phDevice,
127 USHORT ADDHandle,
128 USHORT UnitHandle);
129
130APIRET CDECL FAR RMKeyToHandleList(RMHANDLE hStartNode,
131 PSZ SearchKey,
132 PHANDLELIST pHandleList);
133
134APIRET CDECL FAR RMHandleToType(RMHANDLE hHandle,
135 PUSHORT pHandleType );
136
137APIRET CDECL FAR RMHandleToParent(RMHANDLE hHandle,
138 PRMHANDLE phParent );
139
140APIRET CDECL FAR RMUpdateAdjunct(HDRIVER hDriver,
141 HDEVICE hDevice,
142 USHORT AdjunctIndex,
143 PADJUNCT pAdjunct );
144
145APIRET CDECL FAR RMAdjToHandleList(PADJUNCT pAdj,
146 HADAPTER hStartNode,
147 PADJHANDLELIST pAdjHndList );
148
149APIRET CDECL FAR RMHDevToHLDev( HDEVICE hDevice,
150 HLDEV hStartLDev,
151 PHLDEV phLDev );
152
153APIRET CDECL FAR RMResToHandleList(PRESOURCESTRUCT pRes,
154 PHANDLELIST pHndList );
155
156APIRET CDECL FAR RMActivateAdapter(HDRIVER hDriver,
157 HADAPTER hAdapter);
158
159APIRET CDECL FAR RMDeactivateAdapter(HDRIVER hDriver,
160 HADAPTER hAdapter);
161
162APIRET CDECL FAR RMCreateLinkDevice(HDRIVER hDriver,
163 PHDEVICE phLinkDevice,
164 PDEVICESTRUCT pDeviceStruct,
165 PAHDEVICES pahDevices);
166
167APIRET CDECL FAR RMModifyResources(HDRIVER hDriver,
168 HADAPTER hAdapter,
169 USHORT ModifyAction,
170 HRESOURCE hResource);
171
172
173APIRET CDECL FAR RMGetNodeInfo(RMHANDLE RMHandle,
174 PRM_GETNODE_DATA pNodeInfo,
175 USHORT BufferSize);
176
177
178APIRET CDECL FAR RMParseScsiInquiry(PVOID pInquiry,
179 PSZ pDescBuffer,
180 USHORT BufferSize);
181
182
183APIRET CDECL FAR RMCreateDetected(HDRIVER hDriver,
184 PHDETECTED phDetected,
185 PDETECTEDSTRUCT pDetectedStruct,
186 PAHRESOURCE pahResource);
187
188APIRET CDECL FAR RMDestroyDetected(HDRIVER hDriver,
189 HDETECTED hDetected);
190
191APIRET CDECL FAR RMDevIDToHandleList(IDTYPE IDType,
192 DEVID DeviceID,
193 DEVID FunctionID,
194 DEVID CompatibleID,
195 VENDID VendorID,
196 SERNUM SerialNumber,
197 SEARCHIDFLAGS SearchFlags,
198 HDETECTED hStartNode,
199 PHANDLELIST pHndList);
200
201APIRET CDECL FAR RMHandleToResourceHandleList(RMHANDLE hHandle,
202 PHANDLELIST pHndList);
203
204APIRET CDECL FAR RMModifyNodeFlags(HDRIVER hDriver,
205 RMHANDLE hNode,
206 USHORT Flags);
207
208APIRET CDECL FAR RMConvertID(PULONG pId, PSZ String, USHORT Direction);
209
210APIRET CDECL FAR RMGetCommandLine(PSZ ConfigFileSpec,
211 PSZ ConfigParms,
212 PUSHORT ConfigParmsLen,
213 USHORT Index,
214 USHORT DDtype);
215
216APIRET CDECL FAR RMGetVersion(PUSHORT pMajorVersion,
217 PUSHORT pMinorVersion);
218
219APIRET CDECL FAR RMSetSnoopLevel(USHORT SnoopLevel,
220 USHORT SnoopFlags);
221
222APIRET CDECL FAR RMSaveDetectedData(USHORT SaveFlags);
223
224APIRET CDECL FAR RMDeleteDetectedData(USHORT DeleteFlags);
225
226APIRET CDECL FAR RMGetSnoopLevel(PUSHORT SnoopLevel,
227 USHORT SnoopFlags);
228
229
230
231#ifndef __32BIT__
232/*******************************************************/
233/* The alloc_text pragma allows steering of a function */
234/* to a specified segment. */
235/* To override the names of these segments place a */
236/* #define RMCode MY_SEGMENT_NAME */
237/*******************************************************/
238
239
240#pragma alloc_text(RMCode,RMCreateDriver)
241#pragma alloc_text(RMCode,RMDestroyDriver)
242
243#pragma alloc_text(RMCode,RMCreateAdapter)
244#pragma alloc_text(RMCode,RMDestroyAdapter)
245
246#pragma alloc_text(RMCode,RMCreateDevice)
247#pragma alloc_text(RMCode,RMDestroyDevice)
248
249#pragma alloc_text(RMCode,RMAllocResource)
250#pragma alloc_text(RMCode,RMDeallocResource)
251
252#pragma alloc_text(RMCode,RMClaimResources)
253#pragma alloc_text(RMCode,RMReleaseResources)
254
255#pragma alloc_text(RMCode,RMCreateLDev)
256#pragma alloc_text(RMCode,RMDestroyLDev)
257
258#pragma alloc_text(RMCode,RMCreateSysName)
259#pragma alloc_text(RMCode,RMDestroySysName)
260
261#pragma alloc_text(RMCode,RMADDToHDEVICE)
262#pragma alloc_text(RMCode,RMActivateAdapter)
263#pragma alloc_text(RMCode,RMDeactivateAdapter)
264
265#pragma alloc_text(RMCode,RMKeyToHandleList)
266#pragma alloc_text(RMCode,RMHandleToType)
267#pragma alloc_text(RMCode,RMHandleToParent)
268
269#pragma alloc_text(RMCode,RMCreateLinkDevice)
270#pragma alloc_text(RMCode,RMModifyResources)
271#pragma alloc_text(RMCode,RMParseScsiInquiry)
272
273#pragma alloc_text(RMCode,RMUpdateAdjunct)
274#pragma alloc_text(RMCode,RMAdjToHandleList)
275#pragma alloc_text(RMCode,RMHDevToHLDev)
276#pragma alloc_text(RMCode,RMResToHandleList)
277#pragma alloc_text(RMCode,RMGetNodeInfo)
278
279#pragma alloc_text(RMCode,RMCreateDetected)
280#pragma alloc_text(RMCode,RMDestroyDetected)
281#pragma alloc_text(RMCode,RMDevIDToHandleList)
282#pragma alloc_text(RMCode,RMHandleToResourceHandleList)
283#pragma alloc_text(RMCode,RMModifyNodeFlags)
284#pragma alloc_text(RMCode,RMConvertID)
285#pragma alloc_text(RMCode,RMGetCommandLine)
286#pragma alloc_text(RMCode,RMGetVersion)
287
288#pragma alloc_text(RMCode,RMSetSnoopLevel)
289#pragma alloc_text(RMCode,RMSaveDetectedData)
290#pragma alloc_text(RMCode,RMDeleteDetectedData)
291#endif
292
293/****************************************************************************/
294/* */
295/* Resource Manager Return Codes */
296/* */
297/****************************************************************************/
298#define RMRC_SUCCESS 0x0000
299#define RMRC_NOTINITIALIZED 0x0001
300#define RMRC_BAD_DRIVERHANDLE 0x0002
301#define RMRC_BAD_ADAPTERHANDLE 0x0003
302#define RMRC_BAD_DEVICEHANDLE 0x0004
303#define RMRC_BAD_RESOURCEHANDLE 0x0005
304#define RMRC_BAD_LDEVHANDLE 0x0006
305#define RMRC_BAD_SYSNAMEHANDLE 0x0007
306#define RMRC_BAD_DEVHELP 0x0008
307#define RMRC_NULL_POINTER 0x0009
308#define RMRC_NULL_STRINGS 0x000a
309#define RMRC_BAD_VERSION 0x000b
310#define RMRC_RES_ALREADY_CLAIMED 0x000c
311#define RMRC_DEV_ALREADY_CLAIMED 0x000d
312#define RMRC_INVALID_PARM_VALUE 0x000e
313#define RMRC_OUT_OF_MEMORY 0x000f
314#define RMRC_SEARCH_FAILED 0x0010
315#define RMRC_BUFFER_TOO_SMALL 0x0011
316#define RMRC_GENERAL_FAILURE 0x0012
317#define RMRC_IRQ_ENTRY_ILLEGAL 0x0013
318#define RMRC_NOT_IMPLEMENTED 0x0014
319#define RMRC_NOT_INSTALLED 0x0015
320#define RMRC_BAD_DETECTHANDLE 0x0016
321#define RMRC_BAD_RMHANDLE 0x0017
322#define RMRC_BAD_FLAGS 0x0018
323#define RMRC_NO_DETECTED_DATA 0x0019
324
325
326/*********************/
327/* RM Types */
328/*********************/
329
330typedef struct {
331 UCHAR MajorVersion;
332 UCHAR MinorVersion;
333 USHORT NumRSMEntries;
334} RSMVERSTRUCT, FAR *PRSMVERSTRUCT, NEAR *NPRSMVERSTRUCT;
335
336
337#endif /* __RM_CALLS__ */
Note: See TracBrowser for help on using the repository browser.