mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-23 15:49:23 +00:00
efi: Drop all uses of efi_call_XX() wrappers
Now that GCC can generate function calls using the correct calling convention for us, we can stop using the efi_call_XX() wrappers, and just dereference the function pointers directly. This avoids the untyped variadic wrapper routines, which means better type checking for the method calls. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
1 parent
6a080b9cde
commit
bb4aa6e06e
23 files changed
+165
-170
No files matched your search
@@ -36,7 +36,7 @@ grub_efi_set_mode (grub_efi_simple_text_output_interface_t *o,
|
||||
|
||||
if (mode != o->mode->mode)
|
||||
{
|
||||
status = efi_call_2 (o->set_mode, o, mode);
|
||||
status = o->set_mode (o, mode);
|
||||
if (status == GRUB_EFI_SUCCESS)
|
||||
;
|
||||
else if (status == GRUB_EFI_DEVICE_ERROR)
|
||||
@@ -79,8 +79,7 @@ grub_cmd_efitextmode (grub_command_t cmd __attribute__ ((unused)),
|
||||
grub_printf_ (N_("Available modes for console output device.\n"));
|
||||
|
||||
for (i = 0; i < o->mode->max_mode; i++)
|
||||
if (GRUB_EFI_SUCCESS == efi_call_4 (o->query_mode, o, i,
|
||||
&columns, &rows))
|
||||
if (GRUB_EFI_SUCCESS == o->query_mode (o, i, &columns, &rows))
|
||||
grub_printf_ (N_(" [%" PRIuGRUB_EFI_UINT32_T "] Col %5"
|
||||
PRIuGRUB_EFI_UINTN_T " Row %5" PRIuGRUB_EFI_UINTN_T
|
||||
" %c\n"),
|
||||
@@ -129,8 +128,7 @@ grub_cmd_efitextmode (grub_command_t cmd __attribute__ ((unused)),
|
||||
N_("non-numeric or invalid rows number `%s'"), args[1]);
|
||||
|
||||
for (i = 0; i < o->mode->max_mode; i++)
|
||||
if (GRUB_EFI_SUCCESS == efi_call_4 (o->query_mode, o, i,
|
||||
&columns, &rows))
|
||||
if (GRUB_EFI_SUCCESS == o->query_mode (o, i, &columns, &rows))
|
||||
if (u_columns == columns && u_rows == rows)
|
||||
return grub_efi_set_mode (o, (grub_efi_int32_t) i);
|
||||
|
||||
|
||||
@@ -108,8 +108,9 @@ grub_cmd_lsefi (grub_command_t cmd __attribute__ ((unused)),
|
||||
grub_efi_print_device_path (dp);
|
||||
}
|
||||
|
||||
status = efi_call_3 (grub_efi_system_table->boot_services->protocols_per_handle,
|
||||
handle, &protocols, &num_protocols);
|
||||
status = grub_efi_system_table->boot_services->protocols_per_handle (handle,
|
||||
&protocols,
|
||||
&num_protocols);
|
||||
if (status != GRUB_EFI_SUCCESS) {
|
||||
grub_printf ("Unable to retrieve protocols\n");
|
||||
continue;
|
||||
|
||||
@@ -53,8 +53,7 @@ grub_tpm1_present (grub_efi_tpm_protocol_t *tpm)
|
||||
|
||||
caps.Size = (grub_uint8_t) sizeof (caps);
|
||||
|
||||
status = efi_call_5 (tpm->status_check, tpm, &caps, &flags, &eventlog,
|
||||
&lastevent);
|
||||
status = tpm->status_check (tpm, &caps, &flags, &eventlog, &lastevent);
|
||||
|
||||
if (status != GRUB_EFI_SUCCESS || caps.TPMDeactivatedFlag
|
||||
|| !caps.TPMPresentFlag)
|
||||
@@ -78,7 +77,7 @@ grub_tpm2_present (grub_efi_tpm2_protocol_t *tpm)
|
||||
if (tpm2_present != -1)
|
||||
return (grub_efi_boolean_t) tpm2_present;
|
||||
|
||||
status = efi_call_2 (tpm->get_capability, tpm, &caps);
|
||||
status = tpm->get_capability (tpm, &caps);
|
||||
|
||||
if (status != GRUB_EFI_SUCCESS || !caps.TPMPresentFlag)
|
||||
tpm2_present = 0;
|
||||
@@ -180,8 +179,8 @@ grub_tpm1_log_event (grub_efi_handle_t tpm_handle, unsigned char *buf,
|
||||
grub_strcpy ((char *) event->Event, description);
|
||||
|
||||
algorithm = TCG_ALG_SHA;
|
||||
status = efi_call_7 (tpm->log_extend_event, tpm, (grub_addr_t) buf, (grub_uint64_t) size,
|
||||
algorithm, event, &eventnum, &lastevent);
|
||||
status = tpm->log_extend_event (tpm, (grub_addr_t) buf, (grub_uint64_t) size,
|
||||
algorithm, event, &eventnum, &lastevent);
|
||||
grub_free (event);
|
||||
|
||||
return grub_efi_log_event_status (status);
|
||||
@@ -216,8 +215,8 @@ grub_tpm2_log_event (grub_efi_handle_t tpm_handle, unsigned char *buf,
|
||||
sizeof (*event) - sizeof (event->Event) + grub_strlen (description) + 1;
|
||||
grub_strcpy ((char *) event->Event, description);
|
||||
|
||||
status = efi_call_5 (tpm->hash_log_extend_event, tpm, 0, (grub_addr_t) buf,
|
||||
(grub_uint64_t) size, event);
|
||||
status = tpm->hash_log_extend_event (tpm, 0, (grub_addr_t) buf,
|
||||
(grub_uint64_t) size, event);
|
||||
grub_free (event);
|
||||
|
||||
return grub_efi_log_event_status (status);
|
||||
@@ -236,7 +235,7 @@ grub_cc_log_event (unsigned char *buf, grub_size_t size, grub_uint8_t pcr,
|
||||
if (cc == NULL)
|
||||
return;
|
||||
|
||||
status = efi_call_3 (cc->map_pcr_to_mr_index, cc, pcr, &mr);
|
||||
status = cc->map_pcr_to_mr_index (cc, pcr, &mr);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
{
|
||||
grub_efi_log_event_status (status);
|
||||
@@ -258,9 +257,9 @@ grub_cc_log_event (unsigned char *buf, grub_size_t size, grub_uint8_t pcr,
|
||||
event->Size = sizeof (*event) + grub_strlen (description) + 1;
|
||||
grub_strcpy ((char *) event->Event, description);
|
||||
|
||||
status = efi_call_5 (cc->hash_log_extend_event, cc, 0,
|
||||
(grub_efi_physical_address_t)(grub_addr_t) buf,
|
||||
(grub_efi_uint64_t) size, event);
|
||||
status = cc->hash_log_extend_event (cc, 0,
|
||||
(grub_efi_physical_address_t)(grub_addr_t) buf,
|
||||
(grub_efi_uint64_t) size, event);
|
||||
grub_free (event);
|
||||
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
|
||||
Reference in new issue
Block a user