]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcMtftp.h
MdeModulePkg: Clean up source files
[mirror_edk2.git] / MdeModulePkg / Universal / Network / UefiPxeBcDxe / PxeBcMtftp.h
1 /** @file
2 Mtftp routines for PxeBc.
3
4 Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #ifndef __EFI_PXEBC_MTFTP_H__
16 #define __EFI_PXEBC_MTFTP_H__
17
18 #define PXE_MTFTP_OPTION_BLKSIZE_INDEX 0
19 #define PXE_MTFTP_OPTION_TIMEOUT_INDEX 1
20 #define PXE_MTFTP_OPTION_TSIZE_INDEX 2
21 #define PXE_MTFTP_OPTION_MULTICAST_INDEX 3
22 #define PXE_MTFTP_OPTION_MAXIMUM_INDEX 4
23
24 #define PXE_MTFTP_ERROR_STRING_LENGTH 127
25 #define PXE_MTFTP_OPTBUF_MAXNUM_INDEX 128
26
27
28 /**
29 This function is to get size of a file by Tftp.
30
31 @param Private Pointer to PxeBc private data
32 @param Config Pointer to Mtftp configuration data
33 @param Filename Pointer to file name
34 @param BlockSize Pointer to block size
35 @param BufferSize Pointer to buffer size
36
37 @retval EFI_SUCCESS Get the size of file success
38 @retval EFI_NOT_FOUND Parse the tftp ptions failed.
39 @retval EFI_DEVICE_ERROR The network device encountered an error during this operation.
40 @retval Other Has not get the size of the file.
41
42 **/
43 EFI_STATUS
44 PxeBcTftpGetFileSize (
45 IN PXEBC_PRIVATE_DATA *Private,
46 IN EFI_MTFTP4_CONFIG_DATA *Config,
47 IN UINT8 *Filename,
48 IN UINTN *BlockSize,
49 IN OUT UINT64 *BufferSize
50 );
51
52
53 /**
54 This function is to get data of a file by Tftp.
55
56 @param Private Pointer to PxeBc private data
57 @param Config Pointer to Mtftp configuration data
58 @param Filename Pointer to file name
59 @param BlockSize Pointer to block size
60 @param BufferPtr Pointer to buffer
61 @param BufferSize Pointer to buffer size
62 @param DontUseBuffer Indicate whether with a receive buffer
63
64 @retval EFI_SUCCESS Read the data success from the special file.
65 @retval EFI_DEVICE_ERROR The network device encountered an error during this operation.
66 @retval other Read data from file failed.
67
68 **/
69 EFI_STATUS
70 PxeBcTftpReadFile (
71 IN PXEBC_PRIVATE_DATA *Private,
72 IN EFI_MTFTP4_CONFIG_DATA *Config,
73 IN UINT8 *Filename,
74 IN UINTN *BlockSize,
75 IN UINT8 *BufferPtr,
76 IN OUT UINT64 *BufferSize,
77 IN BOOLEAN DontUseBuffer
78 );
79
80
81 /**
82 This function is put data of a file by Tftp.
83
84 @param Private Pointer to PxeBc private data
85 @param Config Pointer to Mtftp configuration data
86 @param Filename Pointer to file name
87 @param Overwrite Indicate whether with overwrite attribute
88 @param BlockSize Pointer to block size
89 @param BufferPtr Pointer to buffer
90 @param BufferSize Pointer to buffer size
91
92 @retval EFI_SUCCESS Write the data success into the special file.
93 @retval EFI_DEVICE_ERROR The network device encountered an error during this operation.
94 @retval other Write data into file failed.
95
96 **/
97 EFI_STATUS
98 PxeBcTftpWriteFile (
99 IN PXEBC_PRIVATE_DATA *Private,
100 IN EFI_MTFTP4_CONFIG_DATA *Config,
101 IN UINT8 *Filename,
102 IN BOOLEAN Overwrite,
103 IN UINTN *BlockSize,
104 IN UINT8 *BufferPtr,
105 IN OUT UINT64 *BufferSize
106 );
107
108
109 /**
110 This function is to get data(file) from a directory(may be a server) by Tftp.
111
112 @param Private Pointer to PxeBc private data.
113 @param Config Pointer to Mtftp configuration data.
114 @param Filename Pointer to file name.
115 @param BlockSize Pointer to block size.
116 @param BufferPtr Pointer to buffer.
117 @param BufferSize Pointer to buffer size.
118 @param DontUseBuffer Indicate whether with a receive buffer.
119
120 @retval EFI_SUCCES Get the data from the file included in directory success.
121 @retval EFI_DEVICE_ERROR The network device encountered an error during this operation.
122 @retval other Operation failed.
123
124 **/
125 EFI_STATUS
126 PxeBcTftpReadDirectory (
127 IN PXEBC_PRIVATE_DATA *Private,
128 IN EFI_MTFTP4_CONFIG_DATA *Config,
129 IN UINT8 *Filename,
130 IN UINTN *BlockSize,
131 IN UINT8 *BufferPtr,
132 IN OUT UINT64 *BufferSize,
133 IN BOOLEAN DontUseBuffer
134 );
135
136 #endif
137