\r
#include "Mtftp4Impl.h"\r
\r
-\r
-\r
/**\r
Build then send a MTFTP data packet for the MTFTP upload session.\r
\r
**/\r
EFI_STATUS\r
Mtftp4WrqSendBlock (\r
- IN OUT MTFTP4_PROTOCOL *Instance,\r
- IN UINT16 BlockNum\r
+ IN OUT MTFTP4_PROTOCOL *Instance,\r
+ IN UINT16 BlockNum\r
)\r
{\r
- EFI_MTFTP4_PACKET *Packet;\r
- EFI_MTFTP4_TOKEN *Token;\r
- NET_BUF *UdpPacket;\r
- EFI_STATUS Status;\r
- UINT16 DataLen;\r
- UINT8 *DataBuf;\r
- UINT64 Start;\r
+ EFI_MTFTP4_PACKET *Packet;\r
+ EFI_MTFTP4_TOKEN *Token;\r
+ NET_BUF *UdpPacket;\r
+ EFI_STATUS Status;\r
+ UINT16 DataLen;\r
+ UINT8 *DataBuf;\r
+ UINT64 Start;\r
\r
//\r
// Allocate a buffer to hold the user data\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- Packet = (EFI_MTFTP4_PACKET *) NetbufAllocSpace (UdpPacket, MTFTP4_DATA_HEAD_LEN, FALSE);\r
+ Packet = (EFI_MTFTP4_PACKET *)NetbufAllocSpace (UdpPacket, MTFTP4_DATA_HEAD_LEN, FALSE);\r
ASSERT (Packet != NULL);\r
\r
Packet->Data.OpCode = HTONS (EFI_MTFTP4_OPCODE_DATA);\r
Start = MultU64x32 (BlockNum - 1, Instance->BlkSize);\r
\r
if (Token->BufferSize < Start + Instance->BlkSize) {\r
- DataLen = (UINT16) (Token->BufferSize - Start);\r
+ DataLen = (UINT16)(Token->BufferSize - Start);\r
Instance->LastBlock = BlockNum;\r
Mtftp4SetLastBlockNum (&Instance->Blocks, BlockNum);\r
}\r
\r
if (DataLen > 0) {\r
NetbufAllocSpace (UdpPacket, DataLen, FALSE);\r
- CopyMem (Packet->Data.Data, (UINT8 *) Token->Buffer + Start, DataLen);\r
+ CopyMem (Packet->Data.Data, (UINT8 *)Token->Buffer + Start, DataLen);\r
}\r
-\r
} else {\r
//\r
// Get data from PacketNeeded\r
&Instance->Mtftp4,\r
Token,\r
&DataLen,\r
- (VOID **) &DataBuf\r
+ (VOID **)&DataBuf\r
);\r
\r
if (EFI_ERROR (Status) || (DataLen > Instance->BlkSize)) {\r
Mtftp4SendError (\r
Instance,\r
EFI_MTFTP4_ERRORCODE_REQUEST_DENIED,\r
- (UINT8 *) "User aborted the transfer"\r
+ (UINT8 *)"User aborted the transfer"\r
);\r
\r
return EFI_ABORTED;\r
return Mtftp4SendPacket (Instance, UdpPacket);\r
}\r
\r
-\r
/**\r
Function to handle received ACK packet.\r
\r
**/\r
EFI_STATUS\r
Mtftp4WrqHandleAck (\r
- IN MTFTP4_PROTOCOL *Instance,\r
- IN EFI_MTFTP4_PACKET *Packet,\r
- IN UINT32 Len,\r
- OUT BOOLEAN *Completed\r
+ IN MTFTP4_PROTOCOL *Instance,\r
+ IN EFI_MTFTP4_PACKET *Packet,\r
+ IN UINT32 Len,\r
+ OUT BOOLEAN *Completed\r
)\r
{\r
- UINT16 AckNum;\r
- INTN Expected;\r
- UINT64 BlockCounter;\r
+ UINT16 AckNum;\r
+ INTN Expected;\r
+ UINT64 BlockCounter;\r
\r
- *Completed = FALSE;\r
- AckNum = NTOHS (Packet->Ack.Block[0]);\r
- Expected = Mtftp4GetNextBlockNum (&Instance->Blocks);\r
+ *Completed = FALSE;\r
+ AckNum = NTOHS (Packet->Ack.Block[0]);\r
+ Expected = Mtftp4GetNextBlockNum (&Instance->Blocks);\r
\r
ASSERT (Expected >= 0);\r
\r
Expected = Mtftp4GetNextBlockNum (&Instance->Blocks);\r
\r
if (Expected < 0) {\r
-\r
//\r
- // The block range is empty. It may either because the the last\r
+ // The block range is empty. It may either because the last\r
// block has been ACKed, or the sequence number just looped back,\r
// that is, there is more than 0xffff blocks.\r
//\r
ASSERT (Instance->LastBlock >= 1);\r
*Completed = TRUE;\r
return EFI_SUCCESS;\r
-\r
} else {\r
Mtftp4SendError (\r
Instance,\r
EFI_MTFTP4_ERRORCODE_REQUEST_DENIED,\r
- (UINT8 *) "Block number rolls back, not supported, try blksize option"\r
+ (UINT8 *)"Block number rolls back, not supported, try blksize option"\r
);\r
\r
return EFI_TFTP_ERROR;\r
}\r
}\r
\r
- return Mtftp4WrqSendBlock (Instance, (UINT16) Expected);\r
+ return Mtftp4WrqSendBlock (Instance, (UINT16)Expected);\r
}\r
\r
-\r
/**\r
Check whether the received OACK is valid.\r
\r
**/\r
BOOLEAN\r
Mtftp4WrqOackValid (\r
- IN MTFTP4_OPTION *Reply,\r
- IN MTFTP4_OPTION *Request\r
+ IN MTFTP4_OPTION *Reply,\r
+ IN MTFTP4_OPTION *Request\r
)\r
{\r
//\r
// return the timeout matches that requested.\r
//\r
if ((((Reply->Exist & MTFTP4_BLKSIZE_EXIST) != 0) && (Reply->BlkSize > Request->BlkSize)) ||\r
- (((Reply->Exist & MTFTP4_TIMEOUT_EXIST) != 0) && (Reply->Timeout != Request->Timeout))) {\r
+ (((Reply->Exist & MTFTP4_TIMEOUT_EXIST) != 0) && (Reply->Timeout != Request->Timeout)))\r
+ {\r
return FALSE;\r
}\r
\r
return TRUE;\r
}\r
\r
-\r
/**\r
Function to handle the MTFTP OACK packet.\r
\r
@param Instance The MTFTP session\r
@param Packet The received OACK packet\r
@param Len The length of the packet\r
- @param Completed Whether the transmisson has completed. NOT used by\r
+ @param Completed Whether the transmission has completed. NOT used by\r
this function.\r
\r
@retval EFI_SUCCESS The OACK process is OK\r
- @retval EFI_TFTP_ERROR Some error occured, and the session reset.\r
+ @retval EFI_TFTP_ERROR Some error occurred, and the session reset.\r
\r
**/\r
EFI_STATUS\r
Mtftp4WrqHandleOack (\r
- IN OUT MTFTP4_PROTOCOL *Instance,\r
- IN EFI_MTFTP4_PACKET *Packet,\r
- IN UINT32 Len,\r
- OUT BOOLEAN *Completed\r
+ IN OUT MTFTP4_PROTOCOL *Instance,\r
+ IN EFI_MTFTP4_PACKET *Packet,\r
+ IN UINT32 Len,\r
+ OUT BOOLEAN *Completed\r
)\r
{\r
- MTFTP4_OPTION Reply;\r
- EFI_MTFTP4_PACKET Bogus;\r
- EFI_STATUS Status;\r
- INTN Expected;\r
+ MTFTP4_OPTION Reply;\r
+ EFI_MTFTP4_PACKET Bogus;\r
+ EFI_STATUS Status;\r
+ INTN Expected;\r
\r
*Completed = FALSE;\r
\r
Mtftp4SendError (\r
Instance,\r
EFI_MTFTP4_ERRORCODE_ILLEGAL_OPERATION,\r
- (UINT8 *) "Malformatted OACK packet"\r
+ (UINT8 *)"Malformatted OACK packet"\r
);\r
}\r
\r
// Build a bogus ACK0 packet then pass it to the Mtftp4WrqHandleAck,\r
// which will start the transmission of the first data block.\r
//\r
- Bogus.Ack.OpCode = HTONS (EFI_MTFTP4_OPCODE_ACK);\r
- Bogus.Ack.Block[0] = 0;\r
+ Bogus.Ack.OpCode = HTONS (EFI_MTFTP4_OPCODE_ACK);\r
+ Bogus.Ack.Block[0] = 0;\r
\r
Status = Mtftp4WrqHandleAck (\r
Instance,\r
return Status;\r
}\r
\r
-\r
/**\r
The input process routine for MTFTP upload.\r
\r
VOID\r
EFIAPI\r
Mtftp4WrqInput (\r
- IN NET_BUF *UdpPacket,\r
- IN UDP_END_POINT *EndPoint,\r
- IN EFI_STATUS IoStatus,\r
- IN VOID *Context\r
+ IN NET_BUF *UdpPacket,\r
+ IN UDP_END_POINT *EndPoint,\r
+ IN EFI_STATUS IoStatus,\r
+ IN VOID *Context\r
)\r
{\r
- MTFTP4_PROTOCOL *Instance;\r
- EFI_MTFTP4_PACKET *Packet;\r
- BOOLEAN Completed;\r
- EFI_STATUS Status;\r
- UINT32 Len;\r
- UINT16 Opcode;\r
-\r
- Instance = (MTFTP4_PROTOCOL *) Context;\r
+ MTFTP4_PROTOCOL *Instance;\r
+ EFI_MTFTP4_PACKET *Packet;\r
+ BOOLEAN Completed;\r
+ EFI_STATUS Status;\r
+ UINT32 Len;\r
+ UINT16 Opcode;\r
+\r
+ Instance = (MTFTP4_PROTOCOL *)Context;\r
NET_CHECK_SIGNATURE (Instance, MTFTP4_PROTOCOL_SIGNATURE);\r
\r
Completed = FALSE;\r
goto ON_EXIT;\r
}\r
\r
- NetbufCopy (UdpPacket, 0, Len, (UINT8 *) Packet);\r
-\r
+ NetbufCopy (UdpPacket, 0, Len, (UINT8 *)Packet);\r
} else {\r
- Packet = (EFI_MTFTP4_PACKET *) NetbufGetByte (UdpPacket, 0, NULL);\r
+ Packet = (EFI_MTFTP4_PACKET *)NetbufGetByte (UdpPacket, 0, NULL);\r
ASSERT (Packet != NULL);\r
}\r
\r
// if CheckPacket returns an EFI_ERROR code.\r
//\r
if ((Instance->Token->CheckPacket != NULL) &&\r
- ((Opcode == EFI_MTFTP4_OPCODE_OACK) || (Opcode == EFI_MTFTP4_OPCODE_ERROR))) {\r
-\r
+ ((Opcode == EFI_MTFTP4_OPCODE_OACK) || (Opcode == EFI_MTFTP4_OPCODE_ERROR)))\r
+ {\r
Status = Instance->Token->CheckPacket (\r
&Instance->Mtftp4,\r
Instance->Token,\r
- (UINT16) Len,\r
+ (UINT16)Len,\r
Packet\r
);\r
\r
Mtftp4SendError (\r
Instance,\r
EFI_MTFTP4_ERRORCODE_REQUEST_DENIED,\r
- (UINT8 *) "User aborted the transfer"\r
+ (UINT8 *)"User aborted the transfer"\r
);\r
}\r
\r
}\r
\r
switch (Opcode) {\r
- case EFI_MTFTP4_OPCODE_ACK:\r
- if (Len != MTFTP4_OPCODE_LEN + MTFTP4_BLKNO_LEN) {\r
- goto ON_EXIT;\r
- }\r
+ case EFI_MTFTP4_OPCODE_ACK:\r
+ if (Len != MTFTP4_OPCODE_LEN + MTFTP4_BLKNO_LEN) {\r
+ goto ON_EXIT;\r
+ }\r
\r
- Status = Mtftp4WrqHandleAck (Instance, Packet, Len, &Completed);\r
- break;\r
+ Status = Mtftp4WrqHandleAck (Instance, Packet, Len, &Completed);\r
+ break;\r
\r
- case EFI_MTFTP4_OPCODE_OACK:\r
- if (Len <= MTFTP4_OPCODE_LEN) {\r
- goto ON_EXIT;\r
- }\r
+ case EFI_MTFTP4_OPCODE_OACK:\r
+ if (Len <= MTFTP4_OPCODE_LEN) {\r
+ goto ON_EXIT;\r
+ }\r
\r
- Status = Mtftp4WrqHandleOack (Instance, Packet, Len, &Completed);\r
- break;\r
+ Status = Mtftp4WrqHandleOack (Instance, Packet, Len, &Completed);\r
+ break;\r
\r
- case EFI_MTFTP4_OPCODE_ERROR:\r
- Status = EFI_TFTP_ERROR;\r
- break;\r
+ case EFI_MTFTP4_OPCODE_ERROR:\r
+ Status = EFI_TFTP_ERROR;\r
+ break;\r
\r
- default:\r
- break;\r
+ default:\r
+ break;\r
}\r
\r
ON_EXIT:\r
}\r
}\r
\r
-\r
-\r
/**\r
Start the MTFTP session for upload.\r
\r
**/\r
EFI_STATUS\r
Mtftp4WrqStart (\r
- IN MTFTP4_PROTOCOL *Instance,\r
- IN UINT16 Operation\r
+ IN MTFTP4_PROTOCOL *Instance,\r
+ IN UINT16 Operation\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// The valid block number range are [0, 0xffff]. For example:\r
\r
return UdpIoRecvDatagram (Instance->UnicastPort, Mtftp4WrqInput, Instance, 0);\r
}\r
-\r