summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2025-11-04 12:07:02 +0100
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2025-11-06 23:26:28 +0100
commit411f8f5367ca8f55faa8a9c34735e31ac665c7dc (patch)
tree6894e2093a251fcff8b1836ec3a9688bd13c034a /include
parent893871132e54f0f5bc40ad3eee0bf0388a104b76 (diff)
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>
Diffstat (limited to 'include')
-rw-r--r--include/efi.h36
-rw-r--r--include/efi_api.h9
2 files changed, 23 insertions, 22 deletions
diff --git a/include/efi.h b/include/efi.h
index f9bbb175c3a..66725b876f9 100644
--- a/include/efi.h
+++ b/include/efi.h
@@ -386,6 +386,28 @@ struct efi_entry_memmap {
};
/**
+ * 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
*
* @fb_base: EFI's framebuffer base address
@@ -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[];
};
/**
diff --git a/include/efi_api.h b/include/efi_api.h
index 77a05f752e5..d4fdd50c49e 100644
--- a/include/efi_api.h
+++ b/include/efi_api.h
@@ -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;