audk/MdeModulePkg/Include/Protocol/Print.h

100 lines
2.2 KiB
C

/*++
Copyright (c) 2006 - 2007, Intel Corporation
All rights reserved. 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.
Module Name:
Print.h
Abstract:
This file defines the Print protocol
--*/
#ifndef __PPRINT_H__
#define __PPRINT_H__
#define EFI_PRINT_PROTOCOL_GUID \
{ 0x5bcc3dbc, 0x8c57, 0x450a, { 0xbb, 0xc, 0xa1, 0xc0, 0xbd, 0xde, 0x48, 0xc } }
//
// Forward reference for pure ANSI compatability
//
typedef struct _EFI_PRINT_PROTOCOL EFI_PRINT_PROTOCOL;
typedef
UINTN
(EFIAPI *UNI_VSPRINT) (
OUT CHAR16 *StartOfBuffer,
IN UINTN BufferSize,
IN CONST CHAR16 *FormatString,
IN VA_LIST Marker
);
typedef
UINTN
(EFIAPI *UNI_VSPRINT_ASCII) (
OUT CHAR16 *StartOfBuffer,
IN UINTN BufferSize,
IN CONST CHAR8 *FormatString,
IN VA_LIST Marker
);
typedef
UINTN
(EFIAPI *VALUE_TO_UNISTRING) (
IN OUT CHAR16 *Buffer,
IN UINTN Flags,
IN INT64 Value,
IN UINTN Width
);
typedef
UINTN
(EFIAPI *ASCII_VSPRINT) (
OUT CHAR8 *StartOfBuffer,
IN UINTN BufferSize,
IN CONST CHAR8 *FormatString,
IN VA_LIST Marker
);
typedef
UINTN
(EFIAPI *ASCII_VSPRINT_UNI) (
OUT CHAR8 *StartOfBuffer,
IN UINTN BufferSize,
IN CONST CHAR16 *FormatString,
IN VA_LIST Marker
);
typedef
UINTN
(EFIAPI *VALUE_TO_ASCIISTRING) (
IN OUT CHAR8 *Buffer,
IN UINTN Flags,
IN INT64 Value,
IN UINTN Width
);
struct _EFI_PRINT_PROTOCOL {
UNI_VSPRINT VSPrint;
UNI_VSPRINT_ASCII UniVSPrintAscii;
VALUE_TO_UNISTRING UniValueToString;
ASCII_VSPRINT AsciiVSPrint;
ASCII_VSPRINT_UNI AsciiVSPrintUni;
VALUE_TO_ASCIISTRING AsciiValueToString;
};
extern EFI_GUID gEfiPrintProtocolGuid;
#endif