Changeset 99404 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Library/BasePciSegmentLibPci/PciSegmentLib.c
- Timestamp:
- Apr 14, 2023 3:17:44 PM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 156854
- Location:
- trunk/src/VBox/Devices/EFI/FirmwareNew
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/FirmwareNew
-
Property svn:mergeinfo
changed from (toggle deleted branches)
to (toggle deleted branches)/vendor/edk2/current 103735-103757,103769-103776,129194-145445 /vendor/edk2/current 103735-103757,103769-103776,129194-156846
-
Property svn:mergeinfo
changed from (toggle deleted branches)
-
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Library/BasePciSegmentLibPci/PciSegmentLib.c
r80721 r99404 23 23 24 24 **/ 25 #define ASSERT_INVALID_PCI_SEGMENT_ADDRESS(A, M) \25 #define ASSERT_INVALID_PCI_SEGMENT_ADDRESS(A, M) \ 26 26 ASSERT (((A) & (0xfffffffff0000000ULL | (M))) == 0) 27 27 … … 31 31 @param A The address to convert. 32 32 **/ 33 #define PCI_SEGMENT_TO_PCI_ADDRESS(A) ((UINTN) (UINT32) A)33 #define PCI_SEGMENT_TO_PCI_ADDRESS(A) ((UINTN) (UINT32) A) 34 34 35 35 /** … … 77 77 EFIAPI 78 78 PciSegmentRead8 ( 79 IN UINT64 79 IN UINT64 Address 80 80 ) 81 81 { … … 102 102 EFIAPI 103 103 PciSegmentWrite8 ( 104 IN UINT64 105 IN UINT8 104 IN UINT64 Address, 105 IN UINT8 Value 106 106 ) 107 107 { … … 131 131 EFIAPI 132 132 PciSegmentOr8 ( 133 IN UINT64 134 IN UINT8 135 ) 136 { 137 return PciWrite8 (PCI_SEGMENT_TO_PCI_ADDRESS (Address), (UINT8) 133 IN UINT64 Address, 134 IN UINT8 OrData 135 ) 136 { 137 return PciWrite8 (PCI_SEGMENT_TO_PCI_ADDRESS (Address), (UINT8)(PciSegmentRead8 (Address) | OrData)); 138 138 } 139 139 … … 157 157 EFIAPI 158 158 PciSegmentAnd8 ( 159 IN UINT64 160 IN UINT8 161 ) 162 { 163 return PciSegmentWrite8 (Address, (UINT8) 159 IN UINT64 Address, 160 IN UINT8 AndData 161 ) 162 { 163 return PciSegmentWrite8 (Address, (UINT8)(PciSegmentRead8 (Address) & AndData)); 164 164 } 165 165 … … 187 187 EFIAPI 188 188 PciSegmentAndThenOr8 ( 189 IN UINT64 190 IN UINT8 191 IN UINT8 192 ) 193 { 194 return PciSegmentWrite8 (Address, (UINT8) 189 IN UINT64 Address, 190 IN UINT8 AndData, 191 IN UINT8 OrData 192 ) 193 { 194 return PciSegmentWrite8 (Address, (UINT8)((PciSegmentRead8 (Address) & AndData) | OrData)); 195 195 } 196 196 … … 219 219 EFIAPI 220 220 PciSegmentBitFieldRead8 ( 221 IN UINT64 222 IN UINTN 223 IN UINTN 221 IN UINT64 Address, 222 IN UINTN StartBit, 223 IN UINTN EndBit 224 224 ) 225 225 { … … 254 254 EFIAPI 255 255 PciSegmentBitFieldWrite8 ( 256 IN UINT64 257 IN UINTN 258 IN UINTN 259 IN UINT8 256 IN UINT64 Address, 257 IN UINTN StartBit, 258 IN UINTN EndBit, 259 IN UINT8 Value 260 260 ) 261 261 { … … 296 296 EFIAPI 297 297 PciSegmentBitFieldOr8 ( 298 IN UINT64 299 IN UINTN 300 IN UINTN 301 IN UINT8 298 IN UINT64 Address, 299 IN UINTN StartBit, 300 IN UINTN EndBit, 301 IN UINT8 OrData 302 302 ) 303 303 { … … 338 338 EFIAPI 339 339 PciSegmentBitFieldAnd8 ( 340 IN UINT64 341 IN UINTN 342 IN UINTN 343 IN UINT8 340 IN UINT64 Address, 341 IN UINTN StartBit, 342 IN UINTN EndBit, 343 IN UINT8 AndData 344 344 ) 345 345 { … … 383 383 EFIAPI 384 384 PciSegmentBitFieldAndThenOr8 ( 385 IN UINT64 386 IN UINTN 387 IN UINTN 388 IN UINT8 389 IN UINT8 385 IN UINT64 Address, 386 IN UINTN StartBit, 387 IN UINTN EndBit, 388 IN UINT8 AndData, 389 IN UINT8 OrData 390 390 ) 391 391 { … … 413 413 EFIAPI 414 414 PciSegmentRead16 ( 415 IN UINT64 415 IN UINT64 Address 416 416 ) 417 417 { … … 439 439 EFIAPI 440 440 PciSegmentWrite16 ( 441 IN UINT64 442 IN UINT16 441 IN UINT64 Address, 442 IN UINT16 Value 443 443 ) 444 444 { … … 471 471 EFIAPI 472 472 PciSegmentOr16 ( 473 IN UINT64 474 IN UINT16 475 ) 476 { 477 return PciSegmentWrite16 (Address, (UINT16) 473 IN UINT64 Address, 474 IN UINT16 OrData 475 ) 476 { 477 return PciSegmentWrite16 (Address, (UINT16)(PciSegmentRead16 (Address) | OrData)); 478 478 } 479 479 … … 499 499 EFIAPI 500 500 PciSegmentAnd16 ( 501 IN UINT64 502 IN UINT16 503 ) 504 { 505 return PciSegmentWrite16 (Address, (UINT16) 501 IN UINT64 Address, 502 IN UINT16 AndData 503 ) 504 { 505 return PciSegmentWrite16 (Address, (UINT16)(PciSegmentRead16 (Address) & AndData)); 506 506 } 507 507 … … 530 530 EFIAPI 531 531 PciSegmentAndThenOr16 ( 532 IN UINT64 533 IN UINT16 534 IN UINT16 535 ) 536 { 537 return PciSegmentWrite16 (Address, (UINT16) 532 IN UINT64 Address, 533 IN UINT16 AndData, 534 IN UINT16 OrData 535 ) 536 { 537 return PciSegmentWrite16 (Address, (UINT16)((PciSegmentRead16 (Address) & AndData) | OrData)); 538 538 } 539 539 … … 563 563 EFIAPI 564 564 PciSegmentBitFieldRead16 ( 565 IN UINT64 566 IN UINTN 567 IN UINTN 565 IN UINT64 Address, 566 IN UINTN StartBit, 567 IN UINTN EndBit 568 568 ) 569 569 { … … 599 599 EFIAPI 600 600 PciSegmentBitFieldWrite16 ( 601 IN UINT64 602 IN UINTN 603 IN UINTN 604 IN UINT16 601 IN UINT64 Address, 602 IN UINTN StartBit, 603 IN UINTN EndBit, 604 IN UINT16 Value 605 605 ) 606 606 { … … 642 642 EFIAPI 643 643 PciSegmentBitFieldOr16 ( 644 IN UINT64 645 IN UINTN 646 IN UINTN 647 IN UINT16 644 IN UINT64 Address, 645 IN UINTN StartBit, 646 IN UINTN EndBit, 647 IN UINT16 OrData 648 648 ) 649 649 { … … 685 685 EFIAPI 686 686 PciSegmentBitFieldAnd16 ( 687 IN UINT64 688 IN UINTN 689 IN UINTN 690 IN UINT16 687 IN UINT64 Address, 688 IN UINTN StartBit, 689 IN UINTN EndBit, 690 IN UINT16 AndData 691 691 ) 692 692 { … … 731 731 EFIAPI 732 732 PciSegmentBitFieldAndThenOr16 ( 733 IN UINT64 734 IN UINTN 735 IN UINTN 736 IN UINT16 737 IN UINT16 733 IN UINT64 Address, 734 IN UINTN StartBit, 735 IN UINTN EndBit, 736 IN UINT16 AndData, 737 IN UINT16 OrData 738 738 ) 739 739 { … … 761 761 EFIAPI 762 762 PciSegmentRead32 ( 763 IN UINT64 763 IN UINT64 Address 764 764 ) 765 765 { … … 787 787 EFIAPI 788 788 PciSegmentWrite32 ( 789 IN UINT64 790 IN UINT32 789 IN UINT64 Address, 790 IN UINT32 Value 791 791 ) 792 792 { … … 817 817 EFIAPI 818 818 PciSegmentOr32 ( 819 IN UINT64 820 IN UINT32 819 IN UINT64 Address, 820 IN UINT32 OrData 821 821 ) 822 822 { … … 845 845 EFIAPI 846 846 PciSegmentAnd32 ( 847 IN UINT64 848 IN UINT32 847 IN UINT64 Address, 848 IN UINT32 AndData 849 849 ) 850 850 { … … 876 876 EFIAPI 877 877 PciSegmentAndThenOr32 ( 878 IN UINT64 879 IN UINT32 880 IN UINT32 878 IN UINT64 Address, 879 IN UINT32 AndData, 880 IN UINT32 OrData 881 881 ) 882 882 { … … 909 909 EFIAPI 910 910 PciSegmentBitFieldRead32 ( 911 IN UINT64 912 IN UINTN 913 IN UINTN 911 IN UINT64 Address, 912 IN UINTN StartBit, 913 IN UINTN EndBit 914 914 ) 915 915 { … … 945 945 EFIAPI 946 946 PciSegmentBitFieldWrite32 ( 947 IN UINT64 948 IN UINTN 949 IN UINTN 950 IN UINT32 947 IN UINT64 Address, 948 IN UINTN StartBit, 949 IN UINTN EndBit, 950 IN UINT32 Value 951 951 ) 952 952 { … … 987 987 EFIAPI 988 988 PciSegmentBitFieldOr32 ( 989 IN UINT64 990 IN UINTN 991 IN UINTN 992 IN UINT32 989 IN UINT64 Address, 990 IN UINTN StartBit, 991 IN UINTN EndBit, 992 IN UINT32 OrData 993 993 ) 994 994 { … … 1029 1029 EFIAPI 1030 1030 PciSegmentBitFieldAnd32 ( 1031 IN UINT64 1032 IN UINTN 1033 IN UINTN 1034 IN UINT32 1031 IN UINT64 Address, 1032 IN UINTN StartBit, 1033 IN UINTN EndBit, 1034 IN UINT32 AndData 1035 1035 ) 1036 1036 { … … 1075 1075 EFIAPI 1076 1076 PciSegmentBitFieldAndThenOr32 ( 1077 IN UINT64 1078 IN UINTN 1079 IN UINTN 1080 IN UINT32 1081 IN UINT32 1077 IN UINT64 Address, 1078 IN UINTN StartBit, 1079 IN UINTN EndBit, 1080 IN UINT32 AndData, 1081 IN UINT32 OrData 1082 1082 ) 1083 1083 { … … 1114 1114 EFIAPI 1115 1115 PciSegmentReadBuffer ( 1116 IN UINT64 1117 IN UINTN 1118 OUT VOID 1119 ) 1120 { 1121 UINTN 1116 IN UINT64 StartAddress, 1117 IN UINTN Size, 1118 OUT VOID *Buffer 1119 ) 1120 { 1121 UINTN ReturnValue; 1122 1122 1123 1123 ASSERT_INVALID_PCI_SEGMENT_ADDRESS (StartAddress, 0); … … 1140 1140 // 1141 1141 *(volatile UINT8 *)Buffer = PciSegmentRead8 (StartAddress); 1142 StartAddress += sizeof (UINT8);1143 Size -= sizeof (UINT8);1144 Buffer = (UINT8*)Buffer + 1;1142 StartAddress += sizeof (UINT8); 1143 Size -= sizeof (UINT8); 1144 Buffer = (UINT8 *)Buffer + 1; 1145 1145 } 1146 1146 1147 if ( Size >= sizeof (UINT16) && (StartAddress & BIT1) != 0) {1147 if ((Size >= sizeof (UINT16)) && ((StartAddress & BIT1) != 0)) { 1148 1148 // 1149 1149 // Read a word if StartAddress is word aligned … … 1151 1151 WriteUnaligned16 (Buffer, PciSegmentRead16 (StartAddress)); 1152 1152 StartAddress += sizeof (UINT16); 1153 Size -= sizeof (UINT16);1154 Buffer = (UINT16*)Buffer + 1;1153 Size -= sizeof (UINT16); 1154 Buffer = (UINT16 *)Buffer + 1; 1155 1155 } 1156 1156 … … 1161 1161 WriteUnaligned32 (Buffer, PciSegmentRead32 (StartAddress)); 1162 1162 StartAddress += sizeof (UINT32); 1163 Size -= sizeof (UINT32);1164 Buffer = (UINT32*)Buffer + 1;1163 Size -= sizeof (UINT32); 1164 Buffer = (UINT32 *)Buffer + 1; 1165 1165 } 1166 1166 … … 1171 1171 WriteUnaligned16 (Buffer, PciSegmentRead16 (StartAddress)); 1172 1172 StartAddress += sizeof (UINT16); 1173 Size -= sizeof (UINT16);1174 Buffer = (UINT16*)Buffer + 1;1173 Size -= sizeof (UINT16); 1174 Buffer = (UINT16 *)Buffer + 1; 1175 1175 } 1176 1176 … … 1212 1212 EFIAPI 1213 1213 PciSegmentWriteBuffer ( 1214 IN UINT64 1215 IN UINTN 1216 IN VOID 1217 ) 1218 { 1219 UINTN 1214 IN UINT64 StartAddress, 1215 IN UINTN Size, 1216 IN VOID *Buffer 1217 ) 1218 { 1219 UINTN ReturnValue; 1220 1220 1221 1221 ASSERT_INVALID_PCI_SEGMENT_ADDRESS (StartAddress, 0); … … 1237 1237 // Write a byte if StartAddress is byte aligned 1238 1238 // 1239 PciSegmentWrite8 (StartAddress, *(UINT8 *)Buffer);1239 PciSegmentWrite8 (StartAddress, *(UINT8 *)Buffer); 1240 1240 StartAddress += sizeof (UINT8); 1241 Size -= sizeof (UINT8);1242 Buffer = (UINT8*)Buffer + 1;1241 Size -= sizeof (UINT8); 1242 Buffer = (UINT8 *)Buffer + 1; 1243 1243 } 1244 1244 1245 if ( Size >= sizeof (UINT16) && (StartAddress & BIT1) != 0) {1245 if ((Size >= sizeof (UINT16)) && ((StartAddress & BIT1) != 0)) { 1246 1246 // 1247 1247 // Write a word if StartAddress is word aligned … … 1249 1249 PciSegmentWrite16 (StartAddress, ReadUnaligned16 (Buffer)); 1250 1250 StartAddress += sizeof (UINT16); 1251 Size -= sizeof (UINT16);1252 Buffer = (UINT16*)Buffer + 1;1251 Size -= sizeof (UINT16); 1252 Buffer = (UINT16 *)Buffer + 1; 1253 1253 } 1254 1254 … … 1259 1259 PciSegmentWrite32 (StartAddress, ReadUnaligned32 (Buffer)); 1260 1260 StartAddress += sizeof (UINT32); 1261 Size -= sizeof (UINT32);1262 Buffer = (UINT32*)Buffer + 1;1261 Size -= sizeof (UINT32); 1262 Buffer = (UINT32 *)Buffer + 1; 1263 1263 } 1264 1264 … … 1269 1269 PciSegmentWrite16 (StartAddress, ReadUnaligned16 (Buffer)); 1270 1270 StartAddress += sizeof (UINT16); 1271 Size -= sizeof (UINT16);1272 Buffer = (UINT16*)Buffer + 1;1271 Size -= sizeof (UINT16); 1272 Buffer = (UINT16 *)Buffer + 1; 1273 1273 } 1274 1274 … … 1277 1277 // Write the last remaining byte if exist 1278 1278 // 1279 PciSegmentWrite8 (StartAddress, *(UINT8 *)Buffer);1279 PciSegmentWrite8 (StartAddress, *(UINT8 *)Buffer); 1280 1280 } 1281 1281
Note:
See TracChangeset
for help on using the changeset viewer.