132 lines
2.6 KiB
C
132 lines
2.6 KiB
C
/** @file
|
|
|
|
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
|
Portions copyright (c) 2011, 2012, ARM Ltd. All rights reserved.<BR>
|
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef __SEMIHOSTING_H__
|
|
#define __SEMIHOSTING_H__
|
|
|
|
/*
|
|
*
|
|
* Please refer to ARM RVDS 3.0 Compiler and Libraries Guide for more information
|
|
* about the semihosting interface.
|
|
*
|
|
*/
|
|
|
|
#define SEMIHOST_FILE_MODE_READ (0 << 2)
|
|
#define SEMIHOST_FILE_MODE_WRITE (1 << 2)
|
|
#define SEMIHOST_FILE_MODE_APPEND (2 << 2)
|
|
#define SEMIHOST_FILE_MODE_UPDATE (1 << 1)
|
|
#define SEMIHOST_FILE_MODE_BINARY (1 << 0)
|
|
#define SEMIHOST_FILE_MODE_ASCII (0 << 0)
|
|
|
|
BOOLEAN
|
|
SemihostConnectionSupported (
|
|
VOID
|
|
);
|
|
|
|
RETURN_STATUS
|
|
SemihostFileOpen (
|
|
IN CHAR8 *FileName,
|
|
IN UINT32 Mode,
|
|
OUT UINTN *FileHandle
|
|
);
|
|
|
|
RETURN_STATUS
|
|
SemihostFileSeek (
|
|
IN UINTN FileHandle,
|
|
IN UINTN Offset
|
|
);
|
|
|
|
RETURN_STATUS
|
|
SemihostFileRead (
|
|
IN UINTN FileHandle,
|
|
IN OUT UINTN *Length,
|
|
OUT VOID *Buffer
|
|
);
|
|
|
|
RETURN_STATUS
|
|
SemihostFileWrite (
|
|
IN UINTN FileHandle,
|
|
IN OUT UINTN *Length,
|
|
IN VOID *Buffer
|
|
);
|
|
|
|
RETURN_STATUS
|
|
SemihostFileClose (
|
|
IN UINTN FileHandle
|
|
);
|
|
|
|
RETURN_STATUS
|
|
SemihostFileLength (
|
|
IN UINTN FileHandle,
|
|
OUT UINTN *Length
|
|
);
|
|
|
|
/**
|
|
Get a temporary name for a file from the host running the debug agent.
|
|
|
|
@param[out] Buffer Pointer to the buffer where the temporary name has to
|
|
be stored
|
|
@param[in] Identifier File name identifier (integer in the range 0 to 255)
|
|
@param[in] Length Length of the buffer to store the temporary name
|
|
|
|
@retval RETURN_SUCCESS Temporary name returned
|
|
@retval RETURN_INVALID_PARAMETER Invalid buffer address
|
|
@retval RETURN_ABORTED Temporary name not returned
|
|
|
|
**/
|
|
RETURN_STATUS
|
|
SemihostFileTmpName(
|
|
OUT VOID *Buffer,
|
|
IN UINT8 Identifier,
|
|
IN UINTN Length
|
|
);
|
|
|
|
RETURN_STATUS
|
|
SemihostFileRemove (
|
|
IN CHAR8 *FileName
|
|
);
|
|
|
|
/**
|
|
Rename a specified file.
|
|
|
|
@param[in] FileName Name of the file to rename.
|
|
@param[in] NewFileName The new name of the file.
|
|
|
|
@retval RETURN_SUCCESS File Renamed
|
|
@retval RETURN_INVALID_PARAMETER Either the current or the new name is not specified
|
|
@retval RETURN_ABORTED Rename failed
|
|
|
|
**/
|
|
RETURN_STATUS
|
|
SemihostFileRename(
|
|
IN CHAR8 *FileName,
|
|
IN CHAR8 *NewFileName
|
|
);
|
|
|
|
CHAR8
|
|
SemihostReadCharacter (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
SemihostWriteCharacter (
|
|
IN CHAR8 Character
|
|
);
|
|
|
|
VOID
|
|
SemihostWriteString (
|
|
IN CHAR8 *String
|
|
);
|
|
|
|
UINT32
|
|
SemihostSystem (
|
|
IN CHAR8 *CommandLine
|
|
);
|
|
|
|
#endif // __SEMIHOSTING_H__
|