]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.h
ShellPkg/Application: Remove unnecessary EFIAPI
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / Edit / FileBuffer.h
1 /** @file
2 Declares filebuffer interface functions.
3
4 Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved. <BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #ifndef _LIB_FILE_BUFFER_H_
16 #define _LIB_FILE_BUFFER_H_
17
18 #include "TextEditorTypes.h"
19
20 /**
21 Initialization function for FileBuffer.
22
23 @param EFI_SUCCESS The initialization was successful.
24 @param EFI_LOAD_ERROR A default name could not be created.
25 @param EFI_OUT_OF_RESOURCES A memory allocation failed.
26 **/
27 EFI_STATUS
28 EFIAPI
29 FileBufferInit (
30 VOID
31 );
32
33 /**
34 Cleanup function for FileBuffer.
35
36 @retval EFI_SUCCESS The cleanup was successful.
37 **/
38 EFI_STATUS
39 EFIAPI
40 FileBufferCleanup (
41 VOID
42 );
43
44 /**
45 Refresh the screen with whats in the buffer.
46
47 @retval EFI_SUCCESS The refresh was successful.
48 @retval EFI_LOAD_ERROR There was an error finding what to write.
49 **/
50 EFI_STATUS
51 EFIAPI
52 FileBufferRefresh (
53 VOID
54 );
55
56 /**
57 Dispatch input to different handler
58 @param[in] Key The input key. One of:
59 ASCII KEY
60 Backspace/Delete
61 Return
62 Direction key: up/down/left/right/pgup/pgdn
63 Home/End
64 INS
65
66 @retval EFI_SUCCESS The dispatch was done successfully.
67 @retval EFI_LOAD_ERROR The dispatch was not successful.
68 @retval EFI_OUT_OF_RESOURCES A memory allocation failed.
69 **/
70 EFI_STATUS
71 EFIAPI
72 FileBufferHandleInput (
73 IN CONST EFI_INPUT_KEY * Key
74 );
75
76 /**
77 Backup function for FileBuffer. Only backup the following items:
78 Mouse/Cursor position
79 File Name, Type, ReadOnly, Modified
80 Insert Mode
81
82 This is for making the file buffer refresh as few as possible.
83
84 @retval EFI_SUCCESS The backup operation was successful.
85 **/
86 EFI_STATUS
87 EFIAPI
88 FileBufferBackup (
89 VOID
90 );
91
92 /**
93 Set the cursor position according to FileBuffer.DisplayPosition.
94
95 @retval EFI_SUCCESS The operation was successful.
96 **/
97 EFI_STATUS
98 EFIAPI
99 FileBufferRestorePosition (
100 VOID
101 );
102
103 /**
104 Set FileName field in FileBuffer.
105
106 @param Str The file name to set.
107
108 @retval EFI_SUCCESS The filename was successfully set.
109 @retval EFI_OUT_OF_RESOURCES A memory allocation failed.
110 @retval EFI_INVALID_PARAMETER Str is not a valid filename.
111 **/
112 EFI_STATUS
113 EFIAPI
114 FileBufferSetFileName (
115 IN CONST CHAR16 *Str
116 );
117
118 /**
119 Read a file from disk into the FileBuffer.
120
121 @param[in] FileName The filename to read.
122 @param[in] Recover TRUE if is for recover mode, no information printouts.
123
124 @retval EFI_SUCCESS The load was successful.
125 @retval EFI_LOAD_ERROR The load failed.
126 @retval EFI_OUT_OF_RESOURCES A memory allocation failed.
127 @retval EFI_INVALID_PARAMETER FileName is a directory.
128 **/
129 EFI_STATUS
130 EFIAPI
131 FileBufferRead (
132 IN CONST CHAR16 *FileName,
133 IN CONST BOOLEAN Recover
134 );
135
136 /**
137 Save lines in FileBuffer to disk
138
139 @param[in] FileName The file name for writing.
140
141 @retval EFI_SUCCESS Data was written.
142 @retval EFI_LOAD_ERROR
143 @retval EFI_OUT_OF_RESOURCES There were not enough resources to write the file.
144 **/
145 EFI_STATUS
146 EFIAPI
147 FileBufferSave (
148 CONST CHAR16 *FileName
149 );
150
151 /**
152 According to cursor's file position, adjust screen display
153
154 @param[in] NewFilePosRow The row of file position ( start from 1 ).
155 @param[in] NewFilePosCol The column of file position ( start from 1 ).
156 **/
157 VOID
158 EFIAPI
159 FileBufferMovePosition (
160 IN CONST UINTN NewFilePosRow,
161 IN CONST UINTN NewFilePosCol
162 );
163
164 /**
165 Cut current line out and return a pointer to it.
166
167 @param[out] CutLine Upon a successful return pointer to the pointer to
168 the allocated cut line.
169
170 @retval EFI_SUCCESS The cut was successful.
171 @retval EFI_NOT_FOUND There was no selection to cut.
172 @retval EFI_OUT_OF_RESOURCES A memory allocation failed.
173 **/
174 EFI_STATUS
175 EFIAPI
176 FileBufferCutLine (
177 OUT EFI_EDITOR_LINE **CutLine
178 );
179
180 /**
181 Paste a line into line list.
182
183 @retval EFI_SUCCESS The paste was successful.
184 @retval EFI_OUT_OF_RESOURCES A memory allocation failed.
185 **/
186 EFI_STATUS
187 EFIAPI
188 FileBufferPasteLine (
189 VOID
190 );
191
192 /**
193 Search string from current position on in file
194
195 @param[in] Str The search string.
196 @param[in] Offset The offset from current position.
197
198 @retval EFI_SUCCESS The operation was successful.
199 @retval EFI_NOT_FOUND The string Str was not found.
200 **/
201 EFI_STATUS
202 EFIAPI
203 FileBufferSearch (
204 IN CONST CHAR16 *Str,
205 IN CONST UINTN Offset
206 );
207
208 /**
209 Replace SearchLen characters from current position on with Replace.
210
211 This will modify the current buffer at the current position.
212
213 @param[in] Replace The string to replace.
214 @param[in] SearchLen Search string's length.
215
216 @retval EFI_SUCCESS The operation was successful.
217 @retval EFI_OUT_OF_RESOURCES A memory allocation failed.
218 **/
219 EFI_STATUS
220 EFIAPI
221 FileBufferReplace (
222 IN CONST CHAR16 *Replace,
223 IN CONST UINTN SearchLen
224 );
225
226 /**
227 Search and replace operation.
228
229 @param[in] SearchStr The string to search for.
230 @param[in] ReplaceStr The string to replace with.
231 @param[in] Offset The column to start at.
232 **/
233 EFI_STATUS
234 EFIAPI
235 FileBufferReplaceAll (
236 IN CHAR16 *SearchStr,
237 IN CHAR16 *ReplaceStr,
238 IN UINTN Offset
239 );
240
241 /**
242 Move the mouse cursor position.
243
244 @param[in] TextX The new x-coordinate.
245 @param[in] TextY The new y-coordinate.
246 **/
247 VOID
248 EFIAPI
249 FileBufferAdjustMousePosition (
250 IN CONST INT32 TextX,
251 IN CONST INT32 TextY
252 );
253
254 /**
255 Set the modified state to TRUE.
256 **/
257 VOID
258 EFIAPI
259 FileBufferSetModified (
260 VOID
261 );
262
263 #endif