add Edit and HexEdit commands.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11436 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
263
ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.h
Normal file
263
ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.h
Normal file
@ -0,0 +1,263 @@
|
||||
/** @file
|
||||
Declares filebuffer interface functions.
|
||||
|
||||
Copyright (c) 2005 - 2011, Intel Corporation. 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 _LIB_FILE_BUFFER_H_
|
||||
#define _LIB_FILE_BUFFER_H_
|
||||
|
||||
#include "TextEditorTypes.h"
|
||||
|
||||
/**
|
||||
Initialization function for FileBuffer.
|
||||
|
||||
@param EFI_SUCCESS The initialization was successful.
|
||||
@param EFI_LOAD_ERROR A default name could not be created.
|
||||
@param EFI_OUT_OF_RESOURCES A memory allocation failed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferInit (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Cleanup function for FileBuffer.
|
||||
|
||||
@retval EFI_SUCCESS The cleanup was successful.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferCleanup (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Refresh the screen with whats in the buffer.
|
||||
|
||||
@retval EFI_SUCCESS The refresh was successful.
|
||||
@retval EFI_LOAD_ERROR There was an error finding what to write.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferRefresh (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Dispatch input to different handler
|
||||
@param[in] Key The input key. One of:
|
||||
ASCII KEY
|
||||
Backspace/Delete
|
||||
Return
|
||||
Direction key: up/down/left/right/pgup/pgdn
|
||||
Home/End
|
||||
INS
|
||||
|
||||
@retval EFI_SUCCESS The dispatch was done successfully.
|
||||
@retval EFI_LOAD_ERROR The dispatch was not successful.
|
||||
@retval EFI_OUT_OF_RESOURCES A memory allocation failed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferHandleInput (
|
||||
IN CONST EFI_INPUT_KEY * Key
|
||||
);
|
||||
|
||||
/**
|
||||
Backup function for FileBuffer. Only backup the following items:
|
||||
Mouse/Cursor position
|
||||
File Name, Type, ReadOnly, Modified
|
||||
Insert Mode
|
||||
|
||||
This is for making the file buffer refresh as few as possible.
|
||||
|
||||
@retval EFI_SUCCESS The backup operation was successful.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferBackup (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Set the cursor position according to FileBuffer.DisplayPosition.
|
||||
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferRestorePosition (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Set FileName field in FileBuffer.
|
||||
|
||||
@param Str The file name to set.
|
||||
|
||||
@retval EFI_SUCCESS The filename was successfully set.
|
||||
@retval EFI_OUT_OF_RESOURCES A memory allocation failed.
|
||||
@retval EFI_INVALID_PARAMETER Str is not a valid filename.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferSetFileName (
|
||||
IN CONST CHAR16 *Str
|
||||
);
|
||||
|
||||
/**
|
||||
Read a file from disk into the FileBuffer.
|
||||
|
||||
@param[in] FileName The filename to read.
|
||||
@param[in] Recover TRUE if is for recover mode, no information printouts.
|
||||
|
||||
@retval EFI_SUCCESS The load was successful.
|
||||
@retval EFI_LOAD_ERROR The load failed.
|
||||
@retval EFI_OUT_OF_RESOURCES A memory allocation failed.
|
||||
@retval EFI_INVALID_PARAMETER FileName is a directory.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferRead (
|
||||
IN CONST CHAR16 *FileName,
|
||||
IN CONST BOOLEAN Recover
|
||||
);
|
||||
|
||||
/**
|
||||
Save lines in FileBuffer to disk
|
||||
|
||||
@param[in] FileName The file name for writing.
|
||||
|
||||
@retval EFI_SUCCESS Data was written.
|
||||
@retval EFI_LOAD_ERROR
|
||||
@retval EFI_OUT_OF_RESOURCES There were not enough resources to write the file.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferSave (
|
||||
CONST CHAR16 *FileName
|
||||
);
|
||||
|
||||
/**
|
||||
According to cursor's file position, adjust screen display
|
||||
|
||||
@param[in] NewFilePosRow The row of file position ( start from 1 ).
|
||||
@param[in] NewFilePosCol The column of file position ( start from 1 ).
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
FileBufferMovePosition (
|
||||
IN CONST UINTN NewFilePosRow,
|
||||
IN CONST UINTN NewFilePosCol
|
||||
);
|
||||
|
||||
/**
|
||||
Cut current line out and return a pointer to it.
|
||||
|
||||
@param[out] CutLine Upon a successful return pointer to the pointer to
|
||||
the allocated cut line.
|
||||
|
||||
@retval EFI_SUCCESS The cut was successful.
|
||||
@retval EFI_NOT_FOUND There was no selection to cut.
|
||||
@retval EFI_OUT_OF_RESOURCES A memory allocation failed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferCutLine (
|
||||
OUT EFI_EDITOR_LINE **CutLine
|
||||
);
|
||||
|
||||
/**
|
||||
Paste a line into line list.
|
||||
|
||||
@retval EFI_SUCCESS The paste was successful.
|
||||
@retval EFI_OUT_OF_RESOURCES A memory allocation failed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferPasteLine (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Search string from current position on in file
|
||||
|
||||
@param[in] Str The search string.
|
||||
@param[in] Offset The offset from current position.
|
||||
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_NOT_FOUND The string Str was not found.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferSearch (
|
||||
IN CONST CHAR16 *Str,
|
||||
IN CONST UINTN Offset
|
||||
);
|
||||
|
||||
/**
|
||||
Replace SearchLen characters from current position on with Replace.
|
||||
|
||||
This will modify the current buffer at the current position.
|
||||
|
||||
@param[in] Replace The string to replace.
|
||||
@param[in] SearchLen Search string's length.
|
||||
|
||||
@retval EFI_SUCCESS The operation was successful.
|
||||
@retval EFI_OUT_OF_RESOURCES A memory allocation failed.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferReplace (
|
||||
IN CONST CHAR16 *Replace,
|
||||
IN CONST UINTN SearchLen
|
||||
);
|
||||
|
||||
/**
|
||||
Search and replace operation.
|
||||
|
||||
@param[in] SearchStr The string to search for.
|
||||
@param[in] ReplaceStr The string to replace with.
|
||||
@param[in] Offset The column to start at.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
FileBufferReplaceAll (
|
||||
IN CHAR16 *SearchStr,
|
||||
IN CHAR16 *ReplaceStr,
|
||||
IN UINTN Offset
|
||||
);
|
||||
|
||||
/**
|
||||
Move the mouse cursor position.
|
||||
|
||||
@param[in] TextX The new x-coordinate.
|
||||
@param[in] TextY The new y-coordinate.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
FileBufferAdjustMousePosition (
|
||||
IN CONST INT32 TextX,
|
||||
IN CONST INT32 TextY
|
||||
);
|
||||
|
||||
/**
|
||||
Set the modified state to TRUE.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
FileBufferSetModified (
|
||||
VOID
|
||||
);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user