MdeModulePkg RamDiskDxe: Fix wrong HII behavior for more than 8 RAM disks
The RamDiskDxe driver originally uses a variable-length HII varstore to retrieve the HII checkbox status of each registered RAM disk. However, HII does not support the variable-length varstore feature. Therefore, only the checkbox status for the first 8 RAM disks are tracked for the following definition of HII varstore structure considering the alignment: typedef struct { UINT64 Size; UINT8 RamDiskList[0]; } RAM_DISK_CONFIGURATION; This commit uses the private data of each registered RAM disks to track the HII checkbox status instead to resolve the issue. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com>
This commit is contained in:
@@ -23,9 +23,9 @@
|
||||
#define MAIN_FORM_ID 0x1000
|
||||
#define MAIN_GOTO_FILE_EXPLORER_ID 0x1001
|
||||
#define MAIN_REMOVE_RD_QUESTION_ID 0x1002
|
||||
#define MAIN_CHECKBOX_QUESTION_ID_START 0x1003
|
||||
#define MAIN_LABEL_LIST_START 0x1004
|
||||
#define MAIN_LABEL_LIST_END 0x1005
|
||||
#define MAIN_LABEL_LIST_START 0x1003
|
||||
#define MAIN_LABEL_LIST_END 0x1004
|
||||
#define MAIN_CHECKBOX_QUESTION_ID_START 0x1100
|
||||
|
||||
#define CREATE_RAW_RAM_DISK_FORM_ID 0x2000
|
||||
#define CREATE_RAW_SIZE_QUESTION_ID 0x2001
|
||||
@@ -33,11 +33,10 @@
|
||||
#define CREATE_RAW_DISCARD_QUESTION_ID 0x2003
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// The size of the RAM disk to be created.
|
||||
//
|
||||
UINT64 Size;
|
||||
//
|
||||
// CheckBox status for created RAM disks
|
||||
//
|
||||
UINT8 RamDiskList[0];
|
||||
} RAM_DISK_CONFIGURATION;
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user