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