alder_lake_bios/Insyde/InsydeSetupPkg/Drivers/H2OFormBrowserDxe/Value.c

225 lines
5.5 KiB
C

/** @file
Define function of value operation .
;******************************************************************************
;* Copyright (c) 2013 - 2015, Insyde Software Corp. All Rights Reserved.
;*
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
;* transmit, broadcast, present, recite, release, license or otherwise exploit
;* any part of this publication in any form, by any means, without the prior
;* written permission of Insyde Software Corporation.
;*
;******************************************************************************
*/
#include "InternalH2OFormBrowser.h"
/**
Create value in boolean type.
@param [in] TargetHiiValue HII value which set type as BOOLEAN
@param [in] ValueBoolean Value for boolean type
@retval EFI_SUCCESS The function complete successfully.
**/
EFI_STATUS
CreateValueAsBoolean (
IN EFI_HII_VALUE *TargetHiiValue,
IN BOOLEAN ValueBoolean
)
{
if (TargetHiiValue == NULL) {
return EFI_INVALID_PARAMETER;
}
ZeroMem (TargetHiiValue, sizeof (EFI_HII_VALUE));
TargetHiiValue->Type = EFI_IFR_TYPE_BOOLEAN;
TargetHiiValue->BufferLen = sizeof (BOOLEAN);
TargetHiiValue->Value.b = ValueBoolean;
return EFI_SUCCESS;
}
/**
Create value in UINT64 type.
@param [in] TargetHiiValue HII value which set type as UINT64
@param [in] ValueUint64 Value for UINT64 type
@retval EFI_SUCCESS The function complete successfully.
**/
EFI_STATUS
CreateValueAsUint64 (
IN EFI_HII_VALUE *TargetHiiValue,
IN UINT64 ValueUint64
)
{
if (TargetHiiValue == NULL) {
return EFI_INVALID_PARAMETER;
}
ZeroMem (TargetHiiValue, sizeof (EFI_HII_VALUE));
TargetHiiValue->Type = EFI_IFR_TYPE_NUM_SIZE_64;
TargetHiiValue->BufferLen = sizeof (UINT64);
TargetHiiValue->Value.u64 = ValueUint64;
return EFI_SUCCESS;
}
/**
Create value in string type.
@param [in] TargetHiiValue HII value which set type as string
@param [in] BufferLen String buffer length
@param [in] Buffer String buffer
@retval EFI_SUCCESS The function complete successfully.
**/
EFI_STATUS
CreateValueAsString (
IN EFI_HII_VALUE *TargetHiiValue,
IN UINT16 BufferLen,
IN UINT8 *Buffer
)
{
if (TargetHiiValue == NULL) {
return EFI_INVALID_PARAMETER;
}
ZeroMem (TargetHiiValue, sizeof (EFI_HII_VALUE));
TargetHiiValue->Type = EFI_IFR_TYPE_STRING;
TargetHiiValue->BufferLen = BufferLen;
TargetHiiValue->Buffer = Buffer;
return EFI_SUCCESS;
}
/**
Copy HII value.
@param [in] DestinationHiiValue Destination HII value
@param [in] SourceHiiValue Source HII value
**/
VOID
CopyHiiValue (
IN EFI_HII_VALUE *DestinationHiiValue,
IN EFI_HII_VALUE *SourceHiiValue
)
{
CopyMem (DestinationHiiValue, SourceHiiValue, sizeof (EFI_HII_VALUE));
}
/**
Copy value.
@param [in] DestinationValue Destination value
@param [in] SourceValue Source value
**/
VOID
CopyValue (
IN EFI_HII_VALUE *DestinationValue,
IN EFI_HII_VALUE *SourceValue
)
{
CopyMem (&DestinationValue->Value, &SourceValue->Value, sizeof (EFI_IFR_TYPE_VALUE));
}
/**
Set value as boolean.
@param [in] SourceHiiValue Source HII value
@param [in] ValueBoolean Set boolaean value
@retval EFI_SUCCESS The function complete successfully.
**/
EFI_STATUS
SetValueBool(
IN EFI_HII_VALUE *SourceHiiValue,
IN BOOLEAN ValueBoolean
)
{
if (SourceHiiValue == NULL) {
return EFI_INVALID_PARAMETER;
}
SourceHiiValue->Value.b = ValueBoolean;
return EFI_SUCCESS;
}
/**
Dump HII value.
@param [in] DumpHiiValue HII value which dump
@retval EFI_SUCCESS The function complete successfully.
**/
EFI_STATUS
DumpValue(
IN EFI_HII_VALUE *DumpHiiValue
)
{
CHAR16 *String;
String = NULL;
if (DumpHiiValue == NULL) {
return EFI_INVALID_PARAMETER;
}
switch (DumpHiiValue->Type) {
case EFI_IFR_TYPE_NUM_SIZE_8:
DEBUG ((EFI_D_INFO, "Number is %d (8-bit unsigned integer) \n", DumpHiiValue->Value.u8));
break;
case EFI_IFR_TYPE_NUM_SIZE_16:
DEBUG ((EFI_D_INFO, "Number is %d (16-bit unsigned integer) \n", DumpHiiValue->Value.u16));
break;
case EFI_IFR_TYPE_NUM_SIZE_32:
DEBUG ((EFI_D_INFO, "Number is %d (32-bit unsigned integer) \n", DumpHiiValue->Value.u32));
break;
case EFI_IFR_TYPE_NUM_SIZE_64:
DEBUG ((EFI_D_INFO, "Number is %d (32-bit unsigned integer) \n", DumpHiiValue->Value.u64));
break;
case EFI_IFR_TYPE_BOOLEAN:
if (DumpHiiValue->Value.b == TRUE) {
DEBUG ((EFI_D_INFO, "Boolean is TRUE\n"));
} else {
DEBUG ((EFI_D_INFO, "Boolean is FALSE\n"));
}
break;
case EFI_IFR_TYPE_TIME:
DEBUG ((EFI_D_INFO, "Hour is %d.\n", DumpHiiValue->Value.time.Hour));
DEBUG ((EFI_D_INFO, "Minute is %d.\n", DumpHiiValue->Value.time.Minute));
DEBUG ((EFI_D_INFO, "Second is %d.\n", DumpHiiValue->Value.time.Second));
break;
case EFI_IFR_TYPE_DATE:
DEBUG ((EFI_D_INFO, "Year is %d\n", DumpHiiValue->Value.date.Year));
DEBUG ((EFI_D_INFO, "Month is %d\n", DumpHiiValue->Value.date.Month));
DEBUG ((EFI_D_INFO, "Day is %d\n", DumpHiiValue->Value.date.Day));
break;
case EFI_IFR_TYPE_STRING:
String = GetString (DumpHiiValue->Value.string, mHiiHandle);
DEBUG ((EFI_D_INFO, "String is %s.\n", String));
break;
case EFI_IFR_TYPE_REF:
DEBUG ((EFI_D_INFO, "Type is EFI_IFR_TYPE_REF.\n"));
break;
default:
break;
}
return EFI_SUCCESS;
}