2 Library Routines to create IFR independent of string data - assume tokens already exist
3 Primarily to be used for exporting op-codes at a label in pre-defined forms.
5 Copyright (c) 2007 - 2008, Intel Corporation. <BR>
6 All rights reserved. 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
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.
16 #include "LibraryInternal.h"
18 STATIC EFI_GUID mIfrVendorGuid
= EFI_IFR_TIANO_GUID
;
23 IN EFI_STRING_ID Title
,
26 IN OUT EFI_HII_UPDATE_DATA
*Data
29 EFI_IFR_GUID_BANNER Banner
;
32 ASSERT (Data
!= NULL
&& Data
->Data
!= NULL
);
34 if (Data
->Offset
+ sizeof (EFI_IFR_GUID_BANNER
) > Data
->BufferSize
) {
35 return EFI_BUFFER_TOO_SMALL
;
38 Banner
.Header
.OpCode
= EFI_IFR_GUID_OP
;
39 Banner
.Header
.Length
= sizeof (EFI_IFR_GUID_BANNER
);
40 Banner
.Header
.Scope
= 0;
41 CopyMem (&Banner
.Guid
, &mIfrVendorGuid
, sizeof (EFI_IFR_GUID
));
42 Banner
.ExtendOpCode
= EFI_IFR_EXTEND_OP_BANNER
;
44 Banner
.LineNumber
= LineNumber
;
45 Banner
.Alignment
= Alignment
;
47 LocalBuffer
= (UINT8
*) Data
->Data
+ Data
->Offset
;
48 CopyMem (LocalBuffer
, &Banner
, sizeof (EFI_IFR_GUID_BANNER
));
49 Data
->Offset
+= sizeof (EFI_IFR_GUID_BANNER
);