225 lines
5.5 KiB
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;
|
|
}
|
|
|