}\r
};\r
\r
+/**\r
+ Set value of a data element in an Array by its Index.\r
+\r
+ @param Array The data array.\r
+ @param Type Type of the data in this array.\r
+ @param Index Zero based index for data in this array.\r
+ @param Value The value to be set.\r
+\r
+**/\r
+VOID\r
+SetArrayData (\r
+ IN VOID *Array,\r
+ IN UINT8 Type,\r
+ IN UINTN Index,\r
+ IN UINT64 Value\r
+ )\r
+{\r
+\r
+ ASSERT (Array != NULL);\r
+\r
+ switch (Type) {\r
+ case EFI_IFR_TYPE_NUM_SIZE_8:\r
+ *(((UINT8 *) Array) + Index) = (UINT8) Value;\r
+ break;\r
+\r
+ case EFI_IFR_TYPE_NUM_SIZE_16:\r
+ *(((UINT16 *) Array) + Index) = (UINT16) Value;\r
+ break;\r
+\r
+ case EFI_IFR_TYPE_NUM_SIZE_32:\r
+ *(((UINT32 *) Array) + Index) = (UINT32) Value;\r
+ break;\r
+\r
+ case EFI_IFR_TYPE_NUM_SIZE_64:\r
+ *(((UINT64 *) Array) + Index) = (UINT64) Value;\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+}\r
+\r
/**\r
Add empty function for event process function.\r
\r
EFI_STRING Results;\r
UINT32 ProgressErr;\r
CHAR16 *TmpStr;\r
- \r
+ UINTN Index;\r
+ UINT64 BufferValue;\r
+\r
if (((Value == NULL) && (Action != EFI_BROWSER_ACTION_FORM_OPEN) && (Action != EFI_BROWSER_ACTION_FORM_CLOSE))||\r
(ActionRequest == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
FormId = 0;\r
ProgressErr = 0;\r
Status = EFI_SUCCESS;\r
+ BufferValue = 3;\r
PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);\r
\r
switch (Action) {\r
Value->u8 = DEFAULT_CLASS_STANDARD_VALUE;\r
break;\r
\r
+ case 0x1252:\r
+ for (Index = 0; Index < 3; Index ++) {\r
+ SetArrayData (Value, EFI_IFR_TYPE_NUM_SIZE_8, Index, BufferValue--);\r
+ }\r
+ break;\r
+\r
default:\r
Status = EFI_UNSUPPORTED;\r
break;\r