]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Bus/Pci/PciBus/Dxe/PciIo.h
Add PciBus & IdeBus
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Pci / PciBus / Dxe / PciIo.h
CommitLineData
ead42efc 1/*++\r
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
12Module Name:\r
13\r
14 PciIo.h\r
15 \r
16Abstract:\r
17\r
18 PCI Bus Driver\r
19\r
20Revision History\r
21\r
22--*/\r
23\r
24#ifndef _EFI_PCI_IO_PROTOCOL_H\r
25#define _EFI_PCI_IO_PROTOCOL_H\r
26\r
27EFI_STATUS\r
28InitializePciIoInstance (\r
29 PCI_IO_DEVICE *PciIoDevice\r
30 )\r
31/*++\r
32\r
33Routine Description:\r
34\r
35 TODO: Add function description\r
36\r
37Arguments:\r
38\r
39 PciIoDevice - TODO: add argument description\r
40\r
41Returns:\r
42\r
43 TODO: add return values\r
44\r
45--*/\r
46;\r
47\r
48EFI_STATUS\r
49PciIoVerifyBarAccess (\r
50 PCI_IO_DEVICE *PciIoDevice,\r
51 UINT8 BarIndex,\r
52 PCI_BAR_TYPE Type,\r
53 IN EFI_PCI_IO_PROTOCOL_WIDTH Width,\r
54 IN UINTN Count,\r
55 UINT64 *Offset\r
56 )\r
57/*++\r
58\r
59Routine Description:\r
60\r
61 TODO: Add function description\r
62\r
63Arguments:\r
64\r
65 PciIoDevice - TODO: add argument description\r
66 BarIndex - TODO: add argument description\r
67 Type - TODO: add argument description\r
68 Width - TODO: add argument description\r
69 Count - TODO: add argument description\r
70 Offset - TODO: add argument description\r
71\r
72Returns:\r
73\r
74 TODO: add return values\r
75\r
76--*/\r
77;\r
78\r
79EFI_STATUS\r
80PciIoVerifyConfigAccess (\r
81 PCI_IO_DEVICE *PciIoDevice,\r
82 IN EFI_PCI_IO_PROTOCOL_WIDTH Width,\r
83 IN UINTN Count,\r
84 IN UINT64 *Offset\r
85 )\r
86/*++\r
87\r
88Routine Description:\r
89\r
90 TODO: Add function description\r
91\r
92Arguments:\r
93\r
94 PciIoDevice - TODO: add argument description\r
95 Width - TODO: add argument description\r
96 Count - TODO: add argument description\r
97 Offset - TODO: add argument description\r
98\r
99Returns:\r
100\r
101 TODO: add return values\r
102\r
103--*/\r
104;\r
105\r
106EFI_STATUS\r
107EFIAPI\r
108PciIoPollMem (\r
109 IN EFI_PCI_IO_PROTOCOL *This,\r
110 IN EFI_PCI_IO_PROTOCOL_WIDTH Width,\r
111 IN UINT8 BarIndex,\r
112 IN UINT64 Offset,\r
113 IN UINT64 Mask,\r
114 IN UINT64 Value,\r
115 IN UINT64 Delay,\r
116 OUT UINT64 *Result\r
117 )\r
118/*++\r
119\r
120Routine Description:\r
121\r
122 TODO: Add function description\r
123\r
124Arguments:\r
125\r
126 This - TODO: add argument description\r
127 Width - TODO: add argument description\r
128 BarIndex - TODO: add argument description\r
129 Offset - TODO: add argument description\r
130 Mask - TODO: add argument description\r
131 Value - TODO: add argument description\r
132 Delay - TODO: add argument description\r
133 Result - TODO: add argument description\r
134\r
135Returns:\r
136\r
137 TODO: add return values\r
138\r
139--*/\r
140;\r
141\r
142EFI_STATUS\r
143EFIAPI\r
144PciIoPollIo (\r
145 IN EFI_PCI_IO_PROTOCOL *This,\r
146 IN EFI_PCI_IO_PROTOCOL_WIDTH Width,\r
147 IN UINT8 BarIndex,\r
148 IN UINT64 Offset,\r
149 IN UINT64 Mask,\r
150 IN UINT64 Value,\r
151 IN UINT64 Delay,\r
152 OUT UINT64 *Result\r
153 )\r
154/*++\r
155\r
156Routine Description:\r
157\r
158 TODO: Add function description\r
159\r
160Arguments:\r
161\r
162 This - TODO: add argument description\r
163 Width - TODO: add argument description\r
164 BarIndex - TODO: add argument description\r
165 Offset - TODO: add argument description\r
166 Mask - TODO: add argument description\r
167 Value - TODO: add argument description\r
168 Delay - TODO: add argument description\r
169 Result - TODO: add argument description\r
170\r
171Returns:\r
172\r
173 TODO: add return values\r
174\r
175--*/\r
176;\r
177\r
178EFI_STATUS\r
179EFIAPI\r
180PciIoMemRead (\r
181 IN EFI_PCI_IO_PROTOCOL *This,\r
182 IN EFI_PCI_IO_PROTOCOL_WIDTH Width,\r
183 IN UINT8 BarIndex,\r
184 IN UINT64 Offset,\r
185 IN UINTN Count,\r
186 IN OUT VOID *Buffer\r
187 )\r
188/*++\r
189\r
190Routine Description:\r
191\r
192 TODO: Add function description\r
193\r
194Arguments:\r
195\r
196 This - TODO: add argument description\r
197 Width - TODO: add argument description\r
198 BarIndex - TODO: add argument description\r
199 Offset - TODO: add argument description\r
200 Count - TODO: add argument description\r
201 Buffer - TODO: add argument description\r
202\r
203Returns:\r
204\r
205 TODO: add return values\r
206\r
207--*/\r
208;\r
209\r
210EFI_STATUS\r
211EFIAPI\r
212PciIoMemWrite (\r
213 IN EFI_PCI_IO_PROTOCOL *This,\r
214 IN EFI_PCI_IO_PROTOCOL_WIDTH Width,\r
215 IN UINT8 BarIndex,\r
216 IN UINT64 Offset,\r
217 IN UINTN Count,\r
218 IN OUT VOID *Buffer\r
219 )\r
220/*++\r
221\r
222Routine Description:\r
223\r
224 TODO: Add function description\r
225\r
226Arguments:\r
227\r
228 This - TODO: add argument description\r
229 Width - TODO: add argument description\r
230 BarIndex - TODO: add argument description\r
231 Offset - TODO: add argument description\r
232 Count - TODO: add argument description\r
233 Buffer - TODO: add argument description\r
234\r
235Returns:\r
236\r
237 TODO: add return values\r
238\r
239--*/\r
240;\r
241\r
242EFI_STATUS\r
243EFIAPI\r
244PciIoIoRead (\r
245 IN EFI_PCI_IO_PROTOCOL *This,\r
246 IN EFI_PCI_IO_PROTOCOL_WIDTH Width,\r
247 IN UINT8 BarIndex,\r
248 IN UINT64 Offset,\r
249 IN UINTN Count,\r
250 IN OUT VOID *Buffer\r
251 )\r
252/*++\r
253\r
254Routine Description:\r
255\r
256 TODO: Add function description\r
257\r
258Arguments:\r
259\r
260 This - TODO: add argument description\r
261 Width - TODO: add argument description\r
262 BarIndex - TODO: add argument description\r
263 Offset - TODO: add argument description\r
264 Count - TODO: add argument description\r
265 Buffer - TODO: add argument description\r
266\r
267Returns:\r
268\r
269 TODO: add return values\r
270\r
271--*/\r
272;\r
273\r
274EFI_STATUS\r
275EFIAPI\r
276PciIoIoWrite (\r
277 IN EFI_PCI_IO_PROTOCOL *This,\r
278 IN EFI_PCI_IO_PROTOCOL_WIDTH Width,\r
279 IN UINT8 BarIndex,\r
280 IN UINT64 Offset,\r
281 IN UINTN Count,\r
282 IN OUT VOID *Buffer\r
283 )\r
284/*++\r
285\r
286Routine Description:\r
287\r
288 TODO: Add function description\r
289\r
290Arguments:\r
291\r
292 This - TODO: add argument description\r
293 Width - TODO: add argument description\r
294 BarIndex - TODO: add argument description\r
295 Offset - TODO: add argument description\r
296 Count - TODO: add argument description\r
297 Buffer - TODO: add argument description\r
298\r
299Returns:\r
300\r
301 TODO: add return values\r
302\r
303--*/\r
304;\r
305\r
306EFI_STATUS\r
307EFIAPI\r
308PciIoConfigRead (\r
309 IN EFI_PCI_IO_PROTOCOL *This,\r
310 IN EFI_PCI_IO_PROTOCOL_WIDTH Width,\r
311 IN UINT32 Offset,\r
312 IN UINTN Count,\r
313 IN OUT VOID *Buffer\r
314 )\r
315/*++\r
316\r
317Routine Description:\r
318\r
319 TODO: Add function description\r
320\r
321Arguments:\r
322\r
323 This - TODO: add argument description\r
324 Width - TODO: add argument description\r
325 Offset - TODO: add argument description\r
326 Count - TODO: add argument description\r
327 Buffer - TODO: add argument description\r
328\r
329Returns:\r
330\r
331 TODO: add return values\r
332\r
333--*/\r
334;\r
335\r
336EFI_STATUS\r
337EFIAPI\r
338PciIoConfigWrite (\r
339 IN EFI_PCI_IO_PROTOCOL *This,\r
340 IN EFI_PCI_IO_PROTOCOL_WIDTH Width,\r
341 IN UINT32 Offset,\r
342 IN UINTN Count,\r
343 IN OUT VOID *Buffer\r
344 )\r
345/*++\r
346\r
347Routine Description:\r
348\r
349 TODO: Add function description\r
350\r
351Arguments:\r
352\r
353 This - TODO: add argument description\r
354 Width - TODO: add argument description\r
355 Offset - TODO: add argument description\r
356 Count - TODO: add argument description\r
357 Buffer - TODO: add argument description\r
358\r
359Returns:\r
360\r
361 TODO: add return values\r
362\r
363--*/\r
364;\r
365\r
366EFI_STATUS\r
367EFIAPI\r
368PciIoCopyMem (\r
369 IN EFI_PCI_IO_PROTOCOL *This,\r
370 IN EFI_PCI_IO_PROTOCOL_WIDTH Width,\r
371 IN UINT8 DestBarIndex,\r
372 IN UINT64 DestOffset,\r
373 IN UINT8 SrcBarIndex,\r
374 IN UINT64 SrcOffset,\r
375 IN UINTN Count\r
376 )\r
377/*++\r
378\r
379Routine Description:\r
380\r
381 TODO: Add function description\r
382\r
383Arguments:\r
384\r
385 This - TODO: add argument description\r
386 Width - TODO: add argument description\r
387 DestBarIndex - TODO: add argument description\r
388 DestOffset - TODO: add argument description\r
389 SrcBarIndex - TODO: add argument description\r
390 SrcOffset - TODO: add argument description\r
391 Count - TODO: add argument description\r
392\r
393Returns:\r
394\r
395 TODO: add return values\r
396\r
397--*/\r
398;\r
399\r
400EFI_STATUS\r
401EFIAPI\r
402PciIoMap (\r
403 IN EFI_PCI_IO_PROTOCOL *This,\r
404 IN EFI_PCI_IO_PROTOCOL_OPERATION Operation,\r
405 IN VOID *HostAddress,\r
406 IN OUT UINTN *NumberOfBytes,\r
407 OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,\r
408 OUT VOID **Mapping\r
409 )\r
410/*++\r
411\r
412Routine Description:\r
413\r
414 TODO: Add function description\r
415\r
416Arguments:\r
417\r
418 This - TODO: add argument description\r
419 Operation - TODO: add argument description\r
420 HostAddress - TODO: add argument description\r
421 NumberOfBytes - TODO: add argument description\r
422 DeviceAddress - TODO: add argument description\r
423 Mapping - TODO: add argument description\r
424\r
425Returns:\r
426\r
427 TODO: add return values\r
428\r
429--*/\r
430;\r
431\r
432EFI_STATUS\r
433EFIAPI\r
434PciIoUnmap (\r
435 IN EFI_PCI_IO_PROTOCOL *This,\r
436 IN VOID *Mapping\r
437 )\r
438/*++\r
439\r
440Routine Description:\r
441\r
442 TODO: Add function description\r
443\r
444Arguments:\r
445\r
446 This - TODO: add argument description\r
447 Mapping - TODO: add argument description\r
448\r
449Returns:\r
450\r
451 TODO: add return values\r
452\r
453--*/\r
454;\r
455\r
456EFI_STATUS\r
457EFIAPI\r
458PciIoAllocateBuffer (\r
459 IN EFI_PCI_IO_PROTOCOL *This,\r
460 IN EFI_ALLOCATE_TYPE Type,\r
461 IN EFI_MEMORY_TYPE MemoryType,\r
462 IN UINTN Pages,\r
463 OUT VOID **HostAddress,\r
464 IN UINT64 Attributes\r
465 )\r
466/*++\r
467\r
468Routine Description:\r
469\r
470 TODO: Add function description\r
471\r
472Arguments:\r
473\r
474 This - TODO: add argument description\r
475 Type - TODO: add argument description\r
476 MemoryType - TODO: add argument description\r
477 Pages - TODO: add argument description\r
478 HostAddress - TODO: add argument description\r
479 Attributes - TODO: add argument description\r
480\r
481Returns:\r
482\r
483 TODO: add return values\r
484\r
485--*/\r
486;\r
487\r
488EFI_STATUS\r
489EFIAPI\r
490PciIoFreeBuffer (\r
491 IN EFI_PCI_IO_PROTOCOL *This,\r
492 IN UINTN Pages,\r
493 IN VOID *HostAddress\r
494 )\r
495/*++\r
496\r
497Routine Description:\r
498\r
499 TODO: Add function description\r
500\r
501Arguments:\r
502\r
503 This - TODO: add argument description\r
504 Pages - TODO: add argument description\r
505 HostAddress - TODO: add argument description\r
506\r
507Returns:\r
508\r
509 TODO: add return values\r
510\r
511--*/\r
512;\r
513\r
514EFI_STATUS\r
515EFIAPI\r
516PciIoFlush (\r
517 IN EFI_PCI_IO_PROTOCOL *This\r
518 )\r
519/*++\r
520\r
521Routine Description:\r
522\r
523 TODO: Add function description\r
524\r
525Arguments:\r
526\r
527 This - TODO: add argument description\r
528\r
529Returns:\r
530\r
531 TODO: add return values\r
532\r
533--*/\r
534;\r
535\r
536EFI_STATUS\r
537EFIAPI\r
538PciIoGetLocation (\r
539 IN EFI_PCI_IO_PROTOCOL *This,\r
540 OUT UINTN *Segment,\r
541 OUT UINTN *Bus,\r
542 OUT UINTN *Device,\r
543 OUT UINTN *Function\r
544 )\r
545/*++\r
546\r
547Routine Description:\r
548\r
549 TODO: Add function description\r
550\r
551Arguments:\r
552\r
553 This - TODO: add argument description\r
554 Segment - TODO: add argument description\r
555 Bus - TODO: add argument description\r
556 Device - TODO: add argument description\r
557 Function - TODO: add argument description\r
558\r
559Returns:\r
560\r
561 TODO: add return values\r
562\r
563--*/\r
564;\r
565\r
566BOOLEAN\r
567CheckBarType (\r
568 IN PCI_IO_DEVICE *PciIoDevice,\r
569 UINT8 BarIndex,\r
570 PCI_BAR_TYPE BarType\r
571 )\r
572/*++\r
573\r
574Routine Description:\r
575\r
576 TODO: Add function description\r
577\r
578Arguments:\r
579\r
580 PciIoDevice - TODO: add argument description\r
581 BarIndex - TODO: add argument description\r
582 BarType - TODO: add argument description\r
583\r
584Returns:\r
585\r
586 TODO: add return values\r
587\r
588--*/\r
589;\r
590\r
591EFI_STATUS\r
592ModifyRootBridgeAttributes (\r
593 IN PCI_IO_DEVICE *PciIoDevice,\r
594 IN UINT64 Attributes,\r
595 IN EFI_PCI_IO_PROTOCOL_ATTRIBUTE_OPERATION Operation\r
596 )\r
597/*++\r
598\r
599Routine Description:\r
600\r
601 TODO: Add function description\r
602\r
603Arguments:\r
604\r
605 PciIoDevice - TODO: add argument description\r
606 Attributes - TODO: add argument description\r
607 Operation - TODO: add argument description\r
608\r
609Returns:\r
610\r
611 TODO: add return values\r
612\r
613--*/\r
614;\r
615\r
616EFI_STATUS\r
617SupportPaletteSnoopAttributes (\r
618 IN PCI_IO_DEVICE *PciIoDevice,\r
619 IN EFI_PCI_IO_PROTOCOL_ATTRIBUTE_OPERATION Operation\r
620 )\r
621/*++\r
622\r
623Routine Description:\r
624\r
625 TODO: Add function description\r
626\r
627Arguments:\r
628\r
629 PciIoDevice - TODO: add argument description\r
630 Operation - TODO: add argument description\r
631\r
632Returns:\r
633\r
634 TODO: add return values\r
635\r
636--*/\r
637;\r
638\r
639EFI_STATUS\r
640EFIAPI\r
641PciIoAttributes (\r
642 IN EFI_PCI_IO_PROTOCOL * This,\r
643 IN EFI_PCI_IO_PROTOCOL_ATTRIBUTE_OPERATION Operation,\r
644 IN UINT64 Attributes,\r
645 OUT UINT64 *Result OPTIONAL\r
646 )\r
647/*++\r
648\r
649Routine Description:\r
650\r
651 TODO: Add function description\r
652\r
653Arguments:\r
654\r
655 This - TODO: add argument description\r
656 Operation - TODO: add argument description\r
657 Attributes - TODO: add argument description\r
658 Result - TODO: add argument description\r
659\r
660Returns:\r
661\r
662 TODO: add return values\r
663\r
664--*/\r
665;\r
666\r
667EFI_STATUS\r
668EFIAPI\r
669PciIoGetBarAttributes (\r
670 IN EFI_PCI_IO_PROTOCOL * This,\r
671 IN UINT8 BarIndex,\r
672 OUT UINT64 *Supports, OPTIONAL\r
673 OUT VOID **Resources OPTIONAL\r
674 )\r
675/*++\r
676\r
677Routine Description:\r
678\r
679 TODO: Add function description\r
680\r
681Arguments:\r
682\r
683 This - TODO: add argument description\r
684 BarIndex - TODO: add argument description\r
685 Supports - TODO: add argument description\r
686 Resources - TODO: add argument description\r
687\r
688Returns:\r
689\r
690 TODO: add return values\r
691\r
692--*/\r
693;\r
694\r
695EFI_STATUS\r
696EFIAPI\r
697PciIoSetBarAttributes (\r
698 IN EFI_PCI_IO_PROTOCOL *This,\r
699 IN UINT64 Attributes,\r
700 IN UINT8 BarIndex,\r
701 IN OUT UINT64 *Offset,\r
702 IN OUT UINT64 *Length\r
703 )\r
704/*++\r
705\r
706Routine Description:\r
707\r
708 TODO: Add function description\r
709\r
710Arguments:\r
711\r
712 This - TODO: add argument description\r
713 Attributes - TODO: add argument description\r
714 BarIndex - TODO: add argument description\r
715 Offset - TODO: add argument description\r
716 Length - TODO: add argument description\r
717\r
718Returns:\r
719\r
720 TODO: add return values\r
721\r
722--*/\r
723;\r
724\r
725EFI_STATUS\r
726UpStreamBridgesAttributes (\r
727 IN PCI_IO_DEVICE *PciIoDevice,\r
728 IN EFI_PCI_IO_PROTOCOL_ATTRIBUTE_OPERATION Operation,\r
729 IN UINT64 Attributes\r
730 )\r
731/*++\r
732\r
733Routine Description:\r
734\r
735 TODO: Add function description\r
736\r
737Arguments:\r
738\r
739 PciIoDevice - TODO: add argument description\r
740 Operation - TODO: add argument description\r
741 Attributes - TODO: add argument description\r
742\r
743Returns:\r
744\r
745 TODO: add return values\r
746\r
747--*/\r
748;\r
749\r
750BOOLEAN\r
751PciDevicesOnTheSamePath (\r
752 IN PCI_IO_DEVICE *PciDevice1,\r
753 IN PCI_IO_DEVICE *PciDevice2\r
754 )\r
755/*++\r
756\r
757Routine Description:\r
758\r
759 TODO: Add function description\r
760\r
761Arguments:\r
762\r
763 PciDevice1 - TODO: add argument description\r
764 PciDevice2 - TODO: add argument description\r
765\r
766Returns:\r
767\r
768 TODO: add return values\r
769\r
770--*/\r
771;\r
772\r
773#endif\r