TianoCore EDK2 master
Loading...
Searching...
No Matches
SemihostFs.h File Reference

Go to the source code of this file.

Functions

EFI_STATUS VolumeOpen (IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This, OUT EFI_FILE **Root)
 
EFI_STATUS FileOpen (IN EFI_FILE *This, OUT EFI_FILE **NewHandle, IN CHAR16 *FileName, IN UINT64 OpenMode, IN UINT64 Attributes)
 
EFI_STATUS FileClose (IN EFI_FILE *This)
 
EFI_STATUS FileDelete (IN EFI_FILE *This)
 
EFI_STATUS FileRead (IN EFI_FILE *This, IN OUT UINTN *BufferSize, OUT VOID *Buffer)
 
EFI_STATUS FileWrite (IN EFI_FILE *This, IN OUT UINTN *BufferSize, IN VOID *Buffer)
 
EFI_STATUS FileGetPosition (IN EFI_FILE *File, OUT UINT64 *Position)
 
EFI_STATUS FileSetPosition (IN EFI_FILE *File, IN UINT64 Position)
 
EFI_STATUS FileGetInfo (IN EFI_FILE *This, IN EFI_GUID *InformationType, IN OUT UINTN *BufferSize, OUT VOID *Buffer)
 
EFI_STATUS FileSetInfo (IN EFI_FILE *This, IN EFI_GUID *InformationType, IN UINTN BufferSize, IN VOID *Buffer)
 
EFI_STATUS FileFlush (IN EFI_FILE *File)
 

Detailed Description

Support a Semi Host file system over a debuggers JTAG

Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file SemihostFs.h.

Function Documentation

◆ FileClose()

EFI_STATUS FileClose ( IN EFI_FILE This)

Close a specified file handle.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle to close.
Return values
EFI_SUCCESSThe file was closed.
EFI_INVALID_PARAMETERThe parameter "This" is NULL.

Definition at line 407 of file SemihostFs.c.

◆ FileDelete()

EFI_STATUS FileDelete ( IN EFI_FILE This)

Close and delete a file.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle to delete.
Return values
EFI_SUCCESSThe file was closed and deleted.
EFI_WARN_DELETE_FAILUREThe handle was closed, but the file was not deleted.
EFI_INVALID_PARAMETERThe parameter "This" is NULL.

Definition at line 450 of file SemihostFs.c.

◆ FileFlush()

EFI_STATUS FileFlush ( IN EFI_FILE File)

Definition at line 1181 of file SemihostFs.c.

◆ FileGetInfo()

EFI_STATUS FileGetInfo ( IN EFI_FILE This,
IN EFI_GUID InformationType,
IN OUT UINTN BufferSize,
OUT VOID *  Buffer 
)

Return information about a file or a file system.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle the requested information is for.
[in]InformationTypeThe type identifier for the information being requested : EFI_FILE_INFO_ID or EFI_FILE_SYSTEM_INFO_ID or EFI_FILE_SYSTEM_VOLUME_LABEL_ID
[in,out]BufferSizeThe size, in bytes, of Buffer.
[out]BufferA pointer to the data buffer to return. The type of the data inside the buffer is indicated by InformationType.
Return values
EFI_SUCCESSThe information was returned.
EFI_UNSUPPORTEDThe InformationType is not known.
EFI_BUFFER_TOO_SMALLThe BufferSize is too small to return the information. BufferSize has been updated with the size needed to complete the request.
EFI_INVALID_PARAMETERThe parameter "This" or the parameter "Buffer" is NULL.

Return information about a file or a file system.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle the requested information is for.
[in]InformationTypeThe type identifier for the information being requested : EFI_FILE_INFO_ID or EFI_FILE_SYSTEM_INFO_ID or EFI_FILE_SYSTEM_VOLUME_LABEL_ID
[in,out]BufferSizeThe size, in bytes, of Buffer.
[out]BufferA pointer to the data buffer to return. The type of the data inside the buffer is indicated by InformationType.
Return values
EFI_SUCCESSThe information was returned.
EFI_UNSUPPORTEDThe InformationType is not known.
EFI_BUFFER_TOO_SMALLThe BufferSize is too small to return the information. BufferSize has been updated with the size needed to complete the request.
EFI_INVALID_PARAMETERThe parameter "This" or "InformationType" or "BufferSize" is NULL or "Buffer" is NULL and "*Buffersize" is greater than 0.

Definition at line 890 of file SemihostFs.c.

◆ FileGetPosition()

EFI_STATUS FileGetPosition ( IN EFI_FILE This,
OUT UINT64 *  Position 
)

Return a file's current position.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle to get the current position on.
[out]PositionThe address to return the file's current position value.
Return values
EFI_SUCCESSThe position was returned.
EFI_INVALID_PARAMETERPosition is a NULL pointer.

Return a file's current position.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle to get the current position on.
[out]PositionThe address to return the file's current position value.
Return values
EFI_SUCCESSThe position was returned.
EFI_INVALID_PARAMETERThe parameter "This" or "Position" is NULL.

Definition at line 682 of file SemihostFs.c.

◆ FileOpen()

EFI_STATUS FileOpen ( IN EFI_FILE This,
OUT EFI_FILE **  NewHandle,
IN CHAR16 *  FileName,
IN UINT64  OpenMode,
IN UINT64  Attributes 
)

Open a file on the host system by means of the semihosting interface.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle to source location.
[out]NewHandleA pointer to the location to return the opened handle for the new file.
[in]FileNameThe Null-terminated string of the name of the file to be opened.
[in]OpenModeThe mode to open the file : Read or Read/Write or Read/Write/Create
[in]AttributesOnly valid for EFI_FILE_MODE_CREATE, in which case these are the attribute bits for the newly created file. The mnemonics of the attribute bits are : EFI_FILE_READ_ONLY, EFI_FILE_HIDDEN, EFI_FILE_SYSTEM, EFI_FILE_RESERVED, EFI_FILE_DIRECTORY and EFI_FILE_ARCHIVE.
Return values
EFI_SUCCESSThe file was open.
EFI_NOT_FOUNDThe specified file could not be found.
EFI_DEVICE_ERRORThe last issued semi-hosting operation failed.
EFI_WRITE_PROTECTEDAttempt to create a directory. This is not possible with the semi-hosting interface.
EFI_OUT_OF_RESOURCESNot enough resources were available to open the file.
EFI_INVALID_PARAMETERAt least one of the parameters is invalid.

Definition at line 174 of file SemihostFs.c.

◆ FileRead()

EFI_STATUS FileRead ( IN EFI_FILE This,
IN OUT UINTN BufferSize,
OUT VOID *  Buffer 
)

Read data from an open file.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle to read data from.
[in,out]BufferSizeOn input, the size of the Buffer. On output, the amount of data returned in Buffer. In both cases, the size is measured in bytes.
[out]BufferThe buffer into which the data is read.
Return values
EFI_SUCCESSThe data was read.
EFI_DEVICE_ERROROn entry, the current file position is beyond the end of the file, or the semi-hosting interface reported an error while performing the read operation.
EFI_INVALID_PARAMETERThe parameter "This" or the parameter "Buffer" is NULL.

Read data from an open file.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle to read data from.
[in,out]BufferSizeOn input, the size of the Buffer. On output, the amount of data returned in Buffer. In both cases, the size is measured in bytes.
[out]BufferThe buffer into which the data is read.
Return values
EFI_SUCCESSThe data was read.
EFI_DEVICE_ERROROn entry, the current file position is beyond the end of the file, or the semi-hosting interface reported an error while performing the read operation.
EFI_INVALID_PARAMETERAt least one of the three input pointers is NULL.

Definition at line 507 of file SemihostFs.c.

◆ FileSetInfo()

EFI_STATUS FileSetInfo ( IN EFI_FILE This,
IN EFI_GUID InformationType,
IN UINTN  BufferSize,
IN VOID *  Buffer 
)

Set information about a file or a file system.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle the information is for.
[in]InformationTypeThe type identifier for the information being set : EFI_FILE_INFO_ID or EFI_FILE_SYSTEM_INFO_ID or EFI_FILE_SYSTEM_VOLUME_LABEL_ID
[in]BufferSizeThe size, in bytes, of Buffer.
[in]BufferA pointer to the data buffer to write. The type of the data inside the buffer is indicated by InformationType.
Return values
EFI_SUCCESSThe information was set.
EFI_UNSUPPORTEDThe InformationType is not known.
EFI_DEVICE_ERRORThe last issued semi-hosting operation failed.
EFI_ACCESS_DENIEDAn attempt is being made to change the EFI_FILE_DIRECTORY Attribute.
EFI_ACCESS_DENIEDInformationType is EFI_FILE_INFO_ID and the file is a read-only file or has been opened in read-only mode and an attempt is being made to modify a field other than Attribute.
EFI_ACCESS_DENIEDAn attempt is made to change the name of a file to a file that is already present.
EFI_WRITE_PROTECTEDAn attempt is being made to modify a read-only attribute.
EFI_BAD_BUFFER_SIZEThe size of the buffer is lower than that indicated by the data inside the buffer.
EFI_OUT_OF_RESOURCESAn allocation needed to process the request failed.
EFI_INVALID_PARAMETERAt least one of the parameters is invalid.

Definition at line 1118 of file SemihostFs.c.

◆ FileSetPosition()

EFI_STATUS FileSetPosition ( IN EFI_FILE This,
IN UINT64  Position 
)

Set a file's current position.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle to set the requested position on.
[in]PositionThe byte position from the start of the file to set.
Return values
EFI_SUCCESSThe position was set.
EFI_DEVICE_ERRORThe semi-hosting positioning operation failed.
EFI_UNSUPPORTEDThe seek request for nonzero is not valid on open directories.

Set a file's current position.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle to set the requested position on.
[in]PositionThe byte position from the start of the file to set.
Return values
EFI_SUCCESSThe position was set.
EFI_DEVICE_ERRORThe semi-hosting positioning operation failed.
EFI_UNSUPPORTEDThe seek request for nonzero is not valid on open directories.
EFI_INVALID_PARAMETERThe parameter "This" is NULL.

Definition at line 715 of file SemihostFs.c.

◆ FileWrite()

EFI_STATUS FileWrite ( IN EFI_FILE This,
IN OUT UINTN BufferSize,
IN VOID *  Buffer 
)

Write data to an open file.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle to write data to.
[in,out]BufferSizeOn input, the size of the Buffer. On output, the size of the data actually written. In both cases, the size is measured in bytes.
[in]BufferThe buffer of data to write.
Return values
EFI_SUCCESSThe data was written.
EFI_ACCESS_DENIEDAttempt to write into a read only file or in a file opened in read only mode.
EFI_DEVICE_ERRORThe last issued semi-hosting operation failed.
EFI_INVALID_PARAMETERThe parameter "This" or the parameter "Buffer" is NULL.

Write data to an open file.

Parameters
[in]ThisA pointer to the EFI_FILE_PROTOCOL instance that is the file handle to write data to.
[in,out]BufferSizeOn input, the size of the Buffer. On output, the size of the data actually written. In both cases, the size is measured in bytes.
[in]BufferThe buffer of data to write.
Return values
EFI_SUCCESSThe data was written.
EFI_ACCESS_DENIEDAttempt to write into a read only file or in a file opened in read only mode.
EFI_DEVICE_ERRORThe last issued semi-hosting operation failed.
EFI_INVALID_PARAMETERAt least one of the three input pointers is NULL.

Definition at line 610 of file SemihostFs.c.

◆ VolumeOpen()

EFI_STATUS VolumeOpen ( IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL This,
OUT EFI_FILE **  Root 
)

Definition at line 121 of file SemihostFs.c.