Produce all the PciIo & Dpath protocol for all the pci devices under the current...
[people/mcb30/edk2.git] / edk2 / IntelFrameworkModulePkg / Bus / Pci / PciBusDxe / PciDeviceSupport.h
1 /**@file\r
2 \r
3 Copyright (c) 2006, Intel Corporation                                                         \r
4 All rights reserved. This program and the accompanying materials                          \r
5 are licensed and made available under the terms and conditions of the BSD License         \r
6 which accompanies this distribution.  The full text of the license may be found at        \r
7 http://opensource.org/licenses/bsd-license.php                                            \r
8                                                                                           \r
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
11 \r
12 **/\r
13 \r
14 #ifndef _EFI_PCI_DEVICE_SUPPORT_H\r
15 #define _EFI_PCI_DEVICE_SUPPORT_H\r
16 \r
17 EFI_STATUS\r
18 InitializePciDevicePool (\r
19   VOID\r
20   )\r
21 /*++\r
22 \r
23 Routine Description:\r
24 \r
25   TODO: Add function description\r
26 \r
27 Arguments:\r
28 \r
29   None\r
30 \r
31 Returns:\r
32 \r
33   TODO: add return values\r
34 \r
35 --*/\r
36 ;\r
37 \r
38 EFI_STATUS\r
39 InsertRootBridge (\r
40   PCI_IO_DEVICE *RootBridge\r
41   )\r
42 /*++\r
43 \r
44 Routine Description:\r
45 \r
46   TODO: Add function description\r
47 \r
48 Arguments:\r
49 \r
50   RootBridge  - TODO: add argument description\r
51 \r
52 Returns:\r
53 \r
54   TODO: add return values\r
55 \r
56 --*/\r
57 ;\r
58 \r
59 EFI_STATUS\r
60 InsertPciDevice (\r
61   PCI_IO_DEVICE *Bridge,\r
62   PCI_IO_DEVICE *PciDeviceNode\r
63   )\r
64 /*++\r
65 \r
66 Routine Description:\r
67 \r
68   TODO: Add function description\r
69 \r
70 Arguments:\r
71 \r
72   Bridge        - TODO: add argument description\r
73   PciDeviceNode - TODO: add argument description\r
74 \r
75 Returns:\r
76 \r
77   TODO: add return values\r
78 \r
79 --*/\r
80 ;\r
81 \r
82 EFI_STATUS\r
83 DestroyRootBridge (\r
84   IN PCI_IO_DEVICE *RootBridge\r
85   )\r
86 /*++\r
87 \r
88 Routine Description:\r
89 \r
90   TODO: Add function description\r
91 \r
92 Arguments:\r
93 \r
94   RootBridge  - TODO: add argument description\r
95 \r
96 Returns:\r
97 \r
98   TODO: add return values\r
99 \r
100 --*/\r
101 ;\r
102 \r
103 EFI_STATUS\r
104 DestroyPciDeviceTree (\r
105   IN PCI_IO_DEVICE *Bridge\r
106   )\r
107 /*++\r
108 \r
109 Routine Description:\r
110 \r
111   TODO: Add function description\r
112 \r
113 Arguments:\r
114 \r
115   Bridge  - TODO: add argument description\r
116 \r
117 Returns:\r
118 \r
119   TODO: add return values\r
120 \r
121 --*/\r
122 ;\r
123 \r
124 EFI_STATUS\r
125 DestroyRootBridgeByHandle (\r
126   EFI_HANDLE Controller\r
127   )\r
128 /*++\r
129 \r
130 Routine Description:\r
131 \r
132   TODO: Add function description\r
133 \r
134 Arguments:\r
135 \r
136   Controller  - TODO: add argument description\r
137 \r
138 Returns:\r
139 \r
140   TODO: add return values\r
141 \r
142 --*/\r
143 ;\r
144 \r
145 EFI_STATUS\r
146 RegisterPciDevice (\r
147   IN  EFI_HANDLE                     Controller,\r
148   IN  PCI_IO_DEVICE                  *PciIoDevice,\r
149   OUT EFI_HANDLE                     *Handle OPTIONAL\r
150   )\r
151 /*++\r
152 \r
153 Routine Description:\r
154 \r
155   TODO: Add function description\r
156 \r
157 Arguments:\r
158 \r
159   Controller  - TODO: add argument description\r
160   PciIoDevice - TODO: add argument description\r
161   Handle      - TODO: add argument description\r
162 \r
163 Returns:\r
164 \r
165   TODO: add return values\r
166 \r
167 --*/\r
168 ;\r
169 \r
170 EFI_STATUS\r
171 RemoveAllPciDeviceOnBridge (\r
172   EFI_HANDLE               RootBridgeHandle,\r
173   PCI_IO_DEVICE            *Bridge\r
174   )\r
175 /*++\r
176 \r
177 Routine Description:\r
178 \r
179   TODO: Add function description\r
180 \r
181 Arguments:\r
182 \r
183   RootBridgeHandle  - TODO: add argument description\r
184   Bridge            - TODO: add argument description\r
185 \r
186 Returns:\r
187 \r
188   TODO: add return values\r
189 \r
190 --*/\r
191 ;\r
192 \r
193 EFI_STATUS\r
194 DeRegisterPciDevice (\r
195   IN  EFI_HANDLE                     Controller,\r
196   IN  EFI_HANDLE                     Handle\r
197   )\r
198 /*++\r
199 \r
200 Routine Description:\r
201 \r
202   TODO: Add function description\r
203 \r
204 Arguments:\r
205 \r
206   Controller  - TODO: add argument description\r
207   Handle      - TODO: add argument description\r
208 \r
209 Returns:\r
210 \r
211   TODO: add return values\r
212 \r
213 --*/\r
214 ;\r
215 \r
216 EFI_STATUS\r
217 StartPciDevicesOnBridge (\r
218   IN EFI_HANDLE                          Controller,\r
219   IN PCI_IO_DEVICE                       *RootBridge,\r
220   IN EFI_DEVICE_PATH_PROTOCOL            *RemainingDevicePath,\r
221   IN OUT UINT8                           *NumberOfChildren,\r
222   IN OUT EFI_HANDLE                      *ChildHandleBuffer\r
223   )\r
224 /*++\r
225 \r
226 Routine Description:\r
227 \r
228   TODO: Add function description\r
229 \r
230 Arguments:\r
231 \r
232   Controller          - TODO: add argument description\r
233   RootBridge          - TODO: add argument description\r
234   RemainingDevicePath - TODO: add argument description\r
235   NumberOfChildren    - TODO: add argument description\r
236   ChildHandleBuffer   - TODO: add argument description\r
237 \r
238 Returns:\r
239 \r
240   TODO: add return values\r
241 \r
242 --*/\r
243 ;\r
244 \r
245 EFI_STATUS\r
246 StartPciDevices (\r
247   IN EFI_HANDLE                         Controller\r
248   )\r
249 /*++\r
250 \r
251 Routine Description:\r
252 \r
253   TODO: Add function description\r
254 \r
255 Arguments:\r
256 \r
257   Controller          - TODO: add argument description\r
258 \r
259 Returns:\r
260 \r
261   TODO: add return values\r
262 \r
263 --*/\r
264 ;\r
265 \r
266 PCI_IO_DEVICE *\r
267 CreateRootBridge (\r
268   IN EFI_HANDLE RootBridgeHandle\r
269   )\r
270 /*++\r
271 \r
272 Routine Description:\r
273 \r
274   TODO: Add function description\r
275 \r
276 Arguments:\r
277 \r
278   RootBridgeHandle  - TODO: add argument description\r
279 \r
280 Returns:\r
281 \r
282   TODO: add return values\r
283 \r
284 --*/\r
285 ;\r
286 \r
287 PCI_IO_DEVICE *\r
288 GetRootBridgeByHandle (\r
289   EFI_HANDLE RootBridgeHandle\r
290   )\r
291 /*++\r
292 \r
293 Routine Description:\r
294 \r
295   TODO: Add function description\r
296 \r
297 Arguments:\r
298 \r
299   RootBridgeHandle  - TODO: add argument description\r
300 \r
301 Returns:\r
302 \r
303   TODO: add return values\r
304 \r
305 --*/\r
306 ;\r
307 \r
308 BOOLEAN\r
309 RootBridgeExisted (\r
310   IN EFI_HANDLE RootBridgeHandle\r
311   )\r
312 /*++\r
313 \r
314 Routine Description:\r
315 \r
316   TODO: Add function description\r
317 \r
318 Arguments:\r
319 \r
320   RootBridgeHandle  - TODO: add argument description\r
321 \r
322 Returns:\r
323 \r
324   TODO: add return values\r
325 \r
326 --*/\r
327 ;\r
328 \r
329 BOOLEAN\r
330 PciDeviceExisted (\r
331   IN PCI_IO_DEVICE    *Bridge,\r
332   IN PCI_IO_DEVICE    *PciIoDevice\r
333   )\r
334 /*++\r
335 \r
336 Routine Description:\r
337 \r
338   TODO: Add function description\r
339 \r
340 Arguments:\r
341 \r
342   Bridge      - TODO: add argument description\r
343   PciIoDevice - TODO: add argument description\r
344 \r
345 Returns:\r
346 \r
347   TODO: add return values\r
348 \r
349 --*/\r
350 ;\r
351 \r
352 PCI_IO_DEVICE *\r
353 ActiveVGADeviceOnTheSameSegment (\r
354   IN PCI_IO_DEVICE        *VgaDevice\r
355   )\r
356 /*++\r
357 \r
358 Routine Description:\r
359 \r
360   TODO: Add function description\r
361 \r
362 Arguments:\r
363 \r
364   VgaDevice - TODO: add argument description\r
365 \r
366 Returns:\r
367 \r
368   TODO: add return values\r
369 \r
370 --*/\r
371 ;\r
372 \r
373 PCI_IO_DEVICE *\r
374 ActiveVGADeviceOnTheRootBridge (\r
375   IN PCI_IO_DEVICE        *RootBridge\r
376   )\r
377 /*++\r
378 \r
379 Routine Description:\r
380 \r
381   TODO: Add function description\r
382 \r
383 Arguments:\r
384 \r
385   RootBridge  - TODO: add argument description\r
386 \r
387 Returns:\r
388 \r
389   TODO: add return values\r
390 \r
391 --*/\r
392 ;\r
393 \r
394 EFI_STATUS\r
395 GetHpcPciAddress (\r
396   IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL  *PciRootBridgeIo,\r
397   IN  EFI_DEVICE_PATH_PROTOCOL         *HpcDevicePath,\r
398   OUT UINT64                           *PciAddress\r
399   )\r
400 /*++\r
401 \r
402 Routine Description:\r
403 \r
404   TODO: Add function description\r
405 \r
406 Arguments:\r
407 \r
408   PciRootBridgeIo - TODO: add argument description\r
409   HpcDevicePath   - TODO: add argument description\r
410   PciAddress      - TODO: add argument description\r
411 \r
412 Returns:\r
413 \r
414   TODO: add return values\r
415 \r
416 --*/\r
417 ;\r
418 \r
419 EFI_STATUS\r
420 GetHpcPciAddressFromRootBridge (\r
421   IN  PCI_IO_DEVICE                    *RootBridge,\r
422   IN  EFI_DEVICE_PATH_PROTOCOL         *RemainingDevicePath,\r
423   OUT UINT64                           *PciAddress\r
424   )\r
425 /*++\r
426 \r
427 Routine Description:\r
428 \r
429   TODO: Add function description\r
430 \r
431 Arguments:\r
432 \r
433   RootBridge          - TODO: add argument description\r
434   RemainingDevicePath - TODO: add argument description\r
435   PciAddress          - TODO: add argument description\r
436 \r
437 Returns:\r
438 \r
439   TODO: add return values\r
440 \r
441 --*/\r
442 ;\r
443 \r
444 EFI_STATUS\r
445 FreePciDevice (\r
446   IN PCI_IO_DEVICE *PciIoDevice\r
447   )\r
448 /*++\r
449 \r
450 Routine Description:\r
451 \r
452   TODO: Add function description\r
453 \r
454 Arguments:\r
455 \r
456   PciIoDevice - TODO: add argument description\r
457 \r
458 Returns:\r
459 \r
460   TODO: add return values\r
461 \r
462 --*/\r
463 ;\r
464 \r
465 #endif\r