Clipboard.c revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
/** @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;
}