3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
24 #ifndef _EFI_PCI_RESOURCE_SUPPORT_H
25 #define _EFI_PCI_RESOURCE_SUPPORT_H
27 #define RESERVED_RESOURCE_SIGNATURE EFI_SIGNATURE_32 ('r', 's', 'v', 'd')
33 } PCI_RESERVED_RESOURCE_NODE
;
38 PCI_RESERVED_RESOURCE_NODE Node
;
39 } PCI_RESERVED_RESOURCE_LIST
;
41 #define RESOURCED_LIST_FROM_NODE(a) \
42 CR (a, PCI_RESERVED_RESOURCE_LIST, Node, RESERVED_RESOURCE_SIGNATURE)
44 #define RESOURCED_LIST_FROM_LINK(a) \
45 CR (a, PCI_RESERVED_RESOURCE_LIST, Link, RESERVED_RESOURCE_SIGNATURE)
48 PciResUsageTypical
= 0,
50 PciResUsageOptionRomProcessing
53 #define PCI_RESOURCE_SIGNATURE EFI_SIGNATURE_32 ('p', 'c', 'r', 'c')
59 PCI_IO_DEVICE
*PciDev
;
66 PCI_RESOURCE_USAGE ResourceUsage
;
69 #define RESOURCE_NODE_FROM_LINK(a) \
70 CR (a, PCI_RESOURCE_NODE, Link, PCI_RESOURCE_SIGNATURE)
81 TODO: Add function description
85 Start - TODO: add argument description
86 Length - TODO: add argument description
90 TODO: add return values
96 SkipIsaAliasAperture (
104 TODO: Add function description
108 Start - TODO: add argument description
109 Length - TODO: add argument description
113 TODO: add return values
120 PCI_RESOURCE_NODE
*Bridge
,
121 PCI_RESOURCE_NODE
*ResNode
127 TODO: Add function description
131 Bridge - TODO: add argument description
132 ResNode - TODO: add argument description
136 TODO: add return values
143 PCI_RESOURCE_NODE
*Dst
,
144 PCI_RESOURCE_NODE
*Res
,
151 TODO: Add function description
155 Dst - TODO: add argument description
156 Res - TODO: add argument description
157 TypeMerge - TODO: add argument description
161 TODO: add return values
167 CalculateApertureIo16 (
168 IN PCI_RESOURCE_NODE
*Bridge
174 TODO: Add function description
178 Bridge - TODO: add argument description
182 TODO: add return values
188 CalculateResourceAperture (
189 IN PCI_RESOURCE_NODE
*Bridge
195 TODO: Add function description
199 Bridge - TODO: add argument description
203 TODO: add return values
209 GetResourceFromDevice (
210 PCI_IO_DEVICE
*PciDev
,
211 PCI_RESOURCE_NODE
*IoNode
,
212 PCI_RESOURCE_NODE
*Mem32Node
,
213 PCI_RESOURCE_NODE
*PMem32Node
,
214 PCI_RESOURCE_NODE
*Mem64Node
,
215 PCI_RESOURCE_NODE
*PMem64Node
221 TODO: Add function description
225 PciDev - TODO: add argument description
226 IoNode - TODO: add argument description
227 Mem32Node - TODO: add argument description
228 PMem32Node - TODO: add argument description
229 Mem64Node - TODO: add argument description
230 PMem64Node - TODO: add argument description
234 TODO: add return values
241 IN PCI_IO_DEVICE
*PciDev
,
245 IN PCI_BAR_TYPE ResType
,
246 IN PCI_RESOURCE_USAGE ResUsage
252 TODO: Add function description
256 PciDev - TODO: add argument description
257 Length - TODO: add argument description
258 Alignment - TODO: add argument description
259 Bar - TODO: add argument description
260 ResType - TODO: add argument description
261 ResUsage - TODO: add argument description
265 TODO: add return values
272 IN PCI_IO_DEVICE
*Bridge
,
273 IN PCI_RESOURCE_NODE
*IoNode
,
274 IN PCI_RESOURCE_NODE
*Mem32Node
,
275 IN PCI_RESOURCE_NODE
*PMem32Node
,
276 IN PCI_RESOURCE_NODE
*Mem64Node
,
277 IN PCI_RESOURCE_NODE
*PMem64Node
283 TODO: Add function description
287 Bridge - TODO: add argument description
288 IoNode - TODO: add argument description
289 Mem32Node - TODO: add argument description
290 PMem32Node - TODO: add argument description
291 Mem64Node - TODO: add argument description
292 PMem64Node - TODO: add argument description
296 TODO: add return values
302 ResourcePaddingPolicy (
303 PCI_IO_DEVICE
*PciDev
,
304 PCI_RESOURCE_NODE
*IoNode
,
305 PCI_RESOURCE_NODE
*Mem32Node
,
306 PCI_RESOURCE_NODE
*PMem32Node
,
307 PCI_RESOURCE_NODE
*Mem64Node
,
308 PCI_RESOURCE_NODE
*PMem64Node
314 TODO: Add function description
318 PciDev - TODO: add argument description
319 IoNode - TODO: add argument description
320 Mem32Node - TODO: add argument description
321 PMem32Node - TODO: add argument description
322 Mem64Node - TODO: add argument description
323 PMem64Node - TODO: add argument description
327 TODO: add return values
334 IN PCI_IO_DEVICE
*Bridge
,
335 IN PCI_RESOURCE_NODE
*Mem32Node
,
336 IN PCI_RESOURCE_NODE
*PMem32Node
,
337 IN PCI_RESOURCE_NODE
*Mem64Node
,
338 IN PCI_RESOURCE_NODE
*PMem64Node
344 TODO: Add function description
348 Bridge - TODO: add argument description
349 Mem32Node - TODO: add argument description
350 PMem32Node - TODO: add argument description
351 Mem64Node - TODO: add argument description
352 PMem64Node - TODO: add argument description
356 TODO: add return values
362 BridgeSupportResourceDecode (
363 IN PCI_IO_DEVICE
*Bridge
,
370 TODO: Add function description
374 Bridge - TODO: add argument description
375 Decode - TODO: add argument description
379 TODO: add return values
387 IN PCI_RESOURCE_NODE
*Bridge
393 TODO: Add function description
397 Base - TODO: add argument description
398 Bridge - TODO: add argument description
402 TODO: add return values
410 IN PCI_RESOURCE_NODE
*Node
416 TODO: Add function description
420 Base - TODO: add argument description
421 Node - TODO: add argument description
425 TODO: add return values
431 ProgramPpbApperture (
433 IN PCI_RESOURCE_NODE
*Node
439 TODO: Add function description
443 Base - TODO: add argument description
444 Node - TODO: add argument description
448 TODO: add return values
454 ProgrameUpstreamBridgeForRom (
455 IN PCI_IO_DEVICE
*PciDevice
,
456 IN UINT32 OptionRomBase
,
463 TODO: Add function description
467 PciDevice - TODO: add argument description
468 OptionRomBase - TODO: add argument description
469 Enable - TODO: add argument description
473 TODO: add return values
479 ResourceRequestExisted (
480 IN PCI_RESOURCE_NODE
*Bridge
486 TODO: Add function description
490 Bridge - TODO: add argument description
494 TODO: add return values
500 InitializeResourcePool (
501 PCI_RESOURCE_NODE
*ResourcePool
,
502 PCI_BAR_TYPE ResourceType
508 TODO: Add function description
512 ResourcePool - TODO: add argument description
513 ResourceType - TODO: add argument description
517 TODO: add return values
524 PCI_IO_DEVICE
*PciDev
,
525 PCI_RESOURCE_NODE
**IoBridge
,
526 PCI_RESOURCE_NODE
**Mem32Bridge
,
527 PCI_RESOURCE_NODE
**PMem32Bridge
,
528 PCI_RESOURCE_NODE
**Mem64Bridge
,
529 PCI_RESOURCE_NODE
**PMem64Bridge
,
530 PCI_RESOURCE_NODE
*IoPool
,
531 PCI_RESOURCE_NODE
*Mem32Pool
,
532 PCI_RESOURCE_NODE
*PMem32Pool
,
533 PCI_RESOURCE_NODE
*Mem64Pool
,
534 PCI_RESOURCE_NODE
*PMem64Pool
540 TODO: Add function description
544 PciDev - TODO: add argument description
545 IoBridge - TODO: add argument description
546 Mem32Bridge - TODO: add argument description
547 PMem32Bridge - TODO: add argument description
548 Mem64Bridge - TODO: add argument description
549 PMem64Bridge - TODO: add argument description
550 IoPool - TODO: add argument description
551 Mem32Pool - TODO: add argument description
552 PMem32Pool - TODO: add argument description
553 Mem64Pool - TODO: add argument description
554 PMem64Pool - TODO: add argument description
558 TODO: add return values
564 DestroyResourceTree (
565 IN PCI_RESOURCE_NODE
*Bridge
571 TODO: Add function description
575 Bridge - TODO: add argument description
579 TODO: add return values
585 RecordReservedResource (
588 IN PCI_BAR_TYPE ResType
,
589 IN PCI_IO_DEVICE
*Bridge
595 TODO: Add function description
599 Base - TODO: add argument description
600 Length - TODO: add argument description
601 ResType - TODO: add argument description
602 Bridge - TODO: add argument description
606 TODO: add return values
612 ResourcePaddingForCardBusBridge (
613 PCI_IO_DEVICE
*PciDev
,
614 PCI_RESOURCE_NODE
*IoNode
,
615 PCI_RESOURCE_NODE
*Mem32Node
,
616 PCI_RESOURCE_NODE
*PMem32Node
,
617 PCI_RESOURCE_NODE
*Mem64Node
,
618 PCI_RESOURCE_NODE
*PMem64Node
624 TODO: Add function description
628 PciDev - TODO: add argument description
629 IoNode - TODO: add argument description
630 Mem32Node - TODO: add argument description
631 PMem32Node - TODO: add argument description
632 Mem64Node - TODO: add argument description
633 PMem64Node - TODO: add argument description
637 TODO: add return values
645 IN PCI_RESOURCE_NODE
*Node
651 TODO: Add function description
655 Base - TODO: add argument description
656 Node - TODO: add argument description
660 TODO: add return values
666 ApplyResourcePadding (
667 PCI_IO_DEVICE
*PciDev
,
668 PCI_RESOURCE_NODE
*IoNode
,
669 PCI_RESOURCE_NODE
*Mem32Node
,
670 PCI_RESOURCE_NODE
*PMem32Node
,
671 PCI_RESOURCE_NODE
*Mem64Node
,
672 PCI_RESOURCE_NODE
*PMem64Node
678 TODO: Add function description
682 PciDev - TODO: add argument description
683 IoNode - TODO: add argument description
684 Mem32Node - TODO: add argument description
685 PMem32Node - TODO: add argument description
686 Mem64Node - TODO: add argument description
687 PMem64Node - TODO: add argument description
691 TODO: add return values
697 GetResourcePaddingPpb (
698 IN PCI_IO_DEVICE
*PciIoDevice
704 TODO: Add function description
708 PciIoDevice - TODO: add argument description
712 TODO: add return values
719 IN PCI_IO_DEVICE
*Bridge
,
720 IN UINT8 StartBusNumber
730 Bridge - a pointer to the PCI_IO_DEVICE
731 StartBusNumber - the number of bus