efi: Use struct efi_gop_mode_info in struct efi_entry_gopmode

Since C99 flexible array members are allowed at the end of structures.
We require C11.

Use struct efi_gop_mode_info in the definition of struct efi_entry_gopmode
to avoid code duplication and unnecessary conversions.

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
Heinrich Schuchardt
2025-11-04 12:07:02 +01:00
parent 893871132e
commit 411f8f5367
2 changed files with 23 additions and 22 deletions

View File

@@ -385,6 +385,28 @@ struct efi_entry_memmap {
struct efi_mem_desc desc[];
};
/**
* struct efi_gop_mode_info - graphics output mode information
*/
struct efi_gop_mode_info {
/** @version: version of the data structure (use zero) */
u32 version;
/** @width: horizontal screen size */
u32 width;
/** @height: vertical screen size */
u32 height;
/** @pixel_format: enum that specifies the storage format of pixels */
u32 pixel_format;
/**
* @pixel_bitmask: bitmasks used with PixelPixelBitMask
*
* The values which bits are used for red, green, blue, and alpha.
*/
u32 pixel_bitmask[4];
/** @pixels_per_scanline: pixels per video memory line */
u32 pixels_per_scanline;
};
/**
* struct efi_entry_gopmode - a GOP mode table passed to U-Boot
*
@@ -404,19 +426,7 @@ struct efi_entry_gopmode {
*/
u64 fb_size;
u64 info_size;
/*
* We cannot directly use 'struct efi_gop_mode_info info[]' here as
* it causes compiler to complain: array type has incomplete element
* type 'struct efi_gop_mode_info'.
*/
struct /* efi_gop_mode_info */ {
u32 version;
u32 width;
u32 height;
u32 pixel_format;
u32 pixel_bitmask[4];
u32 pixels_per_scanline;
} info[];
struct efi_gop_mode_info info[];
};
/**

View File

@@ -1490,15 +1490,6 @@ struct efi_hii_config_access_protocol {
#define EFI_GOT_BGRA8 1
#define EFI_GOT_BITMASK 2
struct efi_gop_mode_info {
u32 version;
u32 width;
u32 height;
u32 pixel_format;
u32 pixel_bitmask[4];
u32 pixels_per_scanline;
};
struct efi_gop_mode {
u32 max_mode;
u32 mode;