]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.h
Coding style modification.
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Pci / PciBusDxe / PciResourceSupport.h
CommitLineData
3db51098 1/**@file\r
ead42efc 2\r
3Copyright (c) 2006, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
3db51098 12**/\r
ead42efc 13\r
14#ifndef _EFI_PCI_RESOURCE_SUPPORT_H\r
15#define _EFI_PCI_RESOURCE_SUPPORT_H\r
16\r
17#define RESERVED_RESOURCE_SIGNATURE EFI_SIGNATURE_32 ('r', 's', 'v', 'd')\r
18\r
19typedef struct {\r
20 UINT64 Base;\r
21 UINT64 Length;\r
22 PCI_BAR_TYPE ResType;\r
23} PCI_RESERVED_RESOURCE_NODE;\r
24\r
25typedef struct {\r
26 UINT32 Signature;\r
27 LIST_ENTRY Link;\r
28 PCI_RESERVED_RESOURCE_NODE Node;\r
29} PCI_RESERVED_RESOURCE_LIST;\r
30\r
31#define RESOURCED_LIST_FROM_NODE(a) \\r
32 CR (a, PCI_RESERVED_RESOURCE_LIST, Node, RESERVED_RESOURCE_SIGNATURE)\r
33\r
34#define RESOURCED_LIST_FROM_LINK(a) \\r
35 CR (a, PCI_RESERVED_RESOURCE_LIST, Link, RESERVED_RESOURCE_SIGNATURE)\r
36\r
37typedef enum {\r
38 PciResUsageTypical = 0,\r
39 PciResUsagePadding,\r
40 PciResUsageOptionRomProcessing\r
41} PCI_RESOURCE_USAGE;\r
42\r
43#define PCI_RESOURCE_SIGNATURE EFI_SIGNATURE_32 ('p', 'c', 'r', 'c')\r
44\r
45typedef struct {\r
46 UINT32 Signature;\r
47 LIST_ENTRY Link;\r
48 LIST_ENTRY ChildList;\r
49 PCI_IO_DEVICE *PciDev;\r
50 UINT64 Alignment;\r
51 UINT64 Offset;\r
52 UINT8 Bar;\r
53 PCI_BAR_TYPE ResType;\r
54 UINT64 Length;\r
55 BOOLEAN Reserved;\r
56 PCI_RESOURCE_USAGE ResourceUsage;\r
57} PCI_RESOURCE_NODE;\r
58\r
59#define RESOURCE_NODE_FROM_LINK(a) \\r
60 CR (a, PCI_RESOURCE_NODE, Link, PCI_RESOURCE_SIGNATURE)\r
61\r
62EFI_STATUS\r
63SkipVGAAperture (\r
64 OUT UINT64 *Start,\r
65 IN UINT64 Length\r
66 )\r
bcd70414 67/**\r
ead42efc 68\r
69Routine Description:\r
70\r
71 TODO: Add function description\r
72\r
73Arguments:\r
74\r
75 Start - TODO: add argument description\r
76 Length - TODO: add argument description\r
77\r
78Returns:\r
79\r
80 TODO: add return values\r
81\r
bcd70414 82**/\r
ead42efc 83;\r
84\r
85EFI_STATUS\r
86SkipIsaAliasAperture (\r
87 OUT UINT64 *Start,\r
88 IN UINT64 Length\r
89 )\r
bcd70414 90/**\r
ead42efc 91\r
92Routine Description:\r
93\r
94 TODO: Add function description\r
95\r
96Arguments:\r
97\r
98 Start - TODO: add argument description\r
99 Length - TODO: add argument description\r
100\r
101Returns:\r
102\r
103 TODO: add return values\r
104\r
bcd70414 105**/\r
ead42efc 106;\r
107\r
108EFI_STATUS\r
109InsertResourceNode (\r
110 PCI_RESOURCE_NODE *Bridge,\r
111 PCI_RESOURCE_NODE *ResNode\r
112 )\r
bcd70414 113/**\r
ead42efc 114\r
115Routine Description:\r
116\r
117 TODO: Add function description\r
118\r
119Arguments:\r
120\r
121 Bridge - TODO: add argument description\r
122 ResNode - TODO: add argument description\r
123\r
124Returns:\r
125\r
126 TODO: add return values\r
127\r
bcd70414 128**/\r
ead42efc 129;\r
130\r
131EFI_STATUS\r
132MergeResourceTree (\r
133 PCI_RESOURCE_NODE *Dst,\r
134 PCI_RESOURCE_NODE *Res,\r
135 BOOLEAN TypeMerge\r
136 )\r
bcd70414 137/**\r
ead42efc 138\r
139Routine Description:\r
140\r
141 TODO: Add function description\r
142\r
143Arguments:\r
144\r
145 Dst - TODO: add argument description\r
146 Res - TODO: add argument description\r
147 TypeMerge - TODO: add argument description\r
148\r
149Returns:\r
150\r
151 TODO: add return values\r
152\r
bcd70414 153**/\r
ead42efc 154;\r
155\r
156EFI_STATUS\r
157CalculateApertureIo16 (\r
158 IN PCI_RESOURCE_NODE *Bridge\r
159 )\r
bcd70414 160/**\r
ead42efc 161\r
162Routine Description:\r
163\r
164 TODO: Add function description\r
165\r
166Arguments:\r
167\r
168 Bridge - TODO: add argument description\r
169\r
170Returns:\r
171\r
172 TODO: add return values\r
173\r
bcd70414 174**/\r
ead42efc 175;\r
176\r
177EFI_STATUS\r
178CalculateResourceAperture (\r
179 IN PCI_RESOURCE_NODE *Bridge\r
180 )\r
bcd70414 181/**\r
ead42efc 182\r
183Routine Description:\r
184\r
185 TODO: Add function description\r
186\r
187Arguments:\r
188\r
189 Bridge - TODO: add argument description\r
190\r
191Returns:\r
192\r
193 TODO: add return values\r
194\r
bcd70414 195**/\r
ead42efc 196;\r
197\r
198EFI_STATUS\r
199GetResourceFromDevice (\r
200 PCI_IO_DEVICE *PciDev,\r
201 PCI_RESOURCE_NODE *IoNode,\r
202 PCI_RESOURCE_NODE *Mem32Node,\r
203 PCI_RESOURCE_NODE *PMem32Node,\r
204 PCI_RESOURCE_NODE *Mem64Node,\r
205 PCI_RESOURCE_NODE *PMem64Node\r
206 )\r
bcd70414 207/**\r
ead42efc 208\r
209Routine Description:\r
210\r
211 TODO: Add function description\r
212\r
213Arguments:\r
214\r
215 PciDev - TODO: add argument description\r
216 IoNode - TODO: add argument description\r
217 Mem32Node - TODO: add argument description\r
218 PMem32Node - TODO: add argument description\r
219 Mem64Node - TODO: add argument description\r
220 PMem64Node - TODO: add argument description\r
221\r
222Returns:\r
223\r
224 TODO: add return values\r
225\r
bcd70414 226**/\r
ead42efc 227;\r
228\r
229PCI_RESOURCE_NODE *\r
230CreateResourceNode (\r
231 IN PCI_IO_DEVICE *PciDev,\r
232 IN UINT64 Length,\r
233 IN UINT64 Alignment,\r
234 IN UINT8 Bar,\r
235 IN PCI_BAR_TYPE ResType,\r
236 IN PCI_RESOURCE_USAGE ResUsage\r
237 )\r
bcd70414 238/**\r
ead42efc 239\r
240Routine Description:\r
241\r
242 TODO: Add function description\r
243\r
244Arguments:\r
245\r
246 PciDev - TODO: add argument description\r
247 Length - TODO: add argument description\r
248 Alignment - TODO: add argument description\r
249 Bar - TODO: add argument description\r
250 ResType - TODO: add argument description\r
251 ResUsage - TODO: add argument description\r
252\r
253Returns:\r
254\r
255 TODO: add return values\r
256\r
bcd70414 257**/\r
ead42efc 258;\r
259\r
260EFI_STATUS\r
261CreateResourceMap (\r
262 IN PCI_IO_DEVICE *Bridge,\r
263 IN PCI_RESOURCE_NODE *IoNode,\r
264 IN PCI_RESOURCE_NODE *Mem32Node,\r
265 IN PCI_RESOURCE_NODE *PMem32Node,\r
266 IN PCI_RESOURCE_NODE *Mem64Node,\r
267 IN PCI_RESOURCE_NODE *PMem64Node\r
268 )\r
bcd70414 269/**\r
ead42efc 270\r
271Routine Description:\r
272\r
273 TODO: Add function description\r
274\r
275Arguments:\r
276\r
277 Bridge - TODO: add argument description\r
278 IoNode - TODO: add argument description\r
279 Mem32Node - TODO: add argument description\r
280 PMem32Node - TODO: add argument description\r
281 Mem64Node - TODO: add argument description\r
282 PMem64Node - TODO: add argument description\r
283\r
284Returns:\r
285\r
286 TODO: add return values\r
287\r
bcd70414 288**/\r
ead42efc 289;\r
290\r
291EFI_STATUS\r
292ResourcePaddingPolicy (\r
293 PCI_IO_DEVICE *PciDev,\r
294 PCI_RESOURCE_NODE *IoNode,\r
295 PCI_RESOURCE_NODE *Mem32Node,\r
296 PCI_RESOURCE_NODE *PMem32Node,\r
297 PCI_RESOURCE_NODE *Mem64Node,\r
298 PCI_RESOURCE_NODE *PMem64Node\r
299 )\r
bcd70414 300/**\r
ead42efc 301\r
302Routine Description:\r
303\r
304 TODO: Add function description\r
305\r
306Arguments:\r
307\r
308 PciDev - TODO: add argument description\r
309 IoNode - TODO: add argument description\r
310 Mem32Node - TODO: add argument description\r
311 PMem32Node - TODO: add argument description\r
312 Mem64Node - TODO: add argument description\r
313 PMem64Node - TODO: add argument description\r
314\r
315Returns:\r
316\r
317 TODO: add return values\r
318\r
bcd70414 319**/\r
ead42efc 320;\r
321\r
322EFI_STATUS\r
323DegradeResource (\r
324 IN PCI_IO_DEVICE *Bridge,\r
325 IN PCI_RESOURCE_NODE *Mem32Node,\r
326 IN PCI_RESOURCE_NODE *PMem32Node,\r
327 IN PCI_RESOURCE_NODE *Mem64Node,\r
328 IN PCI_RESOURCE_NODE *PMem64Node\r
329 )\r
bcd70414 330/**\r
ead42efc 331\r
332Routine Description:\r
333\r
334 TODO: Add function description\r
335\r
336Arguments:\r
337\r
338 Bridge - TODO: add argument description\r
339 Mem32Node - TODO: add argument description\r
340 PMem32Node - TODO: add argument description\r
341 Mem64Node - TODO: add argument description\r
342 PMem64Node - TODO: add argument description\r
343\r
344Returns:\r
345\r
346 TODO: add return values\r
347\r
bcd70414 348**/\r
ead42efc 349;\r
350\r
351BOOLEAN\r
352BridgeSupportResourceDecode (\r
353 IN PCI_IO_DEVICE *Bridge,\r
354 IN UINT32 Decode\r
355 )\r
bcd70414 356/**\r
ead42efc 357\r
358Routine Description:\r
359\r
360 TODO: Add function description\r
361\r
362Arguments:\r
363\r
364 Bridge - TODO: add argument description\r
365 Decode - TODO: add argument description\r
366\r
367Returns:\r
368\r
369 TODO: add return values\r
370\r
bcd70414 371**/\r
ead42efc 372;\r
373\r
374EFI_STATUS\r
375ProgramResource (\r
376 IN UINT64 Base,\r
377 IN PCI_RESOURCE_NODE *Bridge\r
378 )\r
bcd70414 379/**\r
ead42efc 380\r
381Routine Description:\r
382\r
383 TODO: Add function description\r
384\r
385Arguments:\r
386\r
387 Base - TODO: add argument description\r
388 Bridge - TODO: add argument description\r
389\r
390Returns:\r
391\r
392 TODO: add return values\r
393\r
bcd70414 394**/\r
ead42efc 395;\r
396\r
397EFI_STATUS\r
398ProgramBar (\r
399 IN UINT64 Base,\r
400 IN PCI_RESOURCE_NODE *Node\r
401 )\r
bcd70414 402/**\r
ead42efc 403\r
404Routine Description:\r
405\r
406 TODO: Add function description\r
407\r
408Arguments:\r
409\r
410 Base - TODO: add argument description\r
411 Node - TODO: add argument description\r
412\r
413Returns:\r
414\r
415 TODO: add return values\r
416\r
bcd70414 417**/\r
ead42efc 418;\r
419\r
420EFI_STATUS\r
421ProgramPpbApperture (\r
422 IN UINT64 Base,\r
423 IN PCI_RESOURCE_NODE *Node\r
424 )\r
bcd70414 425/**\r
ead42efc 426\r
427Routine Description:\r
428\r
429 TODO: Add function description\r
430\r
431Arguments:\r
432\r
433 Base - TODO: add argument description\r
434 Node - TODO: add argument description\r
435\r
436Returns:\r
437\r
438 TODO: add return values\r
439\r
bcd70414 440**/\r
ead42efc 441;\r
442\r
443EFI_STATUS\r
444ProgrameUpstreamBridgeForRom (\r
445 IN PCI_IO_DEVICE *PciDevice,\r
446 IN UINT32 OptionRomBase,\r
447 IN BOOLEAN Enable\r
448 )\r
bcd70414 449/**\r
ead42efc 450\r
451Routine Description:\r
452\r
453 TODO: Add function description\r
454\r
455Arguments:\r
456\r
457 PciDevice - TODO: add argument description\r
458 OptionRomBase - TODO: add argument description\r
459 Enable - TODO: add argument description\r
460\r
461Returns:\r
462\r
463 TODO: add return values\r
464\r
bcd70414 465**/\r
ead42efc 466;\r
467\r
468BOOLEAN\r
469ResourceRequestExisted (\r
470 IN PCI_RESOURCE_NODE *Bridge\r
471 )\r
bcd70414 472/**\r
ead42efc 473\r
474Routine Description:\r
475\r
476 TODO: Add function description\r
477\r
478Arguments:\r
479\r
480 Bridge - TODO: add argument description\r
481\r
482Returns:\r
483\r
484 TODO: add return values\r
485\r
bcd70414 486**/\r
ead42efc 487;\r
488\r
489EFI_STATUS\r
490InitializeResourcePool (\r
491 PCI_RESOURCE_NODE *ResourcePool,\r
492 PCI_BAR_TYPE ResourceType\r
493 )\r
bcd70414 494/**\r
ead42efc 495\r
496Routine Description:\r
497\r
498 TODO: Add function description\r
499\r
500Arguments:\r
501\r
502 ResourcePool - TODO: add argument description\r
503 ResourceType - TODO: add argument description\r
504\r
505Returns:\r
506\r
507 TODO: add return values\r
508\r
bcd70414 509**/\r
ead42efc 510;\r
511\r
512EFI_STATUS\r
513GetResourceMap (\r
514 PCI_IO_DEVICE *PciDev,\r
515 PCI_RESOURCE_NODE **IoBridge,\r
516 PCI_RESOURCE_NODE **Mem32Bridge,\r
517 PCI_RESOURCE_NODE **PMem32Bridge,\r
518 PCI_RESOURCE_NODE **Mem64Bridge,\r
519 PCI_RESOURCE_NODE **PMem64Bridge,\r
520 PCI_RESOURCE_NODE *IoPool,\r
521 PCI_RESOURCE_NODE *Mem32Pool,\r
522 PCI_RESOURCE_NODE *PMem32Pool,\r
523 PCI_RESOURCE_NODE *Mem64Pool,\r
524 PCI_RESOURCE_NODE *PMem64Pool\r
525 )\r
bcd70414 526/**\r
ead42efc 527\r
528Routine Description:\r
529\r
530 TODO: Add function description\r
531\r
532Arguments:\r
533\r
534 PciDev - TODO: add argument description\r
535 IoBridge - TODO: add argument description\r
536 Mem32Bridge - TODO: add argument description\r
537 PMem32Bridge - TODO: add argument description\r
538 Mem64Bridge - TODO: add argument description\r
539 PMem64Bridge - TODO: add argument description\r
540 IoPool - TODO: add argument description\r
541 Mem32Pool - TODO: add argument description\r
542 PMem32Pool - TODO: add argument description\r
543 Mem64Pool - TODO: add argument description\r
544 PMem64Pool - TODO: add argument description\r
545\r
546Returns:\r
547\r
548 TODO: add return values\r
549\r
bcd70414 550**/\r
ead42efc 551;\r
552\r
553EFI_STATUS\r
554DestroyResourceTree (\r
555 IN PCI_RESOURCE_NODE *Bridge\r
556 )\r
bcd70414 557/**\r
ead42efc 558\r
559Routine Description:\r
560\r
561 TODO: Add function description\r
562\r
563Arguments:\r
564\r
565 Bridge - TODO: add argument description\r
566\r
567Returns:\r
568\r
569 TODO: add return values\r
570\r
bcd70414 571**/\r
ead42efc 572;\r
573\r
574EFI_STATUS\r
575RecordReservedResource (\r
576 IN UINT64 Base,\r
577 IN UINT64 Length,\r
578 IN PCI_BAR_TYPE ResType,\r
579 IN PCI_IO_DEVICE *Bridge\r
580 )\r
bcd70414 581/**\r
ead42efc 582\r
583Routine Description:\r
584\r
585 TODO: Add function description\r
586\r
587Arguments:\r
588\r
589 Base - TODO: add argument description\r
590 Length - TODO: add argument description\r
591 ResType - TODO: add argument description\r
592 Bridge - TODO: add argument description\r
593\r
594Returns:\r
595\r
596 TODO: add return values\r
597\r
bcd70414 598**/\r
ead42efc 599;\r
600\r
601EFI_STATUS\r
602ResourcePaddingForCardBusBridge (\r
603 PCI_IO_DEVICE *PciDev,\r
604 PCI_RESOURCE_NODE *IoNode,\r
605 PCI_RESOURCE_NODE *Mem32Node,\r
606 PCI_RESOURCE_NODE *PMem32Node,\r
607 PCI_RESOURCE_NODE *Mem64Node,\r
608 PCI_RESOURCE_NODE *PMem64Node\r
609 )\r
bcd70414 610/**\r
ead42efc 611\r
612Routine Description:\r
613\r
614 TODO: Add function description\r
615\r
616Arguments:\r
617\r
618 PciDev - TODO: add argument description\r
619 IoNode - TODO: add argument description\r
620 Mem32Node - TODO: add argument description\r
621 PMem32Node - TODO: add argument description\r
622 Mem64Node - TODO: add argument description\r
623 PMem64Node - TODO: add argument description\r
624\r
625Returns:\r
626\r
627 TODO: add return values\r
628\r
bcd70414 629**/\r
ead42efc 630;\r
631\r
632EFI_STATUS\r
633ProgramP2C (\r
634 IN UINT64 Base,\r
635 IN PCI_RESOURCE_NODE *Node\r
636 )\r
bcd70414 637/**\r
ead42efc 638\r
639Routine Description:\r
640\r
641 TODO: Add function description\r
642\r
643Arguments:\r
644\r
645 Base - TODO: add argument description\r
646 Node - TODO: add argument description\r
647\r
648Returns:\r
649\r
650 TODO: add return values\r
651\r
bcd70414 652**/\r
ead42efc 653;\r
654\r
655EFI_STATUS\r
656ApplyResourcePadding (\r
657 PCI_IO_DEVICE *PciDev,\r
658 PCI_RESOURCE_NODE *IoNode,\r
659 PCI_RESOURCE_NODE *Mem32Node,\r
660 PCI_RESOURCE_NODE *PMem32Node,\r
661 PCI_RESOURCE_NODE *Mem64Node,\r
662 PCI_RESOURCE_NODE *PMem64Node\r
663 )\r
bcd70414 664/**\r
ead42efc 665\r
666Routine Description:\r
667\r
668 TODO: Add function description\r
669\r
670Arguments:\r
671\r
672 PciDev - TODO: add argument description\r
673 IoNode - TODO: add argument description\r
674 Mem32Node - TODO: add argument description\r
675 PMem32Node - TODO: add argument description\r
676 Mem64Node - TODO: add argument description\r
677 PMem64Node - TODO: add argument description\r
678\r
679Returns:\r
680\r
681 TODO: add return values\r
682\r
bcd70414 683**/\r
ead42efc 684;\r
685\r
686VOID\r
687GetResourcePaddingPpb (\r
688 IN PCI_IO_DEVICE *PciIoDevice\r
689 )\r
bcd70414 690/**\r
ead42efc 691\r
692Routine Description:\r
693\r
694 TODO: Add function description\r
695\r
696Arguments:\r
697\r
698 PciIoDevice - TODO: add argument description\r
699\r
700Returns:\r
701\r
702 TODO: add return values\r
703\r
bcd70414 704**/\r
ead42efc 705;\r
706\r
707EFI_STATUS\r
ff62de37 708ResetAllPpbBusNumber (\r
ead42efc 709 IN PCI_IO_DEVICE *Bridge,\r
710 IN UINT8 StartBusNumber\r
711 )\r
bcd70414 712/**\r
ead42efc 713\r
714Routine Description:\r
715\r
716 Reset bus register\r
717\r
718Arguments:\r
719\r
720 Bridge - a pointer to the PCI_IO_DEVICE\r
721 StartBusNumber - the number of bus\r
722\r
723Returns:\r
724\r
725 None\r
726\r
bcd70414 727**/\r
ead42efc 728;\r
729\r
730#endif\r