On Thu, Jun 15, 2023 at 04:45:00PM +0200, Daniel Kiper wrote: > 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 <l...@eworm.de> > Reported-by: Robin Candau <an...@archlinux.org> > Signed-off-by: Daniel Kiper <daniel.ki...@oracle.com>
These all look like correct additions to me. Reviewed-by: Peter Jones <pjo...@redhat.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 > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel -- Peter _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel