Changeset 99404 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/SnpDxe/Receive.c
- Timestamp:
- Apr 14, 2023 3:17:44 PM (22 months ago)
- 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/NetworkPkg/SnpDxe/Receive.c
r80721 r99404 6 6 7 7 **/ 8 9 8 10 9 #include "Snp.h" … … 38 37 EFI_STATUS 39 38 PxeReceive ( 40 SNP_DRIVER *Snp,41 VOID *Buffer,42 UINTN *BufferSize,43 UINTN *HeaderSize,44 EFI_MAC_ADDRESS *SrcAddr,45 EFI_MAC_ADDRESS *DestAddr,46 UINT16 *Protocol39 SNP_DRIVER *Snp, 40 VOID *Buffer, 41 UINTN *BufferSize, 42 UINTN *HeaderSize, 43 EFI_MAC_ADDRESS *SrcAddr, 44 EFI_MAC_ADDRESS *DestAddr, 45 UINT16 *Protocol 47 46 ) 48 47 { 49 PXE_CPB_RECEIVE *Cpb;50 PXE_DB_RECEIVE *Db;51 UINTN BuffSize;52 53 Cpb 54 Db 55 BuffSize 56 57 Cpb->BufferAddr = (UINT64)(UINTN) 58 Cpb->BufferLen = (UINT32) 59 60 Cpb->reserved 61 62 Snp->Cdb.OpCode 63 Snp->Cdb.OpFlags 64 65 Snp->Cdb.CPBsize = (UINT16)sizeof (PXE_CPB_RECEIVE);66 Snp->Cdb.CPBaddr = (UINT64)(UINTN)Cpb;67 68 Snp->Cdb.DBsize = (UINT16)sizeof (PXE_DB_RECEIVE);69 Snp->Cdb.DBaddr = (UINT64)(UINTN)Db;70 71 Snp->Cdb.StatCode 72 Snp->Cdb.StatFlags 73 Snp->Cdb.IFnum 74 Snp->Cdb.Control 48 PXE_CPB_RECEIVE *Cpb; 49 PXE_DB_RECEIVE *Db; 50 UINTN BuffSize; 51 52 Cpb = Snp->Cpb; 53 Db = Snp->Db; 54 BuffSize = *BufferSize; 55 56 Cpb->BufferAddr = (UINT64)(UINTN)Buffer; 57 Cpb->BufferLen = (UINT32)*BufferSize; 58 59 Cpb->reserved = 0; 60 61 Snp->Cdb.OpCode = PXE_OPCODE_RECEIVE; 62 Snp->Cdb.OpFlags = PXE_OPFLAGS_NOT_USED; 63 64 Snp->Cdb.CPBsize = (UINT16)sizeof (PXE_CPB_RECEIVE); 65 Snp->Cdb.CPBaddr = (UINT64)(UINTN)Cpb; 66 67 Snp->Cdb.DBsize = (UINT16)sizeof (PXE_DB_RECEIVE); 68 Snp->Cdb.DBaddr = (UINT64)(UINTN)Db; 69 70 Snp->Cdb.StatCode = PXE_STATCODE_INITIALIZE; 71 Snp->Cdb.StatFlags = PXE_STATFLAGS_INITIALIZE; 72 Snp->Cdb.IFnum = Snp->IfNum; 73 Snp->Cdb.Control = PXE_CONTROL_LAST_CDB_IN_LIST; 75 74 76 75 // 77 76 // Issue UNDI command and check result. 78 77 // 79 DEBUG (( EFI_D_NET, "\nsnp->undi.receive () "));80 81 (*Snp->IssueUndi32Command) ((UINT64)(UINTN)&Snp->Cdb);78 DEBUG ((DEBUG_NET, "\nsnp->undi.receive () ")); 79 80 (*Snp->IssueUndi32Command)((UINT64)(UINTN)&Snp->Cdb); 82 81 83 82 switch (Snp->Cdb.StatCode) { 84 case PXE_STATCODE_SUCCESS:85 break;86 87 case PXE_STATCODE_NO_DATA:88 DEBUG (89 (EFI_D_NET,90 "\nsnp->undi.receive () %xh:%xh\n",91 Snp->Cdb.StatFlags,92 Snp->Cdb.StatCode)93 );94 95 return EFI_NOT_READY;96 97 default:98 DEBUG (99 (EFI_D_ERROR,100 "\nsnp->undi.receive() %xh:%xh\n",101 Snp->Cdb.StatFlags,102 Snp->Cdb.StatCode)103 );104 105 return EFI_DEVICE_ERROR;83 case PXE_STATCODE_SUCCESS: 84 break; 85 86 case PXE_STATCODE_NO_DATA: 87 DEBUG ( 88 (DEBUG_NET, 89 "\nsnp->undi.receive () %xh:%xh\n", 90 Snp->Cdb.StatFlags, 91 Snp->Cdb.StatCode) 92 ); 93 94 return EFI_NOT_READY; 95 96 default: 97 DEBUG ( 98 (DEBUG_ERROR, 99 "\nsnp->undi.receive() %xh:%xh\n", 100 Snp->Cdb.StatFlags, 101 Snp->Cdb.StatCode) 102 ); 103 104 return EFI_DEVICE_ERROR; 106 105 } 107 106 … … 124 123 // We need to do the byte swapping 125 124 // 126 *Protocol = (UINT16) 125 *Protocol = (UINT16)PXE_SWAP_UINT16 (Db->Protocol); 127 126 } 128 127 … … 191 190 EFIAPI 192 191 SnpUndi32Receive ( 193 IN EFI_SIMPLE_NETWORK_PROTOCOL *This,194 OUT UINTN *HeaderSize OPTIONAL,195 IN OUT UINTN *BufferSize,196 OUT VOID *Buffer,197 OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL,198 OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL,199 OUT UINT16 *Protocol OPTIONAL192 IN EFI_SIMPLE_NETWORK_PROTOCOL *This, 193 OUT UINTN *HeaderSize OPTIONAL, 194 IN OUT UINTN *BufferSize, 195 OUT VOID *Buffer, 196 OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL, 197 OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL, 198 OUT UINT16 *Protocol OPTIONAL 200 199 ) 201 200 { … … 213 212 214 213 switch (Snp->Mode.State) { 215 case EfiSimpleNetworkInitialized:216 break;217 218 case EfiSimpleNetworkStopped:219 Status = EFI_NOT_STARTED;220 goto ON_EXIT;221 222 default:223 Status = EFI_DEVICE_ERROR;224 goto ON_EXIT;214 case EfiSimpleNetworkInitialized: 215 break; 216 217 case EfiSimpleNetworkStopped: 218 Status = EFI_NOT_STARTED; 219 goto ON_EXIT; 220 221 default: 222 Status = EFI_DEVICE_ERROR; 223 goto ON_EXIT; 225 224 } 226 225
Note:
See TracChangeset
for help on using the changeset viewer.