}\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
+ SEMIHOST_FILE_TMPNAME_BLOCK TmpNameBlock;\r
+ INT32 Result;\r
+\r
+ if (Buffer == NULL) {\r
+ return RETURN_INVALID_PARAMETER;\r
+ }\r
+\r
+ TmpNameBlock.Buffer = Buffer;\r
+ TmpNameBlock.Identifier = Identifier;\r
+ TmpNameBlock.Length = Length;\r
+\r
+ Result = Semihost_SYS_TMPNAME (&TmpNameBlock);\r
+\r
+ if (Result != 0) {\r
+ return RETURN_ABORTED;\r
+ } else {\r
+ return RETURN_SUCCESS;\r
+ }\r
+}\r
+\r
RETURN_STATUS\r
SemihostFileRemove (\r
IN CHAR8 *FileName\r
}\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
+ SEMIHOST_FILE_RENAME_BLOCK RenameBlock;\r
+ INT32 Result;\r
+\r
+ if ((FileName == NULL) || (NewFileName == NULL)) {\r
+ return RETURN_INVALID_PARAMETER;\r
+ }\r
+\r
+ RenameBlock.FileName = FileName;\r
+ RenameBlock.FileNameLength = AsciiStrLen (FileName);\r
+ RenameBlock.NewFileName = NewFileName;\r
+ RenameBlock.NewFileNameLength = AsciiStrLen (NewFileName);\r
+\r
+ Result = Semihost_SYS_RENAME (&RenameBlock);\r
+\r
+ if (Result != 0) {\r
+ return RETURN_ABORTED;\r
+ } else {\r
+ return RETURN_SUCCESS;\r
+ }\r
+}\r
+\r
CHAR8\r
SemihostReadCharacter (\r
VOID\r
{\r
Semihost_SYS_WRITE0(String);\r
}\r
- \r
+\r
UINT32\r
SemihostSystem (\r
IN CHAR8 *CommandLine\r