/** @file Functions to deal with Clip Board 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. **/ #include "HexEditor.h" typedef struct { UINT8 *Buffer; UINTN Size; } HEFI_EDITOR_CLIPBOARD; HEFI_EDITOR_CLIPBOARD HClipBoard; // // for basic initialization of HClipBoard // HEFI_EDITOR_CLIPBOARD HClipBoardConst = { NULL, 0 }; /** Initialization function for HDiskImage. @param[in] EFI_SUCCESS The operation was successful. @param[in] EFI_LOAD_ERROR A load error occured. **/ EFI_STATUS HClipBoardInit ( VOID ) { // // basiclly initialize the HDiskImage // CopyMem (&HClipBoard, &HClipBoardConst, sizeof (HClipBoard)); return EFI_SUCCESS; } /** Initialization function for HDiskImage. @param[in] EFI_SUCCESS The operation was successful. @param[in] EFI_LOAD_ERROR A load error occured. **/ EFI_STATUS HClipBoardCleanup ( VOID ) { SHELL_FREE_NON_NULL (HClipBoard.Buffer); return EFI_SUCCESS; } /** Set a buffer into the clipboard. @param[in] Buffer The buffer to add to the clipboard. @param[in] Size The size of Buffer in bytes. @retval EFI_SUCCESS The operation was successful. **/ EFI_STATUS HClipBoardSet ( IN UINT8 *Buffer, IN UINTN Size ) { // // free the old clipboard buffer // and set new clipboard buffer // SHELL_FREE_NON_NULL (HClipBoard.Buffer); HClipBoard.Buffer = Buffer; HClipBoard.Size = Size; return EFI_SUCCESS; } /** Get a buffer from the clipboard. @param[out] Buffer The pointer to the buffer to add to the clipboard. @return the size of the buffer. **/ UINTN HClipBoardGet ( OUT UINT8 **Buffer ) { // // return the clipboard buffer // *Buffer = HClipBoard.Buffer; return HClipBoard.Size; }