]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/PxeBcDxe/Tftp.h
Update to support to produce Component Name and & Component Name 2 protocol based...
[mirror_edk2.git] / MdeModulePkg / Universal / Network / PxeBcDxe / Tftp.h
index f81d86c1630a826214eb25f825cbe15c8ea20a5b..018af5a40066d0e8d96a70ff75b9832692ceeed0 100644 (file)
-/** @file
-
-Copyright (c) 2004, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution.  The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-Module Name:
-  tftp.h
-
-Abstract:
-
-
-**/
-
-#ifndef __TFTP_H__
-#define __TFTP_H__
-
-//
-// Definitions for trivial file transfer protocol functionality with IP v4
-// Per RFC 1350, July 1992 and RFC 2347, 8, and 9, May 1998
-//
-#pragma pack(1)
-//
-// max and min packet sizes
-// (all data packets in transmission except last)
-//
-#define MAX_TFTP_PKT_SIZE (BUFFER_ALLOCATE_SIZE - 512)
-#define MIN_TFTP_PKT_SIZE 512
-
-//
-// TFTPv4 OpCodes
-//
-#define TFTP_RRQ    1 // read request
-#define TFTP_WRQ    2 // write request
-#define TFTP_DATA   3 // data
-#define TFTP_ACK    4 // acknowledgement
-#define TFTP_ERROR  5 // error packet
-#define TFTP_OACK   6 // option acknowledge
-#define TFTP_DIR    7 // read directory request
-#define TFTP_DATA8  8
-#define TFTP_ACK8   9
-
-//
-// request packet (read or write)
-// Fields shown (except file name) are not to be referenced directly,
-// since their placement is variable within a request packet.
-// All are null terminated case insensitive ascii strings.
-//
-struct Tftpv4Req {
-  UINT16  OpCode;       // TFTP Op code
-  UINT8   FileName[2];  // file name
-  UINT8   Mode[2];      // "netascii" or "octet"
-  struct {              // optionally, one or more option requests
-    UINT8 Option[2];    // option name
-    UINT8 Value[2];     // value requested
-  } OpReq[1];
-};
-
-//
-// modes
-//
-#define MODE_ASCII  "netascii"
-#define MODE_BINARY "octet"
-
-//
-// option strings
-//
-#define OP_BLKSIZE    "blksize"   // block size option
-#define OP_TIMEOUT    "timeout"   // time to wait before retransmitting
-#define OP_TFRSIZE    "tsize"     // total transfer size option
-#define OP_OVERWRITE  "overwrite" // overwrite file option
-#define OP_BIGBLKNUM  "bigblk#"   // big block number
-// See RFC 2347, 8, and 9 for more information on TFTP options
-// option acknowledge packet (optional)
-// options not acknowledged are rejected
-//
-struct Tftpv4Oack {
-  UINT16  OpCode;     // TFTP Op code
-  struct {            // optionally, one or more option acknowledgements
-    UINT8 Option[2];  // option name (of those requested)
-    UINT8 Value[2];   // value acknowledged
-  } OpAck[1];
-};
-
-//
-// acknowledge packet
-//
-struct Tftpv4Ack {
-  UINT16  OpCode; // TFTP Op code
-  UINT16  BlockNum;
-};
-
-//
-// data packet
-//
-struct Tftpv4Data {
-  struct Tftpv4Ack  Header;
-  UINT8             Data[512];
-};
-
-//
-// big block number ack packet
-//
-struct Tftpv4Ack8 {
-  UINT16  OpCode;
-  UINT64  BlockNum;
-};
-
-//
-// big block number data packet
-//
-struct Tftpv4Data8 {
-  struct Tftpv4Ack8 Header;
-  UINT8             Data[506];
-};
-
-//
-// error packet
-//
-struct Tftpv4Error {
-  UINT16  OpCode;     // TFTP Op code
-  UINT16  ErrCode;    // error code
-  UINT8   ErrMsg[1];  // error message (nul terminated)
-};
-
-#pragma pack()
-//
-// error codes
-//
-#define TFTP_ERR_UNDEF      0 //     Not defined, see error message (if any).
-#define TFTP_ERR_NOT_FOUND  1 //     File not found.
-#define TFTP_ERR_ACCESS     2 //     Access violation.
-#define TFTP_ERR_FULL       3 //     Disk full or allocation exceeded.
-#define TFTP_ERR_ILLEGAL    4 //     Illegal TFTP operation.
-#define TFTP_ERR_BAD_ID     5 //     Unknown transfer ID.
-#define TFTP_ERR_EXISTS     6 //     File already exists.
-#define TFTP_ERR_NO_USER    7 //     No such user.
-#define TFTP_ERR_OPTION     8 //     Option negotiation termination
-//
-// some defines
-//
-#define REQ_RESP_TIMEOUT        5 // Wait five seconds for request response.
-#define ACK_TIMEOUT             4 // Wait four seconds for ack response.
-#define NUM_ACK_RETRIES         3
-#define NUM_MTFTP_OPEN_RETRIES  3
-
-#endif /* __TFTP_H__ */
-
-/* EOF - tftp.h */
+/** @file\r
+\r
+Copyright (c) 2004, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+  tftp.h\r
+\r
+Abstract:\r
+\r
+\r
+**/\r
+\r
+#ifndef __TFTP_H__\r
+#define __TFTP_H__\r
+\r
+//\r
+// Definitions for trivial file transfer protocol functionality with IP v4\r
+// Per RFC 1350, July 1992 and RFC 2347, 8, and 9, May 1998\r
+//\r
+#pragma pack(1)\r
+//\r
+// max and min packet sizes\r
+// (all data packets in transmission except last)\r
+//\r
+#define MAX_TFTP_PKT_SIZE (BUFFER_ALLOCATE_SIZE - 512)\r
+#define MIN_TFTP_PKT_SIZE 512\r
+\r
+//\r
+// TFTPv4 OpCodes\r
+//\r
+#define TFTP_RRQ    1 // read request\r
+#define TFTP_WRQ    2 // write request\r
+#define TFTP_DATA   3 // data\r
+#define TFTP_ACK    4 // acknowledgement\r
+#define TFTP_ERROR  5 // error packet\r
+#define TFTP_OACK   6 // option acknowledge\r
+#define TFTP_DIR    7 // read directory request\r
+#define TFTP_DATA8  8\r
+#define TFTP_ACK8   9\r
+\r
+//\r
+// request packet (read or write)\r
+// Fields shown (except file name) are not to be referenced directly,\r
+// since their placement is variable within a request packet.\r
+// All are null terminated case insensitive ascii strings.\r
+//\r
+struct Tftpv4Req {\r
+  UINT16  OpCode;       // TFTP Op code\r
+  UINT8   FileName[2];  // file name\r
+  UINT8   Mode[2];      // "netascii" or "octet"\r
+  struct {              // optionally, one or more option requests\r
+    UINT8 Option[2];    // option name\r
+    UINT8 Value[2];     // value requested\r
+  } OpReq[1];\r
+};\r
+\r
+//\r
+// modes\r
+//\r
+#define MODE_ASCII  "netascii"\r
+#define MODE_BINARY "octet"\r
+\r
+//\r
+// option strings\r
+//\r
+#define OP_BLKSIZE    "blksize"   // block size option\r
+#define OP_TIMEOUT    "timeout"   // time to wait before retransmitting\r
+#define OP_TFRSIZE    "tsize"     // total transfer size option\r
+#define OP_OVERWRITE  "overwrite" // overwrite file option\r
+#define OP_BIGBLKNUM  "bigblk#"   // big block number\r
+// See RFC 2347, 8, and 9 for more information on TFTP options\r
+// option acknowledge packet (optional)\r
+// options not acknowledged are rejected\r
+//\r
+struct Tftpv4Oack {\r
+  UINT16  OpCode;     // TFTP Op code\r
+  struct {            // optionally, one or more option acknowledgements\r
+    UINT8 Option[2];  // option name (of those requested)\r
+    UINT8 Value[2];   // value acknowledged\r
+  } OpAck[1];\r
+};\r
+\r
+//\r
+// acknowledge packet\r
+//\r
+struct Tftpv4Ack {\r
+  UINT16  OpCode; // TFTP Op code\r
+  UINT16  BlockNum;\r
+};\r
+\r
+//\r
+// data packet\r
+//\r
+struct Tftpv4Data {\r
+  struct Tftpv4Ack  Header;\r
+  UINT8             Data[512];\r
+};\r
+\r
+//\r
+// big block number ack packet\r
+//\r
+struct Tftpv4Ack8 {\r
+  UINT16  OpCode;\r
+  UINT64  BlockNum;\r
+};\r
+\r
+//\r
+// big block number data packet\r
+//\r
+struct Tftpv4Data8 {\r
+  struct Tftpv4Ack8 Header;\r
+  UINT8             Data[506];\r
+};\r
+\r
+//\r
+// error packet\r
+//\r
+struct Tftpv4Error {\r
+  UINT16  OpCode;     // TFTP Op code\r
+  UINT16  ErrCode;    // error code\r
+  UINT8   ErrMsg[1];  // error message (nul terminated)\r
+};\r
+\r
+#pragma pack()\r
+//\r
+// error codes\r
+//\r
+#define TFTP_ERR_UNDEF      0 //     Not defined, see error message (if any).\r
+#define TFTP_ERR_NOT_FOUND  1 //     File not found.\r
+#define TFTP_ERR_ACCESS     2 //     Access violation.\r
+#define TFTP_ERR_FULL       3 //     Disk full or allocation exceeded.\r
+#define TFTP_ERR_ILLEGAL    4 //     Illegal TFTP operation.\r
+#define TFTP_ERR_BAD_ID     5 //     Unknown transfer ID.\r
+#define TFTP_ERR_EXISTS     6 //     File already exists.\r
+#define TFTP_ERR_NO_USER    7 //     No such user.\r
+#define TFTP_ERR_OPTION     8 //     Option negotiation termination\r
+//\r
+// some defines\r
+//\r
+#define REQ_RESP_TIMEOUT        5 // Wait five seconds for request response.\r
+#define ACK_TIMEOUT             4 // Wait four seconds for ack response.\r
+#define NUM_ACK_RETRIES         3\r
+#define NUM_MTFTP_OPEN_RETRIES  3\r
+\r
+#endif /* __TFTP_H__ */\r
+\r
+/* EOF - tftp.h */\r