TianoCore EDK2 master
Loading...
Searching...
No Matches
PciExpressLib.c
Go to the documentation of this file.
1
13#include <Base.h>
14
15#include <Library/BaseLib.h>
17#include <Library/IoLib.h>
18#include <Library/DebugLib.h>
19#include <Library/PcdLib.h>
20
29#define ASSERT_INVALID_PCI_ADDRESS(A) \
30 ASSERT (((A) & ~0xfffffff) == 0)
31
54RETURN_STATUS
55EFIAPI
57 IN UINTN Address
58 )
59{
61 return RETURN_UNSUPPORTED;
62}
63
73VOID *
75 VOID
76 )
77{
78 return (VOID *)(UINTN)PcdGet64 (PcdPciExpressBaseAddress);
79}
80
93 VOID
94 )
95{
97}
98
115UINT8
116EFIAPI
118 IN UINTN Address
119 )
120{
122 if (Address >= PcdPciExpressBaseSize ()) {
123 return (UINT8)-1;
124 }
125
126 return MmioRead8 ((UINTN)GetPciExpressBaseAddress () + Address);
127}
128
146UINT8
147EFIAPI
149 IN UINTN Address,
150 IN UINT8 Value
151 )
152{
154 if (Address >= PcdPciExpressBaseSize ()) {
155 return (UINT8)-1;
156 }
157
158 return MmioWrite8 ((UINTN)GetPciExpressBaseAddress () + Address, Value);
159}
160
182UINT8
183EFIAPI
185 IN UINTN Address,
186 IN UINT8 OrData
187 )
188{
190 if (Address >= PcdPciExpressBaseSize ()) {
191 return (UINT8)-1;
192 }
193
194 return MmioOr8 ((UINTN)GetPciExpressBaseAddress () + Address, OrData);
195}
196
218UINT8
219EFIAPI
221 IN UINTN Address,
222 IN UINT8 AndData
223 )
224{
226 if (Address >= PcdPciExpressBaseSize ()) {
227 return (UINT8)-1;
228 }
229
230 return MmioAnd8 ((UINTN)GetPciExpressBaseAddress () + Address, AndData);
231}
232
256UINT8
257EFIAPI
259 IN UINTN Address,
260 IN UINT8 AndData,
261 IN UINT8 OrData
262 )
263{
265 if (Address >= PcdPciExpressBaseSize ()) {
266 return (UINT8)-1;
267 }
268
269 return MmioAndThenOr8 (
270 (UINTN)GetPciExpressBaseAddress () + Address,
271 AndData,
272 OrData
273 );
274}
275
299UINT8
300EFIAPI
302 IN UINTN Address,
303 IN UINTN StartBit,
304 IN UINTN EndBit
305 )
306{
308 if (Address >= PcdPciExpressBaseSize ()) {
309 return (UINT8)-1;
310 }
311
312 return MmioBitFieldRead8 (
313 (UINTN)GetPciExpressBaseAddress () + Address,
314 StartBit,
315 EndBit
316 );
317}
318
344UINT8
345EFIAPI
347 IN UINTN Address,
348 IN UINTN StartBit,
349 IN UINTN EndBit,
350 IN UINT8 Value
351 )
352{
354 if (Address >= PcdPciExpressBaseSize ()) {
355 return (UINT8)-1;
356 }
357
358 return MmioBitFieldWrite8 (
359 (UINTN)GetPciExpressBaseAddress () + Address,
360 StartBit,
361 EndBit,
362 Value
363 );
364}
365
394UINT8
395EFIAPI
397 IN UINTN Address,
398 IN UINTN StartBit,
399 IN UINTN EndBit,
400 IN UINT8 OrData
401 )
402{
404 if (Address >= PcdPciExpressBaseSize ()) {
405 return (UINT8)-1;
406 }
407
408 return MmioBitFieldOr8 (
409 (UINTN)GetPciExpressBaseAddress () + Address,
410 StartBit,
411 EndBit,
412 OrData
413 );
414}
415
444UINT8
445EFIAPI
447 IN UINTN Address,
448 IN UINTN StartBit,
449 IN UINTN EndBit,
450 IN UINT8 AndData
451 )
452{
454 if (Address >= PcdPciExpressBaseSize ()) {
455 return (UINT8)-1;
456 }
457
458 return MmioBitFieldAnd8 (
459 (UINTN)GetPciExpressBaseAddress () + Address,
460 StartBit,
461 EndBit,
462 AndData
463 );
464}
465
498UINT8
499EFIAPI
501 IN UINTN Address,
502 IN UINTN StartBit,
503 IN UINTN EndBit,
504 IN UINT8 AndData,
505 IN UINT8 OrData
506 )
507{
509 if (Address >= PcdPciExpressBaseSize ()) {
510 return (UINT8)-1;
511 }
512
514 (UINTN)GetPciExpressBaseAddress () + Address,
515 StartBit,
516 EndBit,
517 AndData,
518 OrData
519 );
520}
521
539UINT16
540EFIAPI
542 IN UINTN Address
543 )
544{
546 if (Address >= PcdPciExpressBaseSize ()) {
547 return (UINT16)-1;
548 }
549
550 return MmioRead16 ((UINTN)GetPciExpressBaseAddress () + Address);
551}
552
571UINT16
572EFIAPI
574 IN UINTN Address,
575 IN UINT16 Value
576 )
577{
579 if (Address >= PcdPciExpressBaseSize ()) {
580 return (UINT16)-1;
581 }
582
583 return MmioWrite16 ((UINTN)GetPciExpressBaseAddress () + Address, Value);
584}
585
608UINT16
609EFIAPI
611 IN UINTN Address,
612 IN UINT16 OrData
613 )
614{
616 if (Address >= PcdPciExpressBaseSize ()) {
617 return (UINT16)-1;
618 }
619
620 return MmioOr16 ((UINTN)GetPciExpressBaseAddress () + Address, OrData);
621}
622
645UINT16
646EFIAPI
648 IN UINTN Address,
649 IN UINT16 AndData
650 )
651{
653 if (Address >= PcdPciExpressBaseSize ()) {
654 return (UINT16)-1;
655 }
656
657 return MmioAnd16 ((UINTN)GetPciExpressBaseAddress () + Address, AndData);
658}
659
684UINT16
685EFIAPI
687 IN UINTN Address,
688 IN UINT16 AndData,
689 IN UINT16 OrData
690 )
691{
693 if (Address >= PcdPciExpressBaseSize ()) {
694 return (UINT16)-1;
695 }
696
697 return MmioAndThenOr16 (
698 (UINTN)GetPciExpressBaseAddress () + Address,
699 AndData,
700 OrData
701 );
702}
703
728UINT16
729EFIAPI
731 IN UINTN Address,
732 IN UINTN StartBit,
733 IN UINTN EndBit
734 )
735{
737 if (Address >= PcdPciExpressBaseSize ()) {
738 return (UINT16)-1;
739 }
740
741 return MmioBitFieldRead16 (
742 (UINTN)GetPciExpressBaseAddress () + Address,
743 StartBit,
744 EndBit
745 );
746}
747
774UINT16
775EFIAPI
777 IN UINTN Address,
778 IN UINTN StartBit,
779 IN UINTN EndBit,
780 IN UINT16 Value
781 )
782{
784 if (Address >= PcdPciExpressBaseSize ()) {
785 return (UINT16)-1;
786 }
787
788 return MmioBitFieldWrite16 (
789 (UINTN)GetPciExpressBaseAddress () + Address,
790 StartBit,
791 EndBit,
792 Value
793 );
794}
795
825UINT16
826EFIAPI
828 IN UINTN Address,
829 IN UINTN StartBit,
830 IN UINTN EndBit,
831 IN UINT16 OrData
832 )
833{
835 if (Address >= PcdPciExpressBaseSize ()) {
836 return (UINT16)-1;
837 }
838
839 return MmioBitFieldOr16 (
840 (UINTN)GetPciExpressBaseAddress () + Address,
841 StartBit,
842 EndBit,
843 OrData
844 );
845}
846
876UINT16
877EFIAPI
879 IN UINTN Address,
880 IN UINTN StartBit,
881 IN UINTN EndBit,
882 IN UINT16 AndData
883 )
884{
886 if (Address >= PcdPciExpressBaseSize ()) {
887 return (UINT16)-1;
888 }
889
890 return MmioBitFieldAnd16 (
891 (UINTN)GetPciExpressBaseAddress () + Address,
892 StartBit,
893 EndBit,
894 AndData
895 );
896}
897
931UINT16
932EFIAPI
934 IN UINTN Address,
935 IN UINTN StartBit,
936 IN UINTN EndBit,
937 IN UINT16 AndData,
938 IN UINT16 OrData
939 )
940{
942 if (Address >= PcdPciExpressBaseSize ()) {
943 return (UINT16)-1;
944 }
945
947 (UINTN)GetPciExpressBaseAddress () + Address,
948 StartBit,
949 EndBit,
950 AndData,
951 OrData
952 );
953}
954
972UINT32
973EFIAPI
975 IN UINTN Address
976 )
977{
979 if (Address >= PcdPciExpressBaseSize ()) {
980 return (UINT32)-1;
981 }
982
983 return MmioRead32 ((UINTN)GetPciExpressBaseAddress () + Address);
984}
985
1004UINT32
1005EFIAPI
1007 IN UINTN Address,
1008 IN UINT32 Value
1009 )
1010{
1012 if (Address >= PcdPciExpressBaseSize ()) {
1013 return (UINT32)-1;
1014 }
1015
1016 return MmioWrite32 ((UINTN)GetPciExpressBaseAddress () + Address, Value);
1017}
1018
1041UINT32
1042EFIAPI
1044 IN UINTN Address,
1045 IN UINT32 OrData
1046 )
1047{
1049 if (Address >= PcdPciExpressBaseSize ()) {
1050 return (UINT32)-1;
1051 }
1052
1053 return MmioOr32 ((UINTN)GetPciExpressBaseAddress () + Address, OrData);
1054}
1055
1078UINT32
1079EFIAPI
1081 IN UINTN Address,
1082 IN UINT32 AndData
1083 )
1084{
1086 if (Address >= PcdPciExpressBaseSize ()) {
1087 return (UINT32)-1;
1088 }
1089
1090 return MmioAnd32 ((UINTN)GetPciExpressBaseAddress () + Address, AndData);
1091}
1092
1117UINT32
1118EFIAPI
1120 IN UINTN Address,
1121 IN UINT32 AndData,
1122 IN UINT32 OrData
1123 )
1124{
1126 if (Address >= PcdPciExpressBaseSize ()) {
1127 return (UINT32)-1;
1128 }
1129
1130 return MmioAndThenOr32 (
1131 (UINTN)GetPciExpressBaseAddress () + Address,
1132 AndData,
1133 OrData
1134 );
1135}
1136
1161UINT32
1162EFIAPI
1164 IN UINTN Address,
1165 IN UINTN StartBit,
1166 IN UINTN EndBit
1167 )
1168{
1170 if (Address >= PcdPciExpressBaseSize ()) {
1171 return (UINT32)-1;
1172 }
1173
1174 return MmioBitFieldRead32 (
1175 (UINTN)GetPciExpressBaseAddress () + Address,
1176 StartBit,
1177 EndBit
1178 );
1179}
1180
1207UINT32
1208EFIAPI
1210 IN UINTN Address,
1211 IN UINTN StartBit,
1212 IN UINTN EndBit,
1213 IN UINT32 Value
1214 )
1215{
1217 if (Address >= PcdPciExpressBaseSize ()) {
1218 return (UINT32)-1;
1219 }
1220
1221 return MmioBitFieldWrite32 (
1222 (UINTN)GetPciExpressBaseAddress () + Address,
1223 StartBit,
1224 EndBit,
1225 Value
1226 );
1227}
1228
1258UINT32
1259EFIAPI
1261 IN UINTN Address,
1262 IN UINTN StartBit,
1263 IN UINTN EndBit,
1264 IN UINT32 OrData
1265 )
1266{
1268 if (Address >= PcdPciExpressBaseSize ()) {
1269 return (UINT32)-1;
1270 }
1271
1272 return MmioBitFieldOr32 (
1273 (UINTN)GetPciExpressBaseAddress () + Address,
1274 StartBit,
1275 EndBit,
1276 OrData
1277 );
1278}
1279
1309UINT32
1310EFIAPI
1312 IN UINTN Address,
1313 IN UINTN StartBit,
1314 IN UINTN EndBit,
1315 IN UINT32 AndData
1316 )
1317{
1319 if (Address >= PcdPciExpressBaseSize ()) {
1320 return (UINT32)-1;
1321 }
1322
1323 return MmioBitFieldAnd32 (
1324 (UINTN)GetPciExpressBaseAddress () + Address,
1325 StartBit,
1326 EndBit,
1327 AndData
1328 );
1329}
1330
1364UINT32
1365EFIAPI
1367 IN UINTN Address,
1368 IN UINTN StartBit,
1369 IN UINTN EndBit,
1370 IN UINT32 AndData,
1371 IN UINT32 OrData
1372 )
1373{
1375 if (Address >= PcdPciExpressBaseSize ()) {
1376 return (UINT32)-1;
1377 }
1378
1380 (UINTN)GetPciExpressBaseAddress () + Address,
1381 StartBit,
1382 EndBit,
1383 AndData,
1384 OrData
1385 );
1386}
1387
1412UINTN
1413EFIAPI
1415 IN UINTN StartAddress,
1416 IN UINTN Size,
1417 OUT VOID *Buffer
1418 )
1419{
1420 UINTN ReturnValue;
1421
1422 ASSERT_INVALID_PCI_ADDRESS (StartAddress);
1423 if (StartAddress >= PcdPciExpressBaseSize ()) {
1424 return (UINTN)-1;
1425 }
1426
1427 ASSERT (((StartAddress & 0xFFF) + Size) <= 0x1000);
1428
1429 if (Size == 0) {
1430 return Size;
1431 }
1432
1433 ASSERT (Buffer != NULL);
1434
1435 //
1436 // Save Size for return
1437 //
1438 ReturnValue = Size;
1439
1440 if ((StartAddress & 1) != 0) {
1441 //
1442 // Read a byte if StartAddress is byte aligned
1443 //
1444 *(volatile UINT8 *)Buffer = PciExpressRead8 (StartAddress);
1445 StartAddress += sizeof (UINT8);
1446 Size -= sizeof (UINT8);
1447 Buffer = (UINT8 *)Buffer + 1;
1448 }
1449
1450 if ((Size >= sizeof (UINT16)) && ((StartAddress & 2) != 0)) {
1451 //
1452 // Read a word if StartAddress is word aligned
1453 //
1454 WriteUnaligned16 ((UINT16 *)Buffer, (UINT16)PciExpressRead16 (StartAddress));
1455
1456 StartAddress += sizeof (UINT16);
1457 Size -= sizeof (UINT16);
1458 Buffer = (UINT16 *)Buffer + 1;
1459 }
1460
1461 while (Size >= sizeof (UINT32)) {
1462 //
1463 // Read as many double words as possible
1464 //
1465 WriteUnaligned32 ((UINT32 *)Buffer, (UINT32)PciExpressRead32 (StartAddress));
1466
1467 StartAddress += sizeof (UINT32);
1468 Size -= sizeof (UINT32);
1469 Buffer = (UINT32 *)Buffer + 1;
1470 }
1471
1472 if (Size >= sizeof (UINT16)) {
1473 //
1474 // Read the last remaining word if exist
1475 //
1476 WriteUnaligned16 ((UINT16 *)Buffer, (UINT16)PciExpressRead16 (StartAddress));
1477 StartAddress += sizeof (UINT16);
1478 Size -= sizeof (UINT16);
1479 Buffer = (UINT16 *)Buffer + 1;
1480 }
1481
1482 if (Size >= sizeof (UINT8)) {
1483 //
1484 // Read the last remaining byte if exist
1485 //
1486 *(volatile UINT8 *)Buffer = PciExpressRead8 (StartAddress);
1487 }
1488
1489 return ReturnValue;
1490}
1491
1517UINTN
1518EFIAPI
1520 IN UINTN StartAddress,
1521 IN UINTN Size,
1522 IN VOID *Buffer
1523 )
1524{
1525 UINTN ReturnValue;
1526
1527 ASSERT_INVALID_PCI_ADDRESS (StartAddress);
1528 if (StartAddress >= PcdPciExpressBaseSize ()) {
1529 return (UINTN)-1;
1530 }
1531
1532 ASSERT (((StartAddress & 0xFFF) + Size) <= 0x1000);
1533
1534 if (Size == 0) {
1535 return 0;
1536 }
1537
1538 ASSERT (Buffer != NULL);
1539
1540 //
1541 // Save Size for return
1542 //
1543 ReturnValue = Size;
1544
1545 if ((StartAddress & 1) != 0) {
1546 //
1547 // Write a byte if StartAddress is byte aligned
1548 //
1549 PciExpressWrite8 (StartAddress, *(UINT8 *)Buffer);
1550 StartAddress += sizeof (UINT8);
1551 Size -= sizeof (UINT8);
1552 Buffer = (UINT8 *)Buffer + 1;
1553 }
1554
1555 if ((Size >= sizeof (UINT16)) && ((StartAddress & 2) != 0)) {
1556 //
1557 // Write a word if StartAddress is word aligned
1558 //
1559 PciExpressWrite16 (StartAddress, ReadUnaligned16 ((UINT16 *)Buffer));
1560 StartAddress += sizeof (UINT16);
1561 Size -= sizeof (UINT16);
1562 Buffer = (UINT16 *)Buffer + 1;
1563 }
1564
1565 while (Size >= sizeof (UINT32)) {
1566 //
1567 // Write as many double words as possible
1568 //
1569 PciExpressWrite32 (StartAddress, ReadUnaligned32 ((UINT32 *)Buffer));
1570 StartAddress += sizeof (UINT32);
1571 Size -= sizeof (UINT32);
1572 Buffer = (UINT32 *)Buffer + 1;
1573 }
1574
1575 if (Size >= sizeof (UINT16)) {
1576 //
1577 // Write the last remaining word if exist
1578 //
1579 PciExpressWrite16 (StartAddress, ReadUnaligned16 ((UINT16 *)Buffer));
1580 StartAddress += sizeof (UINT16);
1581 Size -= sizeof (UINT16);
1582 Buffer = (UINT16 *)Buffer + 1;
1583 }
1584
1585 if (Size >= sizeof (UINT8)) {
1586 //
1587 // Write the last remaining byte if exist
1588 //
1589 PciExpressWrite8 (StartAddress, *(UINT8 *)Buffer);
1590 }
1591
1592 return ReturnValue;
1593}
UINT64 UINTN
UINT16 EFIAPI WriteUnaligned16(OUT VOID *Buffer, IN UINT16 Value)
Definition: Unaligned.c:62
UINT32 EFIAPI WriteUnaligned32(OUT VOID *Buffer, IN UINT32 Value)
Definition: Unaligned.c:166
UINT32 EFIAPI ReadUnaligned32(IN CONST VOID *Buffer)
Definition: Unaligned.c:140
UINT16 EFIAPI ReadUnaligned16(IN CONST VOID *Buffer)
Definition: Unaligned.c:36
UINT16 EFIAPI MmioBitFieldAndThenOr16(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 AndData, IN UINT16 OrData)
Definition: IoHighLevel.c:1750
UINT8 EFIAPI MmioBitFieldRead8(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit)
Definition: IoHighLevel.c:1293
UINT32 EFIAPI MmioBitFieldWrite32(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 Value)
Definition: IoHighLevel.c:1912
UINT8 EFIAPI MmioBitFieldOr8(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 OrData)
Definition: IoHighLevel.c:1369
UINT8 EFIAPI MmioBitFieldWrite8(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 Value)
Definition: IoHighLevel.c:1327
UINT8 EFIAPI MmioAnd8(IN UINTN Address, IN UINT8 AndData)
Definition: IoHighLevel.c:1231
UINT16 EFIAPI MmioAndThenOr16(IN UINTN Address, IN UINT16 AndData, IN UINT16 OrData)
Definition: IoHighLevel.c:1551
UINT32 EFIAPI MmioBitFieldAndThenOr32(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 AndData, IN UINT32 OrData)
Definition: IoHighLevel.c:2044
UINT8 EFIAPI MmioBitFieldAndThenOr8(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 AndData, IN UINT8 OrData)
Definition: IoHighLevel.c:1456
UINT16 EFIAPI MmioBitFieldWrite16(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 Value)
Definition: IoHighLevel.c:1618
UINT32 EFIAPI MmioBitFieldOr32(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 OrData)
Definition: IoHighLevel.c:1955
UINT16 EFIAPI MmioBitFieldAnd16(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 AndData)
Definition: IoHighLevel.c:1704
UINT32 EFIAPI MmioBitFieldRead32(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit)
Definition: IoHighLevel.c:1877
UINT16 EFIAPI MmioBitFieldOr16(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 OrData)
Definition: IoHighLevel.c:1661
UINT32 EFIAPI MmioAnd32(IN UINTN Address, IN UINT32 AndData)
Definition: IoHighLevel.c:1814
UINT32 EFIAPI MmioOr32(IN UINTN Address, IN UINT32 OrData)
Definition: IoHighLevel.c:1785
UINT8 EFIAPI MmioAndThenOr8(IN UINTN Address, IN UINT8 AndData, IN UINT8 OrData)
Definition: IoHighLevel.c:1262
UINT16 EFIAPI MmioBitFieldRead16(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit)
Definition: IoHighLevel.c:1583
UINT16 EFIAPI MmioRead16(IN UINTN Address)
Definition: IoLib.c:170
UINT8 EFIAPI MmioRead8(IN UINTN Address)
Definition: IoLib.c:82
UINT8 EFIAPI MmioOr8(IN UINTN Address, IN UINT8 OrData)
Definition: IoHighLevel.c:1203
UINT8 EFIAPI MmioWrite8(IN UINTN Address, IN UINT8 Value)
Definition: IoLib.c:126
UINT32 EFIAPI MmioRead32(IN UINTN Address)
Definition: IoLib.c:262
UINT16 EFIAPI MmioAnd16(IN UINTN Address, IN UINT16 AndData)
Definition: IoHighLevel.c:1520
UINT8 EFIAPI MmioBitFieldAnd8(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 AndData)
Definition: IoHighLevel.c:1411
UINT16 EFIAPI MmioOr16(IN UINTN Address, IN UINT16 OrData)
Definition: IoHighLevel.c:1491
UINT16 EFIAPI MmioWrite16(IN UINTN Address, IN UINT16 Value)
Definition: IoLib.c:216
UINT32 EFIAPI MmioAndThenOr32(IN UINTN Address, IN UINT32 AndData, IN UINT32 OrData)
Definition: IoHighLevel.c:1845
UINT32 EFIAPI MmioBitFieldAnd32(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 AndData)
Definition: IoHighLevel.c:1998
UINT32 EFIAPI MmioWrite32(IN UINTN Address, IN UINT32 Value)
Definition: IoLib.c:309
#define NULL
Definition: Base.h:319
#define STATIC
Definition: Base.h:264
#define RETURN_UNSUPPORTED
Definition: Base.h:1081
#define VOID
Definition: Base.h:269
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
RETURN_STATUS EFIAPI PciExpressRegisterForRuntimeAccess(IN UINTN Address)
Definition: PciExpressLib.c:56
UINT8 EFIAPI PciExpressBitFieldAnd8(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 AndData)
UINT32 EFIAPI PciExpressWrite32(IN UINTN Address, IN UINT32 Value)
UINT16 EFIAPI PciExpressBitFieldAnd16(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 AndData)
UINT8 EFIAPI PciExpressAndThenOr8(IN UINTN Address, IN UINT8 AndData, IN UINT8 OrData)
UINT32 EFIAPI PciExpressBitFieldOr32(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 OrData)
UINT16 EFIAPI PciExpressOr16(IN UINTN Address, IN UINT16 OrData)
UINT8 EFIAPI PciExpressBitFieldAndThenOr8(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 AndData, IN UINT8 OrData)
UINT16 EFIAPI PciExpressBitFieldAndThenOr16(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 AndData, IN UINT16 OrData)
UINT32 EFIAPI PciExpressBitFieldWrite32(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 Value)
UINT16 EFIAPI PciExpressRead16(IN UINTN Address)
UINTN EFIAPI PciExpressReadBuffer(IN UINTN StartAddress, IN UINTN Size, OUT VOID *Buffer)
UINT8 EFIAPI PciExpressWrite8(IN UINTN Address, IN UINT8 Value)
UINT8 EFIAPI PciExpressBitFieldWrite8(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 Value)
UINT8 EFIAPI PciExpressAnd8(IN UINTN Address, IN UINT8 AndData)
UINT32 EFIAPI PciExpressOr32(IN UINTN Address, IN UINT32 OrData)
UINT16 EFIAPI PciExpressWrite16(IN UINTN Address, IN UINT16 Value)
UINTN EFIAPI PciExpressWriteBuffer(IN UINTN StartAddress, IN UINTN Size, IN VOID *Buffer)
UINT8 EFIAPI PciExpressOr8(IN UINTN Address, IN UINT8 OrData)
#define ASSERT_INVALID_PCI_ADDRESS(A)
Definition: PciExpressLib.c:29
UINT32 EFIAPI PciExpressBitFieldAndThenOr32(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 AndData, IN UINT32 OrData)
VOID * GetPciExpressBaseAddress(VOID)
Definition: PciExpressLib.c:74
UINT8 EFIAPI PciExpressBitFieldOr8(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 OrData)
UINT32 EFIAPI PciExpressBitFieldAnd32(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 AndData)
UINT16 EFIAPI PciExpressBitFieldWrite16(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 Value)
UINT16 EFIAPI PciExpressBitFieldOr16(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 OrData)
UINT16 EFIAPI PciExpressAndThenOr16(IN UINTN Address, IN UINT16 AndData, IN UINT16 OrData)
UINT32 EFIAPI PciExpressAndThenOr32(IN UINTN Address, IN UINT32 AndData, IN UINT32 OrData)
UINT8 EFIAPI PciExpressBitFieldRead8(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit)
UINT16 EFIAPI PciExpressAnd16(IN UINTN Address, IN UINT16 AndData)
UINT8 EFIAPI PciExpressRead8(IN UINTN Address)
UINT32 EFIAPI PciExpressBitFieldRead32(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit)
UINT32 EFIAPI PciExpressAnd32(IN UINTN Address, IN UINT32 AndData)
UINT32 EFIAPI PciExpressRead32(IN UINTN Address)
STATIC UINTN PcdPciExpressBaseSize(VOID)
Definition: PciExpressLib.c:92
UINT16 EFIAPI PciExpressBitFieldRead16(IN UINTN Address, IN UINTN StartBit, IN UINTN EndBit)
#define PcdGet64(TokenName)
Definition: PcdLib.h:375