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.
14 #ifndef _EFI_PCI_RESOURCE_SUPPORT_H
15 #define _EFI_PCI_RESOURCE_SUPPORT_H
17 #define RESERVED_RESOURCE_SIGNATURE EFI_SIGNATURE_32 ('r', 's', 'v', 'd')
23 } PCI_RESERVED_RESOURCE_NODE
;
28 PCI_RESERVED_RESOURCE_NODE Node
;
29 } PCI_RESERVED_RESOURCE_LIST
;
31 #define RESOURCED_LIST_FROM_NODE(a) \
32 CR (a, PCI_RESERVED_RESOURCE_LIST, Node, RESERVED_RESOURCE_SIGNATURE)
34 #define RESOURCED_LIST_FROM_LINK(a) \
35 CR (a, PCI_RESERVED_RESOURCE_LIST, Link, RESERVED_RESOURCE_SIGNATURE)
38 PciResUsageTypical
= 0,
40 PciResUsageOptionRomProcessing
43 #define PCI_RESOURCE_SIGNATURE EFI_SIGNATURE_32 ('p', 'c', 'r', 'c')
49 PCI_IO_DEVICE
*PciDev
;
56 PCI_RESOURCE_USAGE ResourceUsage
;
59 #define RESOURCE_NODE_FROM_LINK(a) \
60 CR (a, PCI_RESOURCE_NODE, Link, PCI_RESOURCE_SIGNATURE)
71 TODO: Add function description
75 Start - TODO: add argument description
76 Length - TODO: add argument description
80 TODO: add return values
86 SkipIsaAliasAperture (
94 TODO: Add function description
98 Start - TODO: add argument description
99 Length - TODO: add argument description
103 TODO: add return values
110 PCI_RESOURCE_NODE
*Bridge
,
111 PCI_RESOURCE_NODE
*ResNode
117 TODO: Add function description
121 Bridge - TODO: add argument description
122 ResNode - TODO: add argument description
126 TODO: add return values
133 PCI_RESOURCE_NODE
*Dst
,
134 PCI_RESOURCE_NODE
*Res
,
141 TODO: Add function description
145 Dst - TODO: add argument description
146 Res - TODO: add argument description
147 TypeMerge - TODO: add argument description
151 TODO: add return values
157 CalculateApertureIo16 (
158 IN PCI_RESOURCE_NODE
*Bridge
164 TODO: Add function description
168 Bridge - TODO: add argument description
172 TODO: add return values
178 CalculateResourceAperture (
179 IN PCI_RESOURCE_NODE
*Bridge
185 TODO: Add function description
189 Bridge - TODO: add argument description
193 TODO: add return values
199 GetResourceFromDevice (
200 PCI_IO_DEVICE
*PciDev
,
201 PCI_RESOURCE_NODE
*IoNode
,
202 PCI_RESOURCE_NODE
*Mem32Node
,
203 PCI_RESOURCE_NODE
*PMem32Node
,
204 PCI_RESOURCE_NODE
*Mem64Node
,
205 PCI_RESOURCE_NODE
*PMem64Node
211 TODO: Add function description
215 PciDev - TODO: add argument description
216 IoNode - TODO: add argument description
217 Mem32Node - TODO: add argument description
218 PMem32Node - TODO: add argument description
219 Mem64Node - TODO: add argument description
220 PMem64Node - TODO: add argument description
224 TODO: add return values
231 IN PCI_IO_DEVICE
*PciDev
,
235 IN PCI_BAR_TYPE ResType
,
236 IN PCI_RESOURCE_USAGE ResUsage
242 TODO: Add function description
246 PciDev - TODO: add argument description
247 Length - TODO: add argument description
248 Alignment - TODO: add argument description
249 Bar - TODO: add argument description
250 ResType - TODO: add argument description
251 ResUsage - TODO: add argument description
255 TODO: add return values
262 IN PCI_IO_DEVICE
*Bridge
,
263 IN PCI_RESOURCE_NODE
*IoNode
,
264 IN PCI_RESOURCE_NODE
*Mem32Node
,
265 IN PCI_RESOURCE_NODE
*PMem32Node
,
266 IN PCI_RESOURCE_NODE
*Mem64Node
,
267 IN PCI_RESOURCE_NODE
*PMem64Node
273 TODO: Add function description
277 Bridge - TODO: add argument description
278 IoNode - TODO: add argument description
279 Mem32Node - TODO: add argument description
280 PMem32Node - TODO: add argument description
281 Mem64Node - TODO: add argument description
282 PMem64Node - TODO: add argument description
286 TODO: add return values
292 ResourcePaddingPolicy (
293 PCI_IO_DEVICE
*PciDev
,
294 PCI_RESOURCE_NODE
*IoNode
,
295 PCI_RESOURCE_NODE
*Mem32Node
,
296 PCI_RESOURCE_NODE
*PMem32Node
,
297 PCI_RESOURCE_NODE
*Mem64Node
,
298 PCI_RESOURCE_NODE
*PMem64Node
304 TODO: Add function description
308 PciDev - TODO: add argument description
309 IoNode - TODO: add argument description
310 Mem32Node - TODO: add argument description
311 PMem32Node - TODO: add argument description
312 Mem64Node - TODO: add argument description
313 PMem64Node - TODO: add argument description
317 TODO: add return values
324 IN PCI_IO_DEVICE
*Bridge
,
325 IN PCI_RESOURCE_NODE
*Mem32Node
,
326 IN PCI_RESOURCE_NODE
*PMem32Node
,
327 IN PCI_RESOURCE_NODE
*Mem64Node
,
328 IN PCI_RESOURCE_NODE
*PMem64Node
334 TODO: Add function description
338 Bridge - TODO: add argument description
339 Mem32Node - TODO: add argument description
340 PMem32Node - TODO: add argument description
341 Mem64Node - TODO: add argument description
342 PMem64Node - TODO: add argument description
346 TODO: add return values
352 BridgeSupportResourceDecode (
353 IN PCI_IO_DEVICE
*Bridge
,
360 TODO: Add function description
364 Bridge - TODO: add argument description
365 Decode - TODO: add argument description
369 TODO: add return values
377 IN PCI_RESOURCE_NODE
*Bridge
383 TODO: Add function description
387 Base - TODO: add argument description
388 Bridge - TODO: add argument description
392 TODO: add return values
400 IN PCI_RESOURCE_NODE
*Node
406 TODO: Add function description
410 Base - TODO: add argument description
411 Node - TODO: add argument description
415 TODO: add return values
421 ProgramPpbApperture (
423 IN PCI_RESOURCE_NODE
*Node
429 TODO: Add function description
433 Base - TODO: add argument description
434 Node - TODO: add argument description
438 TODO: add return values
444 ProgrameUpstreamBridgeForRom (
445 IN PCI_IO_DEVICE
*PciDevice
,
446 IN UINT32 OptionRomBase
,
453 TODO: Add function description
457 PciDevice - TODO: add argument description
458 OptionRomBase - TODO: add argument description
459 Enable - TODO: add argument description
463 TODO: add return values
469 ResourceRequestExisted (
470 IN PCI_RESOURCE_NODE
*Bridge
476 TODO: Add function description
480 Bridge - TODO: add argument description
484 TODO: add return values
490 InitializeResourcePool (
491 PCI_RESOURCE_NODE
*ResourcePool
,
492 PCI_BAR_TYPE ResourceType
498 TODO: Add function description
502 ResourcePool - TODO: add argument description
503 ResourceType - TODO: add argument description
507 TODO: add return values
514 PCI_IO_DEVICE
*PciDev
,
515 PCI_RESOURCE_NODE
**IoBridge
,
516 PCI_RESOURCE_NODE
**Mem32Bridge
,
517 PCI_RESOURCE_NODE
**PMem32Bridge
,
518 PCI_RESOURCE_NODE
**Mem64Bridge
,
519 PCI_RESOURCE_NODE
**PMem64Bridge
,
520 PCI_RESOURCE_NODE
*IoPool
,
521 PCI_RESOURCE_NODE
*Mem32Pool
,
522 PCI_RESOURCE_NODE
*PMem32Pool
,
523 PCI_RESOURCE_NODE
*Mem64Pool
,
524 PCI_RESOURCE_NODE
*PMem64Pool
530 TODO: Add function description
534 PciDev - TODO: add argument description
535 IoBridge - TODO: add argument description
536 Mem32Bridge - TODO: add argument description
537 PMem32Bridge - TODO: add argument description
538 Mem64Bridge - TODO: add argument description
539 PMem64Bridge - TODO: add argument description
540 IoPool - TODO: add argument description
541 Mem32Pool - TODO: add argument description
542 PMem32Pool - TODO: add argument description
543 Mem64Pool - TODO: add argument description
544 PMem64Pool - TODO: add argument description
548 TODO: add return values
554 DestroyResourceTree (
555 IN PCI_RESOURCE_NODE
*Bridge
561 TODO: Add function description
565 Bridge - TODO: add argument description
569 TODO: add return values
575 RecordReservedResource (
578 IN PCI_BAR_TYPE ResType
,
579 IN PCI_IO_DEVICE
*Bridge
585 TODO: Add function description
589 Base - TODO: add argument description
590 Length - TODO: add argument description
591 ResType - TODO: add argument description
592 Bridge - TODO: add argument description
596 TODO: add return values
602 ResourcePaddingForCardBusBridge (
603 PCI_IO_DEVICE
*PciDev
,
604 PCI_RESOURCE_NODE
*IoNode
,
605 PCI_RESOURCE_NODE
*Mem32Node
,
606 PCI_RESOURCE_NODE
*PMem32Node
,
607 PCI_RESOURCE_NODE
*Mem64Node
,
608 PCI_RESOURCE_NODE
*PMem64Node
614 TODO: Add function description
618 PciDev - TODO: add argument description
619 IoNode - TODO: add argument description
620 Mem32Node - TODO: add argument description
621 PMem32Node - TODO: add argument description
622 Mem64Node - TODO: add argument description
623 PMem64Node - TODO: add argument description
627 TODO: add return values
635 IN PCI_RESOURCE_NODE
*Node
641 TODO: Add function description
645 Base - TODO: add argument description
646 Node - TODO: add argument description
650 TODO: add return values
656 ApplyResourcePadding (
657 PCI_IO_DEVICE
*PciDev
,
658 PCI_RESOURCE_NODE
*IoNode
,
659 PCI_RESOURCE_NODE
*Mem32Node
,
660 PCI_RESOURCE_NODE
*PMem32Node
,
661 PCI_RESOURCE_NODE
*Mem64Node
,
662 PCI_RESOURCE_NODE
*PMem64Node
668 TODO: Add function description
672 PciDev - TODO: add argument description
673 IoNode - TODO: add argument description
674 Mem32Node - TODO: add argument description
675 PMem32Node - TODO: add argument description
676 Mem64Node - TODO: add argument description
677 PMem64Node - TODO: add argument description
681 TODO: add return values
687 GetResourcePaddingPpb (
688 IN PCI_IO_DEVICE
*PciIoDevice
694 TODO: Add function description
698 PciIoDevice - TODO: add argument description
702 TODO: add return values
709 IN PCI_IO_DEVICE
*Bridge
,
710 IN UINT8 StartBusNumber
720 Bridge - a pointer to the PCI_IO_DEVICE
721 StartBusNumber - the number of bus