[PATCH 1/1] efi: Use struct efi_gop_mode_info in struct efi_entry_gopmode

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Tue Nov 4 12:07:02 CET 2025


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.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
---
 include/efi.h     | 36 +++++++++++++++++++++++-------------
 include/efi_api.h |  9 ---------
 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
@@ -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[];
 };
 
 /**
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;
-- 
2.51.0



More information about the U-Boot mailing list