Home | History | Annotate | Download | only in UefiPxeBcDxe
      1 /** @file
      2   Mtftp routines for PxeBc.
      3 
      4 Copyright (c) 2007 - 2015, 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 
    138