grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] efi: Add missing __grub_efi_api attributes


From: Daniel Kiper
Subject: [PATCH] efi: Add missing __grub_efi_api attributes
Date: Thu, 15 Jun 2023 16:45:00 +0200

The commit bb4aa6e06 (efi: Drop all uses of efi_call_XX() wrappers) did
not add some __grub_efi_api attributes to the EFI calls. Lack of them
led to hangs on x86_64-efi target. So, let's add missing __grub_efi_api
attributes.

Fixes: bb4aa6e06 (efi: Drop all uses of efi_call_XX() wrappers)

Reported-by: Christian Hesse <list@eworm.de>
Reported-by: Robin Candau <antiz@archlinux.org>
Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
---
 include/grub/efi/cc.h              | 30 ++++++++++++++--------------
 include/grub/efi/console_control.h | 16 +++++++--------
 include/grub/efi/graphics_output.h | 32 +++++++++++++++---------------
 include/grub/efi/uga_draw.h        | 40 +++++++++++++++++++-------------------
 4 files changed, 59 insertions(+), 59 deletions(-)

diff --git a/include/grub/efi/cc.h b/include/grub/efi/cc.h
index 896030689..978e0cdfe 100644
--- a/include/grub/efi/cc.h
+++ b/include/grub/efi/cc.h
@@ -124,27 +124,27 @@ typedef struct grub_efi_cc_boot_service_capability 
grub_efi_cc_boot_service_capa
 struct grub_efi_cc_protocol
 {
   grub_efi_status_t
-  (*get_capability) (struct grub_efi_cc_protocol *this,
-                    grub_efi_cc_boot_service_capability_t *ProtocolCapability);
+  (__grub_efi_api *get_capability) (struct grub_efi_cc_protocol *this,
+                                   grub_efi_cc_boot_service_capability_t 
*ProtocolCapability);
 
   grub_efi_status_t
-  (*get_event_log) (struct grub_efi_cc_protocol *this,
-                   grub_efi_cc_event_log_format_t EventLogFormat,
-                   grub_efi_physical_address_t *EventLogLocation,
-                   grub_efi_physical_address_t *EventLogLastEntry,
-                   grub_efi_boolean_t *EventLogTruncated);
+  (__grub_efi_api *get_event_log) (struct grub_efi_cc_protocol *this,
+                                  grub_efi_cc_event_log_format_t 
EventLogFormat,
+                                  grub_efi_physical_address_t 
*EventLogLocation,
+                                  grub_efi_physical_address_t 
*EventLogLastEntry,
+                                  grub_efi_boolean_t *EventLogTruncated);
 
   grub_efi_status_t
-  (*hash_log_extend_event) (struct grub_efi_cc_protocol *this,
-                           grub_efi_uint64_t Flags,
-                           grub_efi_physical_address_t DataToHash,
-                           grub_efi_uint64_t DataToHashLen,
-                           grub_efi_cc_event_t *EfiCcEvent);
+  (__grub_efi_api *hash_log_extend_event) (struct grub_efi_cc_protocol *this,
+                                          grub_efi_uint64_t Flags,
+                                          grub_efi_physical_address_t 
DataToHash,
+                                          grub_efi_uint64_t DataToHashLen,
+                                          grub_efi_cc_event_t *EfiCcEvent);
 
   grub_efi_status_t
-  (*map_pcr_to_mr_index) (struct grub_efi_cc_protocol *this,
-                         grub_efi_uint32_t PcrIndex,
-                         grub_efi_cc_mr_index_t *MrIndex);
+  (__grub_efi_api *map_pcr_to_mr_index) (struct grub_efi_cc_protocol *this,
+                                        grub_efi_uint32_t PcrIndex,
+                                        grub_efi_cc_mr_index_t *MrIndex);
 };
 typedef struct grub_efi_cc_protocol grub_efi_cc_protocol_t;
 
diff --git a/include/grub/efi/console_control.h 
b/include/grub/efi/console_control.h
index bb5fd038e..008ac5896 100644
--- a/include/grub/efi/console_control.h
+++ b/include/grub/efi/console_control.h
@@ -41,18 +41,18 @@ typedef enum grub_efi_screen_mode grub_efi_screen_mode_t;
 struct grub_efi_console_control_protocol
 {
   grub_efi_status_t
-  (*get_mode) (struct grub_efi_console_control_protocol *this,
-              grub_efi_screen_mode_t *mode,
-              grub_efi_boolean_t *uga_exists,
-              grub_efi_boolean_t *std_in_locked);
+  (__grub_efi_api *get_mode) (struct grub_efi_console_control_protocol *this,
+                             grub_efi_screen_mode_t *mode,
+                             grub_efi_boolean_t *uga_exists,
+                             grub_efi_boolean_t *std_in_locked);
 
   grub_efi_status_t
-  (*set_mode) (struct grub_efi_console_control_protocol *this,
-              grub_efi_screen_mode_t mode);
+  (__grub_efi_api *set_mode) (struct grub_efi_console_control_protocol *this,
+                             grub_efi_screen_mode_t mode);
 
   grub_efi_status_t
-  (*lock_std_in) (struct grub_efi_console_control_protocol *this,
-                 grub_efi_char16_t *password);
+  (__grub_efi_api *lock_std_in) (struct grub_efi_console_control_protocol 
*this,
+                                grub_efi_char16_t *password);
 };
 typedef struct grub_efi_console_control_protocol 
grub_efi_console_control_protocol_t;
 
diff --git a/include/grub/efi/graphics_output.h 
b/include/grub/efi/graphics_output.h
index e4388127c..044e786b8 100644
--- a/include/grub/efi/graphics_output.h
+++ b/include/grub/efi/graphics_output.h
@@ -83,26 +83,26 @@ struct grub_efi_gop_mode
 struct grub_efi_gop;
 
 typedef grub_efi_status_t
-(*grub_efi_gop_query_mode_t) (struct grub_efi_gop *this,
-                             grub_efi_uint32_t mode_number,
-                             grub_efi_uintn_t *size_of_info,
-                             struct grub_efi_gop_mode_info **info);
+(__grub_efi_api *grub_efi_gop_query_mode_t) (struct grub_efi_gop *this,
+                                            grub_efi_uint32_t mode_number,
+                                            grub_efi_uintn_t *size_of_info,
+                                            struct grub_efi_gop_mode_info 
**info);
 
 typedef grub_efi_status_t
-(*grub_efi_gop_set_mode_t) (struct grub_efi_gop *this,
-                           grub_efi_uint32_t mode_number);
+(__grub_efi_api *grub_efi_gop_set_mode_t) (struct grub_efi_gop *this,
+                                          grub_efi_uint32_t mode_number);
 
 typedef grub_efi_status_t
-(*grub_efi_gop_blt_t) (struct grub_efi_gop *this,
-                      void *buffer,
-                      grub_efi_uintn_t operation,
-                      grub_efi_uintn_t sx,
-                      grub_efi_uintn_t sy,
-                      grub_efi_uintn_t dx,
-                      grub_efi_uintn_t dy,
-                      grub_efi_uintn_t width,
-                      grub_efi_uintn_t height,
-                      grub_efi_uintn_t delta);
+(__grub_efi_api *grub_efi_gop_blt_t) (struct grub_efi_gop *this,
+                                     void *buffer,
+                                     grub_efi_uintn_t operation,
+                                     grub_efi_uintn_t sx,
+                                     grub_efi_uintn_t sy,
+                                     grub_efi_uintn_t dx,
+                                     grub_efi_uintn_t dy,
+                                     grub_efi_uintn_t width,
+                                     grub_efi_uintn_t height,
+                                     grub_efi_uintn_t delta);
 
 struct grub_efi_gop
 {
diff --git a/include/grub/efi/uga_draw.h b/include/grub/efi/uga_draw.h
index a31f2672e..1ea157a7e 100644
--- a/include/grub/efi/uga_draw.h
+++ b/include/grub/efi/uga_draw.h
@@ -46,30 +46,30 @@ struct grub_efi_uga_pixel
 struct grub_efi_uga_draw_protocol
 {
   grub_efi_status_t
-  (*get_mode) (struct grub_efi_uga_draw_protocol *this,
-              grub_uint32_t *width,
-              grub_uint32_t *height,
-              grub_uint32_t *depth,
-              grub_uint32_t *refresh_rate);
+  (__grub_efi_api *get_mode) (struct grub_efi_uga_draw_protocol *this,
+                             grub_uint32_t *width,
+                             grub_uint32_t *height,
+                             grub_uint32_t *depth,
+                             grub_uint32_t *refresh_rate);
 
   grub_efi_status_t
-  (*set_mode) (struct grub_efi_uga_draw_protocol *this,
-              grub_uint32_t width,
-              grub_uint32_t height,
-              grub_uint32_t depth,
-              grub_uint32_t refresh_rate);
+  (__grub_efi_api *set_mode) (struct grub_efi_uga_draw_protocol *this,
+                             grub_uint32_t width,
+                             grub_uint32_t height,
+                             grub_uint32_t depth,
+                             grub_uint32_t refresh_rate);
 
   grub_efi_status_t
-  (*blt) (struct grub_efi_uga_draw_protocol *this,
-         struct grub_efi_uga_pixel *blt_buffer,
-         enum grub_efi_uga_blt_operation blt_operation,
-         grub_efi_uintn_t src_x,
-         grub_efi_uintn_t src_y,
-         grub_efi_uintn_t dest_x,
-         grub_efi_uintn_t dest_y,
-         grub_efi_uintn_t width,
-         grub_efi_uintn_t height,
-         grub_efi_uintn_t delta);
+  (__grub_efi_api *blt) (struct grub_efi_uga_draw_protocol *this,
+                        struct grub_efi_uga_pixel *blt_buffer,
+                        enum grub_efi_uga_blt_operation blt_operation,
+                        grub_efi_uintn_t src_x,
+                        grub_efi_uintn_t src_y,
+                        grub_efi_uintn_t dest_x,
+                        grub_efi_uintn_t dest_y,
+                        grub_efi_uintn_t width,
+                        grub_efi_uintn_t height,
+                        grub_efi_uintn_t delta);
 };
 typedef struct grub_efi_uga_draw_protocol grub_efi_uga_draw_protocol_t;
 
-- 
2.11.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]