]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellDebug1CommandsLib/HexEdit/BufferImage.h
add comments to function declarations and definitions and updated to match coding...
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / HexEdit / BufferImage.h
1 /** @file
2 Defines BufferImage - the view of the file that is visible at any point,
3 as well as the event handlers for editing the file
4
5 Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved. <BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef _LIB_BUFFER_IMAGE_H_
17 #define _LIB_BUFFER_IMAGE_H_
18
19 #include "HexEditor.h"
20
21 /**
22 Initialization function for HBufferImage
23
24 @retval EFI_SUCCESS The operation was successful.
25 @retval EFI_LOAD_ERROR A load error occured.
26 **/
27 EFI_STATUS
28 HBufferImageInit (
29 VOID
30 );
31
32 /**
33 Cleanup function for HBufferImage
34
35 @retval EFI_SUCCESS The operation was successful.
36 **/
37 EFI_STATUS
38 HBufferImageCleanup (
39 VOID
40 );
41
42 /**
43 Refresh function for HBufferImage.
44
45 @retval EFI_SUCCESS The operation was successful.
46 @retval EFI_LOAD_ERROR A Load error occured.
47
48 **/
49 EFI_STATUS
50 HBufferImageRefresh (
51 VOID
52 );
53
54 /**
55 Dispatch input to different handler
56
57 @param[in] Key The input key:
58 the keys can be:
59 ASCII KEY
60 Backspace/Delete
61 Direction key: up/down/left/right/pgup/pgdn
62 Home/End
63 INS
64
65 @retval EFI_SUCCESS The operation was successful.
66 @retval EFI_LOAD_ERROR A load error occured.
67 @retval EFI_OUT_OF_RESOURCES A Memory allocation failed.
68 **/
69 EFI_STATUS
70 HBufferImageHandleInput (
71 IN EFI_INPUT_KEY *Key
72 );
73
74 /**
75 Backup function for HBufferImage. Only a few fields need to be backup.
76 This is for making the file buffer refresh as few as possible.
77
78 @retval EFI_SUCCESS The operation was successful.
79 **/
80 EFI_STATUS
81 HBufferImageBackup (
82 VOID
83 );
84
85 /**
86 Read an image into a buffer friom a source.
87
88 @param[in] FileName Pointer to the file name. OPTIONAL and ignored if not FileTypeFileBuffer.
89 @param[in] DiskName Pointer to the disk name. OPTIONAL and ignored if not FileTypeDiskBuffer.
90 @param[in] DiskOffset Offset into the disk. OPTIONAL and ignored if not FileTypeDiskBuffer.
91 @param[in] DiskSize Size of the disk buffer. OPTIONAL and ignored if not FileTypeDiskBuffer.
92 @param[in] MemOffset Offset into the Memory. OPTIONAL and ignored if not FileTypeMemBuffer.
93 @param[in] MemSize Size of the Memory buffer. OPTIONAL and ignored if not FileTypeMemBuffer.
94 @param[in] BufferType The type of buffer to save. IGNORED.
95 @param[in] Recover TRUE for recovermode, FALSE otherwise.
96
97 @return EFI_SUCCESS The operation was successful.
98 **/
99 EFI_STATUS
100 EFIAPI
101 HBufferImageRead (
102 IN CONST CHAR16 *FileName,
103 IN CONST CHAR16 *DiskName,
104 IN UINTN DiskOffset,
105 IN UINTN DiskSize,
106 IN UINTN MemOffset,
107 IN UINTN MemSize,
108 IN EDIT_FILE_TYPE BufferType,
109 IN BOOLEAN Recover
110 );
111
112 /**
113 Save the current image.
114
115 @param[in] FileName Pointer to the file name. OPTIONAL and ignored if not FileTypeFileBuffer.
116 @param[in] DiskName Pointer to the disk name. OPTIONAL and ignored if not FileTypeDiskBuffer.
117 @param[in] DiskOffset Offset into the disk. OPTIONAL and ignored if not FileTypeDiskBuffer.
118 @param[in] DiskSize Size of the disk buffer. OPTIONAL and ignored if not FileTypeDiskBuffer.
119 @param[in] MemOffset Offset into the Memory. OPTIONAL and ignored if not FileTypeMemBuffer.
120 @param[in] MemSize Size of the Memory buffer. OPTIONAL and ignored if not FileTypeMemBuffer.
121 @param[in] BufferType The type of buffer to save. IGNORED.
122
123 @return EFI_SUCCESS The operation was successful.
124 **/
125 EFI_STATUS
126 HBufferImageSave (
127 IN CHAR16 *FileName,
128 IN CHAR16 *DiskName,
129 IN UINTN DiskOffset,
130 IN UINTN DiskSize,
131 IN UINTN MemOffset,
132 IN UINTN MemSize,
133 IN EDIT_FILE_TYPE BufferType
134 );
135
136 /**
137 According to cursor's file position, adjust screen display.
138
139 @param[in] NewFilePosRow Row of file position ( start from 1 ).
140 @param[in] NewFilePosCol Column of file position ( start from 1 ).
141 @param[in] HighBits Cursor will on high4 bits or low4 bits.
142 **/
143 VOID
144 HBufferImageMovePosition (
145 IN UINTN NewFilePosRow,
146 IN UINTN NewFilePosCol,
147 IN BOOLEAN HighBits
148 );
149
150
151 /**
152 Create a new line and append it to the line list.
153 Fields affected:
154 NumLines
155 Lines
156
157 @retval NULL create line failed.
158 @return the line created.
159
160 **/
161 HEFI_EDITOR_LINE *
162 HBufferImageCreateLine (
163 VOID
164 );
165
166 /**
167 Free the current image.
168
169 @retval EFI_SUCCESS The operation was successful.
170 **/
171 EFI_STATUS
172 HBufferImageFree (
173 VOID
174 );
175
176 /**
177 Delete character from buffer.
178
179 @param[in] Pos Position, Pos starting from 0.
180 @param[in] Count The Count of characters to delete.
181 @param[out] DeleteBuffer The DeleteBuffer.
182
183 @retval EFI_SUCCESS Success
184 **/
185 EFI_STATUS
186 HBufferImageDeleteCharacterFromBuffer (
187 IN UINTN Pos,
188 IN UINTN Count,
189 OUT UINT8 *DeleteBuffer
190 );
191
192 /**
193 Add character to buffer, add before pos.
194
195 @param[in] Pos Position, Pos starting from 0.
196 @param[in] Count Count of characters to add.
197 @param[in] AddBuffer Add buffer.
198
199 @retval EFI_SUCCESS Success.
200 **/
201 EFI_STATUS
202 HBufferImageAddCharacterToBuffer (
203 IN UINTN Pos,
204 IN UINTN Count,
205 IN UINT8 *AddBuffer
206 );
207
208 /**
209 Change the raw buffer to a list of lines for the UI.
210
211 @param[in] Buffer The pointer to the buffer to fill.
212 @param[in] Bytes The size of the buffer in bytes.
213
214 @retval EFI_SUCCESS The operation was successful.
215 @retval EFI_OUT_OF_RESOURCES A memory allocation failed.
216 **/
217 EFI_STATUS
218 EFIAPI
219 HBufferImageBufferToList (
220 IN VOID *Buffer,
221 IN UINTN Bytes
222 );
223
224 /**
225 Change the list of lines from the UI to a raw buffer.
226
227 @param[in] Buffer The pointer to the buffer to fill.
228 @param[in] Bytes The size of the buffer in bytes.
229
230 @retval EFI_SUCCESS The operation was successful.
231 **/
232 EFI_STATUS
233 EFIAPI
234 HBufferImageListToBuffer (
235 IN VOID *Buffer,
236 IN UINTN Bytes
237 );
238
239 /**
240 Move the mouse in the image buffer.
241
242 @param[in] TextX The x-coordinate.
243 @param[in] TextY The y-coordinate.
244 **/
245 VOID
246 EFIAPI
247 HBufferImageAdjustMousePosition (
248 IN INT32 TextX,
249 IN INT32 TextY
250 );
251
252 /**
253 Function to decide if a column number is stored in the high bits.
254
255 @param[in] Column The column to examine.
256 @param[out] FCol The actual column number.
257
258 @retval TRUE The actual column was in high bits and is now in FCol.
259 @retval FALSE There was not a column number in the high bits.
260 **/
261 BOOLEAN
262 HBufferImageIsAtHighBits (
263 IN UINTN Column,
264 OUT UINTN *FCol
265 );
266
267 /**
268 Get the size of the open buffer.
269
270 @retval The size in bytes.
271 **/
272 UINTN
273 HBufferImageGetTotalSize (
274 VOID
275 );
276
277 #endif