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:
parent
6a080b9cde
commit
bb4aa6e06e
@ -762,10 +762,10 @@ grub_cmd_acpi (struct grub_extcmd_context *ctxt, int argc, char **args)
|
||||
struct grub_efi_guid acpi = GRUB_EFI_ACPI_TABLE_GUID;
|
||||
struct grub_efi_guid acpi20 = GRUB_EFI_ACPI_20_TABLE_GUID;
|
||||
|
||||
efi_call_2 (grub_efi_system_table->boot_services->install_configuration_table,
|
||||
&acpi20, grub_acpi_get_rsdpv2 ());
|
||||
efi_call_2 (grub_efi_system_table->boot_services->install_configuration_table,
|
||||
&acpi, grub_acpi_get_rsdpv1 ());
|
||||
grub_efi_system_table->boot_services->install_configuration_table (&acpi20,
|
||||
grub_acpi_get_rsdpv2 ());
|
||||
grub_efi_system_table->boot_services->install_configuration_table (&acpi,
|
||||
grub_acpi_get_rsdpv1 ());
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -579,9 +579,10 @@ grub_efidisk_readwrite (struct grub_disk *disk, grub_disk_addr_t sector,
|
||||
aligned_buf = buf;
|
||||
}
|
||||
|
||||
status = efi_call_5 ((wr ? bio->write_blocks : bio->read_blocks), bio,
|
||||
bio->media->media_id, (grub_efi_uint64_t) sector,
|
||||
(grub_efi_uintn_t) num_bytes, aligned_buf);
|
||||
status = (wr ? bio->write_blocks : bio->read_blocks) (bio, bio->media->media_id,
|
||||
(grub_efi_uint64_t) sector,
|
||||
(grub_efi_uintn_t) num_bytes,
|
||||
aligned_buf);
|
||||
|
||||
if ((grub_addr_t) buf & (io_align - 1))
|
||||
{
|
||||
|
||||
@ -50,9 +50,9 @@ grub_machine_init (void)
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
|
||||
efi_call_5 (b->create_event, GRUB_EFI_EVT_TIMER | GRUB_EFI_EVT_NOTIFY_SIGNAL,
|
||||
GRUB_EFI_TPL_CALLBACK, increment_timer, NULL, &tmr_evt);
|
||||
efi_call_3 (b->set_timer, tmr_evt, GRUB_EFI_TIMER_PERIODIC, 100000);
|
||||
b->create_event (GRUB_EFI_EVT_TIMER | GRUB_EFI_EVT_NOTIFY_SIGNAL,
|
||||
GRUB_EFI_TPL_CALLBACK, increment_timer, NULL, &tmr_evt);
|
||||
b->set_timer (tmr_evt, GRUB_EFI_TIMER_PERIODIC, 100000);
|
||||
|
||||
grub_install_get_time_ms (grub_efi_get_time_ms);
|
||||
}
|
||||
@ -67,8 +67,8 @@ grub_machine_fini (int flags)
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
|
||||
efi_call_3 (b->set_timer, tmr_evt, GRUB_EFI_TIMER_CANCEL, 0);
|
||||
efi_call_1 (b->close_event, tmr_evt);
|
||||
b->set_timer (tmr_evt, GRUB_EFI_TIMER_CANCEL, 0);
|
||||
b->close_event (tmr_evt);
|
||||
|
||||
grub_efi_fini ();
|
||||
|
||||
|
||||
@ -45,8 +45,9 @@ grub_efi_locate_protocol (grub_efi_guid_t *protocol, void *registration)
|
||||
void *interface;
|
||||
grub_efi_status_t status;
|
||||
|
||||
status = efi_call_3 (grub_efi_system_table->boot_services->locate_protocol,
|
||||
protocol, registration, &interface);
|
||||
status = grub_efi_system_table->boot_services->locate_protocol (protocol,
|
||||
registration,
|
||||
&interface);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
return 0;
|
||||
|
||||
@ -72,7 +73,7 @@ grub_efi_locate_handle (grub_efi_locate_search_type_t search_type,
|
||||
return 0;
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
status = efi_call_5 (b->locate_handle, search_type, protocol, search_key,
|
||||
status = b->locate_handle (search_type, protocol, search_key,
|
||||
&buffer_size, buffer);
|
||||
if (status == GRUB_EFI_BUFFER_TOO_SMALL)
|
||||
{
|
||||
@ -81,7 +82,7 @@ grub_efi_locate_handle (grub_efi_locate_search_type_t search_type,
|
||||
if (! buffer)
|
||||
return 0;
|
||||
|
||||
status = efi_call_5 (b->locate_handle, search_type, protocol, search_key,
|
||||
status = b->locate_handle (search_type, protocol, search_key,
|
||||
&buffer_size, buffer);
|
||||
}
|
||||
|
||||
@ -105,12 +106,12 @@ grub_efi_open_protocol (grub_efi_handle_t handle,
|
||||
void *interface;
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
status = efi_call_6 (b->open_protocol, handle,
|
||||
protocol,
|
||||
&interface,
|
||||
grub_efi_image_handle,
|
||||
0,
|
||||
attributes);
|
||||
status = b->open_protocol (handle,
|
||||
protocol,
|
||||
&interface,
|
||||
grub_efi_image_handle,
|
||||
0,
|
||||
attributes);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
return 0;
|
||||
|
||||
@ -122,7 +123,7 @@ grub_efi_close_protocol (grub_efi_handle_t handle, grub_efi_guid_t *protocol)
|
||||
{
|
||||
grub_efi_boot_services_t *b = grub_efi_system_table->boot_services;
|
||||
|
||||
return efi_call_4 (b->close_protocol, handle, protocol, grub_efi_image_handle, NULL);
|
||||
return b->close_protocol (handle, protocol, grub_efi_image_handle, NULL);
|
||||
}
|
||||
|
||||
int
|
||||
@ -137,12 +138,12 @@ grub_efi_set_text_mode (int on)
|
||||
already in text mode. */
|
||||
return 1;
|
||||
|
||||
if (efi_call_4 (c->get_mode, c, &mode, 0, 0) != GRUB_EFI_SUCCESS)
|
||||
if (c->get_mode (c, &mode, 0, 0) != GRUB_EFI_SUCCESS)
|
||||
return 0;
|
||||
|
||||
new_mode = on ? GRUB_EFI_SCREEN_TEXT : GRUB_EFI_SCREEN_GRAPHICS;
|
||||
if (mode != new_mode)
|
||||
if (efi_call_2 (c->set_mode, c, new_mode) != GRUB_EFI_SUCCESS)
|
||||
if (c->set_mode (c, new_mode) != GRUB_EFI_SUCCESS)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
@ -151,7 +152,7 @@ grub_efi_set_text_mode (int on)
|
||||
void
|
||||
grub_efi_stall (grub_efi_uintn_t microseconds)
|
||||
{
|
||||
efi_call_1 (grub_efi_system_table->boot_services->stall, microseconds);
|
||||
grub_efi_system_table->boot_services->stall (microseconds);
|
||||
}
|
||||
|
||||
grub_efi_loaded_image_t *
|
||||
@ -167,8 +168,9 @@ grub_reboot (void)
|
||||
{
|
||||
grub_machine_fini (GRUB_LOADER_FLAG_NORETURN |
|
||||
GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY);
|
||||
efi_call_4 (grub_efi_system_table->runtime_services->reset_system,
|
||||
GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL);
|
||||
grub_efi_system_table->runtime_services->reset_system (GRUB_EFI_RESET_COLD,
|
||||
GRUB_EFI_SUCCESS, 0,
|
||||
NULL);
|
||||
for (;;) ;
|
||||
}
|
||||
|
||||
@ -176,8 +178,8 @@ void
|
||||
grub_exit (void)
|
||||
{
|
||||
grub_machine_fini (GRUB_LOADER_FLAG_NORETURN);
|
||||
efi_call_4 (grub_efi_system_table->boot_services->exit,
|
||||
grub_efi_image_handle, GRUB_EFI_SUCCESS, 0, 0);
|
||||
grub_efi_system_table->boot_services->exit (grub_efi_image_handle,
|
||||
GRUB_EFI_SUCCESS, 0, 0);
|
||||
for (;;) ;
|
||||
}
|
||||
|
||||
@ -191,8 +193,8 @@ grub_efi_set_virtual_address_map (grub_efi_uintn_t memory_map_size,
|
||||
grub_efi_status_t status;
|
||||
|
||||
r = grub_efi_system_table->runtime_services;
|
||||
status = efi_call_4 (r->set_virtual_address_map, memory_map_size,
|
||||
descriptor_size, descriptor_version, virtual_map);
|
||||
status = r->set_virtual_address_map (memory_map_size, descriptor_size,
|
||||
descriptor_version, virtual_map);
|
||||
|
||||
if (status == GRUB_EFI_SUCCESS)
|
||||
return GRUB_ERR_NONE;
|
||||
@ -219,11 +221,11 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid,
|
||||
|
||||
r = grub_efi_system_table->runtime_services;
|
||||
|
||||
status = efi_call_5 (r->set_variable, var16, guid,
|
||||
(GRUB_EFI_VARIABLE_NON_VOLATILE
|
||||
| GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS
|
||||
| GRUB_EFI_VARIABLE_RUNTIME_ACCESS),
|
||||
datasize, data);
|
||||
status = r->set_variable (var16, guid,
|
||||
(GRUB_EFI_VARIABLE_NON_VOLATILE
|
||||
| GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS
|
||||
| GRUB_EFI_VARIABLE_RUNTIME_ACCESS),
|
||||
datasize, data);
|
||||
grub_free (var16);
|
||||
if (status == GRUB_EFI_SUCCESS)
|
||||
return GRUB_ERR_NONE;
|
||||
@ -258,7 +260,7 @@ grub_efi_get_variable_with_attributes (const char *var,
|
||||
|
||||
r = grub_efi_system_table->runtime_services;
|
||||
|
||||
status = efi_call_5 (r->get_variable, var16, guid, NULL, &datasize, NULL);
|
||||
status = r->get_variable (var16, guid, NULL, &datasize, NULL);
|
||||
|
||||
if (status != GRUB_EFI_BUFFER_TOO_SMALL || !datasize)
|
||||
{
|
||||
@ -273,7 +275,7 @@ grub_efi_get_variable_with_attributes (const char *var,
|
||||
return GRUB_EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
status = efi_call_5 (r->get_variable, var16, guid, attributes, &datasize, data);
|
||||
status = r->get_variable (var16, guid, attributes, &datasize, data);
|
||||
grub_free (var16);
|
||||
|
||||
if (status == GRUB_EFI_SUCCESS)
|
||||
|
||||
@ -56,11 +56,11 @@ __stack_chk_fail (void)
|
||||
* the serial console, at least on EDK2.
|
||||
*/
|
||||
o = grub_efi_system_table->con_out;
|
||||
efi_call_2 (o->output_string, o, stack_chk_fail_msg);
|
||||
o->output_string (o, stack_chk_fail_msg);
|
||||
|
||||
efi_call_1 (grub_efi_system_table->boot_services->stall, 5000000);
|
||||
efi_call_4 (grub_efi_system_table->runtime_services->reset_system,
|
||||
GRUB_EFI_RESET_SHUTDOWN, GRUB_EFI_ABORTED, 0, NULL);
|
||||
grub_efi_system_table->boot_services->stall (5000000);
|
||||
grub_efi_system_table->runtime_services->reset_system (GRUB_EFI_RESET_SHUTDOWN,
|
||||
GRUB_EFI_ABORTED, 0, NULL);
|
||||
|
||||
/*
|
||||
* We shouldn't get here. It's unsafe to return because the stack
|
||||
@ -86,8 +86,8 @@ stack_protector_init (void)
|
||||
{
|
||||
grub_efi_status_t status;
|
||||
|
||||
status = efi_call_4 (rng->get_rng, rng, NULL, sizeof (stack_chk_guard_buf),
|
||||
stack_chk_guard_buf);
|
||||
status = rng->get_rng (rng, NULL, sizeof (stack_chk_guard_buf),
|
||||
stack_chk_guard_buf);
|
||||
if (status == GRUB_EFI_SUCCESS)
|
||||
grub_memcpy (&__stack_chk_guard, stack_chk_guard_buf, sizeof (__stack_chk_guard));
|
||||
}
|
||||
@ -124,8 +124,7 @@ grub_efi_init (void)
|
||||
grub_shim_lock_verifier_setup ();
|
||||
}
|
||||
|
||||
efi_call_4 (grub_efi_system_table->boot_services->set_watchdog_timer,
|
||||
0, 0, 0, NULL);
|
||||
grub_efi_system_table->boot_services->set_watchdog_timer (0, 0, 0, NULL);
|
||||
|
||||
grub_efidisk_init ();
|
||||
}
|
||||
|
||||
@ -69,8 +69,8 @@ grub_efi_store_alloc (grub_efi_physical_address_t address,
|
||||
grub_efi_status_t status;
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
status = efi_call_3 (b->allocate_pool, GRUB_EFI_LOADER_DATA,
|
||||
sizeof(*alloc), (void**)&alloc);
|
||||
status = b->allocate_pool (GRUB_EFI_LOADER_DATA,
|
||||
sizeof(*alloc), (void**)&alloc);
|
||||
|
||||
if (status == GRUB_EFI_SUCCESS)
|
||||
{
|
||||
@ -105,7 +105,7 @@ grub_efi_drop_alloc (grub_efi_physical_address_t address,
|
||||
efi_allocated_memory = ea->next;
|
||||
|
||||
/* Then free the memory backing it. */
|
||||
efi_call_1 (b->free_pool, ea);
|
||||
b->free_pool (ea);
|
||||
|
||||
/* And leave, we're done. */
|
||||
break;
|
||||
@ -137,7 +137,7 @@ grub_efi_allocate_pages_real (grub_efi_physical_address_t address,
|
||||
}
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
status = efi_call_4 (b->allocate_pages, alloctype, memtype, pages, &address);
|
||||
status = b->allocate_pages (alloctype, memtype, pages, &address);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
{
|
||||
grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory"));
|
||||
@ -149,7 +149,7 @@ grub_efi_allocate_pages_real (grub_efi_physical_address_t address,
|
||||
/* Uggh, the address 0 was allocated... This is too annoying,
|
||||
so reallocate another one. */
|
||||
address = GRUB_EFI_MAX_USABLE_ADDRESS;
|
||||
status = efi_call_4 (b->allocate_pages, alloctype, memtype, pages, &address);
|
||||
status = b->allocate_pages (alloctype, memtype, pages, &address);
|
||||
grub_efi_free_pages (0, pages);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
{
|
||||
@ -188,7 +188,7 @@ grub_efi_free_pages (grub_efi_physical_address_t address,
|
||||
grub_efi_boot_services_t *b;
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
efi_call_2 (b->free_pages, address, pages);
|
||||
b->free_pages (address, pages);
|
||||
|
||||
grub_efi_drop_alloc (address, pages);
|
||||
}
|
||||
@ -267,8 +267,7 @@ grub_efi_finish_boot_services (grub_efi_uintn_t *outbuf_size, void *outbuf,
|
||||
}
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
status = efi_call_2 (b->exit_boot_services, grub_efi_image_handle,
|
||||
finish_key);
|
||||
status = b->exit_boot_services (grub_efi_image_handle, finish_key);
|
||||
if (status == GRUB_EFI_SUCCESS)
|
||||
break;
|
||||
|
||||
@ -381,7 +380,7 @@ grub_efi_get_memory_map (grub_efi_uintn_t *memory_map_size,
|
||||
descriptor_size = &size;
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
status = efi_call_5 (b->get_memory_map, memory_map_size, memory_map, map_key,
|
||||
status = b->get_memory_map (memory_map_size, memory_map, map_key,
|
||||
descriptor_size, descriptor_version);
|
||||
if (*descriptor_size == 0)
|
||||
*descriptor_size = sizeof (grub_efi_memory_descriptor_t);
|
||||
|
||||
@ -33,7 +33,7 @@ grub_tsc_calibrate_from_efi (void)
|
||||
grub_uint64_t start_tsc, end_tsc;
|
||||
/* Use EFI Time Service to calibrate TSC */
|
||||
start_tsc = grub_get_tsc ();
|
||||
efi_call_1 (grub_efi_system_table->boot_services->stall, 1000);
|
||||
grub_efi_system_table->boot_services->stall (1000);
|
||||
end_tsc = grub_get_tsc ();
|
||||
grub_tsc_rate = grub_divmod64 ((1ULL << 32), end_tsc - start_tsc, 0);
|
||||
return 1;
|
||||
|
||||
@ -51,16 +51,16 @@ grub_machine_init (void)
|
||||
grub_efi_uintn_t idx;
|
||||
grub_efi_init ();
|
||||
|
||||
efi_call_5 (grub_efi_system_table->boot_services->create_event,
|
||||
GRUB_EFI_EVT_TIMER, GRUB_EFI_TPL_CALLBACK, 0, 0, &event);
|
||||
grub_efi_system_table->boot_services->create_event (GRUB_EFI_EVT_TIMER,
|
||||
GRUB_EFI_TPL_CALLBACK,
|
||||
0, 0, &event);
|
||||
|
||||
before = get_itc ();
|
||||
efi_call_3 (grub_efi_system_table->boot_services->set_timer, event,
|
||||
GRUB_EFI_TIMER_RELATIVE, 200000);
|
||||
efi_call_3 (grub_efi_system_table->boot_services->wait_for_event, 1,
|
||||
&event, &idx);
|
||||
grub_efi_system_table->boot_services->set_timer (event, GRUB_EFI_TIMER_RELATIVE,
|
||||
200000);
|
||||
grub_efi_system_table->boot_services->wait_for_event (1, &event, &idx);
|
||||
after = get_itc ();
|
||||
efi_call_1 (grub_efi_system_table->boot_services->close_event, event);
|
||||
grub_efi_system_table->boot_services->close_event (event);
|
||||
divisor = (after - before + 5) / 20;
|
||||
if (divisor == 0)
|
||||
divisor = 800000;
|
||||
|
||||
@ -50,9 +50,9 @@ grub_machine_init (void)
|
||||
grub_efi_init ();
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
efi_call_5 (b->create_event, GRUB_EFI_EVT_TIMER | GRUB_EFI_EVT_NOTIFY_SIGNAL,
|
||||
GRUB_EFI_TPL_CALLBACK, grub_loongson_increment_timer, NULL, &tmr_evt);
|
||||
efi_call_3 (b->set_timer, tmr_evt, GRUB_EFI_TIMER_PERIODIC, EFI_TIMER_PERIOD_MILLISECONDS(10));
|
||||
b->create_event (GRUB_EFI_EVT_TIMER | GRUB_EFI_EVT_NOTIFY_SIGNAL,
|
||||
GRUB_EFI_TPL_CALLBACK, grub_loongson_increment_timer, NULL, &tmr_evt);
|
||||
b->set_timer (tmr_evt, GRUB_EFI_TIMER_PERIODIC, EFI_TIMER_PERIOD_MILLISECONDS(10));
|
||||
|
||||
grub_install_get_time_ms (grub_efi_get_time_ms);
|
||||
}
|
||||
@ -67,8 +67,8 @@ grub_machine_fini (int flags)
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
|
||||
efi_call_3 (b->set_timer, tmr_evt, GRUB_EFI_TIMER_CANCEL, 0);
|
||||
efi_call_1 (b->close_event, tmr_evt);
|
||||
b->set_timer (tmr_evt, GRUB_EFI_TIMER_CANCEL, 0);
|
||||
b->close_event (tmr_evt);
|
||||
|
||||
grub_efi_fini ();
|
||||
|
||||
|
||||
@ -32,8 +32,7 @@ grub_get_datetime (struct grub_datetime *datetime)
|
||||
grub_efi_status_t status;
|
||||
struct grub_efi_time efi_time;
|
||||
|
||||
status = efi_call_2 (grub_efi_system_table->runtime_services->get_time,
|
||||
&efi_time, 0);
|
||||
status = grub_efi_system_table->runtime_services->get_time (&efi_time, 0);
|
||||
|
||||
if (status)
|
||||
return grub_error (GRUB_ERR_INVALID_COMMAND,
|
||||
@ -57,8 +56,7 @@ grub_set_datetime (struct grub_datetime *datetime)
|
||||
grub_efi_status_t status;
|
||||
struct grub_efi_time efi_time;
|
||||
|
||||
status = efi_call_2 (grub_efi_system_table->runtime_services->get_time,
|
||||
&efi_time, 0);
|
||||
status = grub_efi_system_table->runtime_services->get_time (&efi_time, 0);
|
||||
|
||||
if (status)
|
||||
return grub_error (GRUB_ERR_INVALID_COMMAND,
|
||||
@ -71,8 +69,7 @@ grub_set_datetime (struct grub_datetime *datetime)
|
||||
efi_time.minute = datetime->minute;
|
||||
efi_time.second = datetime->second;
|
||||
|
||||
status = efi_call_1 (grub_efi_system_table->runtime_services->set_time,
|
||||
&efi_time);
|
||||
status = grub_efi_system_table->runtime_services->set_time (&efi_time);
|
||||
|
||||
if (status)
|
||||
return grub_error (GRUB_ERR_INVALID_COMMAND,
|
||||
|
||||
@ -34,8 +34,8 @@ grub_halt (void)
|
||||
!defined(__loongarch__) && !defined(__riscv)
|
||||
grub_acpi_halt ();
|
||||
#endif
|
||||
efi_call_4 (grub_efi_system_table->runtime_services->reset_system,
|
||||
GRUB_EFI_RESET_SHUTDOWN, GRUB_EFI_SUCCESS, 0, NULL);
|
||||
grub_efi_system_table->runtime_services->reset_system (GRUB_EFI_RESET_SHUTDOWN,
|
||||
GRUB_EFI_SUCCESS, 0, NULL);
|
||||
|
||||
while (1);
|
||||
}
|
||||
|
||||
@ -101,8 +101,8 @@ grub_relocator_firmware_alloc_region (grub_addr_t start, grub_size_t size)
|
||||
(unsigned long long) start, (unsigned long long) size);
|
||||
#endif
|
||||
b = grub_efi_system_table->boot_services;
|
||||
status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ADDRESS,
|
||||
GRUB_EFI_LOADER_DATA, size >> 12, &address);
|
||||
status = b->allocate_pages (GRUB_EFI_ALLOCATE_ADDRESS,
|
||||
GRUB_EFI_LOADER_DATA, size >> 12, &address);
|
||||
return (status == GRUB_EFI_SUCCESS);
|
||||
}
|
||||
|
||||
@ -115,5 +115,5 @@ grub_relocator_firmware_free_region (grub_addr_t start, grub_size_t size)
|
||||
return;
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
efi_call_2 (b->free_pages, start, size >> 12);
|
||||
b->free_pages (start, size >> 12);
|
||||
}
|
||||
|
||||
@ -40,7 +40,7 @@ grub_appleloader_unload (void)
|
||||
grub_efi_boot_services_t *b;
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
efi_call_1 (b->unload_image, image_handle);
|
||||
b->unload_image (image_handle);
|
||||
|
||||
grub_free (cmdline);
|
||||
cmdline = 0;
|
||||
@ -55,7 +55,7 @@ grub_appleloader_boot (void)
|
||||
grub_efi_boot_services_t *b;
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
efi_call_3 (b->start_image, image_handle, 0, 0);
|
||||
b->start_image (image_handle, 0, 0);
|
||||
|
||||
grub_appleloader_unload ();
|
||||
|
||||
@ -165,8 +165,8 @@ grub_cmd_appleloader (grub_command_t cmd __attribute__ ((unused)),
|
||||
b = grub_efi_system_table->boot_services;
|
||||
|
||||
for (pdev = devs ; pdev->devpath ; pdev++)
|
||||
if (efi_call_6 (b->load_image, 0, grub_efi_image_handle, pdev->devpath,
|
||||
NULL, 0, &image_handle) == GRUB_EFI_SUCCESS)
|
||||
if (b->load_image (0, grub_efi_image_handle, pdev->devpath,
|
||||
NULL, 0, &image_handle) == GRUB_EFI_SUCCESS)
|
||||
break;
|
||||
|
||||
if (! pdev->devpath)
|
||||
|
||||
@ -56,7 +56,7 @@ grub_chainloader_unload (void *context)
|
||||
grub_free (loaded_image->load_options);
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
efi_call_1 (b->unload_image, image_handle);
|
||||
b->unload_image (image_handle);
|
||||
|
||||
grub_dl_unref (my_mod);
|
||||
return GRUB_ERR_NONE;
|
||||
@ -72,7 +72,7 @@ grub_chainloader_boot (void *context)
|
||||
grub_efi_char16_t *exit_data = NULL;
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
status = efi_call_3 (b->start_image, image_handle, &exit_data_size, &exit_data);
|
||||
status = b->start_image (image_handle, &exit_data_size, &exit_data);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
{
|
||||
if (exit_data)
|
||||
@ -94,7 +94,7 @@ grub_chainloader_boot (void *context)
|
||||
}
|
||||
|
||||
if (exit_data)
|
||||
efi_call_1 (b->free_pool, exit_data);
|
||||
b->free_pool (exit_data);
|
||||
|
||||
grub_loader_unset ();
|
||||
|
||||
@ -289,7 +289,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
|
||||
}
|
||||
pages = (((grub_efi_uintn_t) size + ((1 << 12) - 1)) >> 12);
|
||||
|
||||
status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES,
|
||||
status = b->allocate_pages (GRUB_EFI_ALLOCATE_ANY_PAGES,
|
||||
GRUB_EFI_LOADER_CODE,
|
||||
pages, &address);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
@ -346,9 +346,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
|
||||
}
|
||||
#endif
|
||||
|
||||
status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path,
|
||||
boot_image, size,
|
||||
&image_handle);
|
||||
status = b->load_image (0, grub_efi_image_handle, file_path,
|
||||
boot_image, size,
|
||||
&image_handle);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
{
|
||||
if (status == GRUB_EFI_OUT_OF_RESOURCES)
|
||||
@ -403,7 +403,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
|
||||
grub_device_close (dev);
|
||||
|
||||
/* We're finished with the source image buffer and file path now. */
|
||||
efi_call_2 (b->free_pages, address, pages);
|
||||
b->free_pages (address, pages);
|
||||
grub_free (file_path);
|
||||
|
||||
grub_loader_set_ex (grub_chainloader_boot, grub_chainloader_unload, image_handle, 0);
|
||||
@ -421,10 +421,10 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
|
||||
grub_free (file_path);
|
||||
|
||||
if (address)
|
||||
efi_call_2 (b->free_pages, address, pages);
|
||||
b->free_pages (address, pages);
|
||||
|
||||
if (image_handle != NULL)
|
||||
efi_call_1 (b->unload_image, image_handle);
|
||||
b->unload_image (image_handle);
|
||||
|
||||
grub_dl_unref (my_mod);
|
||||
|
||||
|
||||
@ -203,14 +203,14 @@ grub_mmap_register (grub_uint64_t start, grub_uint64_t size, int type)
|
||||
b = grub_efi_system_table->boot_services;
|
||||
address = start & (~0xfffULL);
|
||||
pages = (end - address + 0xfff) >> 12;
|
||||
status = efi_call_2 (b->free_pages, address, pages);
|
||||
status = b->free_pages (address, pages);
|
||||
if (status != GRUB_EFI_SUCCESS && status != GRUB_EFI_NOT_FOUND)
|
||||
{
|
||||
grub_free (curover);
|
||||
return 0;
|
||||
}
|
||||
status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ADDRESS,
|
||||
make_efi_memtype (type), pages, &address);
|
||||
status = b->allocate_pages (GRUB_EFI_ALLOCATE_ADDRESS,
|
||||
make_efi_memtype (type), pages, &address);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
{
|
||||
grub_free (curover);
|
||||
@ -239,7 +239,7 @@ grub_mmap_unregister (int handle)
|
||||
{
|
||||
if (curover->handle == handle)
|
||||
{
|
||||
efi_call_2 (b->free_pages, curover->address, curover->pages);
|
||||
b->free_pages (curover->address, curover->pages);
|
||||
if (prevover != 0)
|
||||
prevover->next = curover->next;
|
||||
else
|
||||
@ -281,8 +281,8 @@ grub_mmap_malign_and_register (grub_uint64_t align __attribute__ ((unused)),
|
||||
#endif
|
||||
|
||||
pages = (size + 0xfff) >> 12;
|
||||
status = efi_call_4 (b->allocate_pages, atype,
|
||||
make_efi_memtype (type), pages, &address);
|
||||
status = b->allocate_pages (atype,
|
||||
make_efi_memtype (type), pages, &address);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
{
|
||||
grub_free (curover);
|
||||
@ -294,8 +294,8 @@ grub_mmap_malign_and_register (grub_uint64_t align __attribute__ ((unused)),
|
||||
/* Uggh, the address 0 was allocated... This is too annoying,
|
||||
so reallocate another one. */
|
||||
address = 0xffffffff;
|
||||
status = efi_call_4 (b->allocate_pages, atype,
|
||||
make_efi_memtype (type), pages, &address);
|
||||
status = b->allocate_pages (atype,
|
||||
make_efi_memtype (type), pages, &address);
|
||||
grub_efi_free_pages (0, pages);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
return 0;
|
||||
|
||||
@ -46,7 +46,7 @@ send_card_buffer (struct grub_net_card *dev,
|
||||
while (1)
|
||||
{
|
||||
txbuf = NULL;
|
||||
st = efi_call_3 (net->get_status, net, 0, &txbuf);
|
||||
st = net->get_status (net, 0, &txbuf);
|
||||
if (st != GRUB_EFI_SUCCESS)
|
||||
return grub_error (GRUB_ERR_IO,
|
||||
N_("couldn't send network packet"));
|
||||
@ -74,8 +74,8 @@ send_card_buffer (struct grub_net_card *dev,
|
||||
|
||||
grub_memcpy (dev->txbuf, pack->data, dev->last_pkt_size);
|
||||
|
||||
st = efi_call_7 (net->transmit, net, 0, dev->last_pkt_size,
|
||||
dev->txbuf, NULL, NULL, NULL);
|
||||
st = net->transmit (net, 0, dev->last_pkt_size,
|
||||
dev->txbuf, NULL, NULL, NULL);
|
||||
if (st != GRUB_EFI_SUCCESS)
|
||||
return grub_error (GRUB_ERR_IO, N_("couldn't send network packet"));
|
||||
|
||||
@ -88,7 +88,7 @@ send_card_buffer (struct grub_net_card *dev,
|
||||
Perhaps a timeout in the FW has discarded the recycle buffer.
|
||||
*/
|
||||
txbuf = NULL;
|
||||
st = efi_call_3 (net->get_status, net, 0, &txbuf);
|
||||
st = net->get_status (net, 0, &txbuf);
|
||||
dev->txbusy = !(st == GRUB_EFI_SUCCESS && txbuf);
|
||||
|
||||
return GRUB_ERR_NONE;
|
||||
@ -114,8 +114,8 @@ get_card_packet (struct grub_net_card *dev)
|
||||
if (!dev->rcvbuf)
|
||||
return NULL;
|
||||
|
||||
st = efi_call_7 (net->receive, net, NULL, &bufsize,
|
||||
dev->rcvbuf, NULL, NULL, NULL);
|
||||
st = net->receive (net, NULL, &bufsize,
|
||||
dev->rcvbuf, NULL, NULL, NULL);
|
||||
if (st != GRUB_EFI_BUFFER_TOO_SMALL)
|
||||
break;
|
||||
dev->rcvbufsize = 2 * ALIGN_UP (dev->rcvbufsize > bufsize
|
||||
@ -168,7 +168,7 @@ open_card (struct grub_net_card *dev)
|
||||
if (net != NULL)
|
||||
{
|
||||
if (net->mode->state == GRUB_EFI_NETWORK_STOPPED
|
||||
&& efi_call_1 (net->start, net) != GRUB_EFI_SUCCESS)
|
||||
&& net->start (net) != GRUB_EFI_SUCCESS)
|
||||
return grub_error (GRUB_ERR_NET_NO_CARD, "%s: net start failed",
|
||||
dev->name);
|
||||
|
||||
@ -177,7 +177,7 @@ open_card (struct grub_net_card *dev)
|
||||
dev->name);
|
||||
|
||||
if (net->mode->state == GRUB_EFI_NETWORK_STARTED
|
||||
&& efi_call_3 (net->initialize, net, 0, 0) != GRUB_EFI_SUCCESS)
|
||||
&& net->initialize (net, 0, 0) != GRUB_EFI_SUCCESS)
|
||||
return grub_error (GRUB_ERR_NET_NO_CARD, "%s: net initialize failed",
|
||||
dev->name);
|
||||
|
||||
@ -201,7 +201,7 @@ open_card (struct grub_net_card *dev)
|
||||
filters |= (net->mode->receive_filter_mask &
|
||||
GRUB_EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS);
|
||||
|
||||
efi_call_6 (net->receive_filters, net, filters, 0, 0, 0, NULL);
|
||||
net->receive_filters (net, filters, 0, 0, 0, NULL);
|
||||
}
|
||||
|
||||
dev->efi_net = net;
|
||||
@ -216,8 +216,8 @@ open_card (struct grub_net_card *dev)
|
||||
static void
|
||||
close_card (struct grub_net_card *dev)
|
||||
{
|
||||
efi_call_1 (dev->efi_net->shutdown, dev->efi_net);
|
||||
efi_call_1 (dev->efi_net->stop, dev->efi_net);
|
||||
dev->efi_net->shutdown (dev->efi_net);
|
||||
dev->efi_net->stop (dev->efi_net);
|
||||
grub_efi_close_protocol (dev->efi_handle, &net_io_guid);
|
||||
}
|
||||
|
||||
@ -286,14 +286,14 @@ grub_efinet_findcards (void)
|
||||
continue;
|
||||
|
||||
if (net->mode->state == GRUB_EFI_NETWORK_STOPPED
|
||||
&& efi_call_1 (net->start, net) != GRUB_EFI_SUCCESS)
|
||||
&& net->start (net) != GRUB_EFI_SUCCESS)
|
||||
continue;
|
||||
|
||||
if (net->mode->state == GRUB_EFI_NETWORK_STOPPED)
|
||||
continue;
|
||||
|
||||
if (net->mode->state == GRUB_EFI_NETWORK_STARTED
|
||||
&& efi_call_3 (net->initialize, net, 0, 0) != GRUB_EFI_SUCCESS)
|
||||
&& net->initialize (net, 0, 0) != GRUB_EFI_SUCCESS)
|
||||
continue;
|
||||
|
||||
card = grub_zalloc (sizeof (struct grub_net_card));
|
||||
|
||||
@ -107,14 +107,13 @@ grub_console_setcolorstate (struct grub_term_output *term
|
||||
|
||||
switch (state) {
|
||||
case GRUB_TERM_COLOR_STANDARD:
|
||||
efi_call_2 (o->set_attributes, o, GRUB_TERM_DEFAULT_STANDARD_COLOR
|
||||
& 0x7f);
|
||||
o->set_attributes (o, GRUB_TERM_DEFAULT_STANDARD_COLOR & 0x7f);
|
||||
break;
|
||||
case GRUB_TERM_COLOR_NORMAL:
|
||||
efi_call_2 (o->set_attributes, o, grub_term_normal_color & 0x7f);
|
||||
o->set_attributes (o, grub_term_normal_color & 0x7f);
|
||||
break;
|
||||
case GRUB_TERM_COLOR_HIGHLIGHT:
|
||||
efi_call_2 (o->set_attributes, o, grub_term_highlight_color & 0x7f);
|
||||
o->set_attributes (o, grub_term_highlight_color & 0x7f);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -135,7 +134,7 @@ grub_console_setcursor (struct grub_term_output *term __attribute__ ((unused)),
|
||||
}
|
||||
|
||||
o = grub_efi_system_table->con_out;
|
||||
efi_call_2 (o->enable_cursor, o, on);
|
||||
o->enable_cursor (o, on);
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
@ -189,10 +188,10 @@ grub_console_putchar (struct grub_term_output *term,
|
||||
|
||||
/* Should this test be cached? */
|
||||
if ((c->base > 0x7f || c->ncomb)
|
||||
&& efi_call_2 (o->test_string, o, str) != GRUB_EFI_SUCCESS)
|
||||
&& o->test_string (o, str) != GRUB_EFI_SUCCESS)
|
||||
return;
|
||||
|
||||
efi_call_2 (o->output_string, o, str);
|
||||
o->output_string (o, str);
|
||||
}
|
||||
|
||||
const unsigned efi_codes[] =
|
||||
@ -242,7 +241,7 @@ grub_console_getkey_con (struct grub_term_input *term __attribute__ ((unused)))
|
||||
grub_efi_status_t status;
|
||||
|
||||
i = grub_efi_system_table->con_in;
|
||||
status = efi_call_2 (i->read_key_stroke, i, &key);
|
||||
status = i->read_key_stroke (i, &key);
|
||||
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
return GRUB_TERM_NO_KEY;
|
||||
@ -270,7 +269,7 @@ grub_console_read_key_stroke (
|
||||
|
||||
key = grub_efi_translate_key (key_data.key);
|
||||
if (key == GRUB_TERM_NO_KEY) {
|
||||
status = efi_call_2 (text_input->read_key_stroke, text_input, &key_data);
|
||||
status = text_input->read_key_stroke (text_input, &key_data);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
return GRUB_ERR_EOF;
|
||||
|
||||
@ -391,8 +390,8 @@ grub_console_getwh (struct grub_term_output *term)
|
||||
|
||||
o = grub_efi_system_table->con_out;
|
||||
if (grub_prepare_for_text_output (term) != GRUB_ERR_NONE ||
|
||||
efi_call_4 (o->query_mode, o, o->mode->mode,
|
||||
&columns, &rows) != GRUB_EFI_SUCCESS)
|
||||
o->query_mode (o, o->mode->mode,
|
||||
&columns, &rows) != GRUB_EFI_SUCCESS)
|
||||
{
|
||||
/* Why does this fail? */
|
||||
columns = 80;
|
||||
@ -424,7 +423,7 @@ grub_console_gotoxy (struct grub_term_output *term,
|
||||
return;
|
||||
|
||||
o = grub_efi_system_table->con_out;
|
||||
efi_call_3 (o->set_cursor_position, o, pos.x, pos.y);
|
||||
o->set_cursor_position (o, pos.x, pos.y);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -438,9 +437,9 @@ grub_console_cls (struct grub_term_output *term __attribute__ ((unused)))
|
||||
|
||||
o = grub_efi_system_table->con_out;
|
||||
orig_attr = o->mode->attribute;
|
||||
efi_call_2 (o->set_attributes, o, GRUB_EFI_BACKGROUND_BLACK);
|
||||
efi_call_1 (o->clear_screen, o);
|
||||
efi_call_2 (o->set_attributes, o, orig_attr);
|
||||
o->set_attributes (o, GRUB_EFI_BACKGROUND_BLACK);
|
||||
o->clear_screen (o);
|
||||
o->set_attributes (o, orig_attr);
|
||||
}
|
||||
|
||||
static grub_err_t
|
||||
|
||||
@ -51,16 +51,16 @@ do_real_config (struct grub_serial_port *port)
|
||||
if (port->configured)
|
||||
return;
|
||||
|
||||
status = efi_call_7 (port->interface->set_attributes, port->interface,
|
||||
port->config.speed,
|
||||
0, 0, parities[port->config.parity],
|
||||
port->config.word_len,
|
||||
stop_bits[port->config.stop_bits]);
|
||||
status = port->interface->set_attributes (port->interface,
|
||||
port->config.speed,
|
||||
0, 0, parities[port->config.parity],
|
||||
port->config.word_len,
|
||||
stop_bits[port->config.stop_bits]);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
port->broken = 1;
|
||||
|
||||
status = efi_call_2 (port->interface->set_control_bits, port->interface,
|
||||
port->config.rtscts ? 0x4002 : 0x2);
|
||||
status = port->interface->set_control_bits (port->interface,
|
||||
port->config.rtscts ? 0x4002 : 0x2);
|
||||
|
||||
port->configured = 1;
|
||||
}
|
||||
@ -76,7 +76,7 @@ serial_hw_fetch (struct grub_serial_port *port)
|
||||
if (port->broken)
|
||||
return -1;
|
||||
|
||||
status = efi_call_3 (port->interface->read, port->interface, &bufsize, &c);
|
||||
status = port->interface->read (port->interface, &bufsize, &c);
|
||||
if (status != GRUB_EFI_SUCCESS || bufsize == 0)
|
||||
return -1;
|
||||
|
||||
@ -95,7 +95,7 @@ serial_hw_put (struct grub_serial_port *port, const int c)
|
||||
if (port->broken)
|
||||
return;
|
||||
|
||||
efi_call_3 (port->interface->write, port->interface, &bufsize, &c0);
|
||||
port->interface->write (port->interface, &bufsize, &c0);
|
||||
}
|
||||
|
||||
/* Initialize a serial device. PORT is the port number for a serial device.
|
||||
|
||||
@ -110,7 +110,7 @@ grub_video_gop_fini (void)
|
||||
{
|
||||
if (restore_needed)
|
||||
{
|
||||
efi_call_2 (gop->set_mode, gop, old_mode);
|
||||
gop->set_mode (gop, old_mode);
|
||||
restore_needed = 0;
|
||||
}
|
||||
grub_free (framebuffer.offscreen);
|
||||
@ -274,7 +274,7 @@ grub_video_gop_iterate (int (*hook) (const struct grub_video_mode_info *info, vo
|
||||
struct grub_efi_gop_mode_info *info = NULL;
|
||||
struct grub_video_mode_info mode_info;
|
||||
|
||||
status = efi_call_4 (gop->query_mode, gop, mode, &size, &info);
|
||||
status = gop->query_mode (gop, mode, &size, &info);
|
||||
|
||||
if (status)
|
||||
{
|
||||
@ -400,7 +400,7 @@ grub_video_gop_setup (unsigned int width, unsigned int height,
|
||||
grub_efi_uintn_t size;
|
||||
grub_efi_status_t status;
|
||||
|
||||
status = efi_call_4 (gop->query_mode, gop, mode, &size, &info);
|
||||
status = gop->query_mode (gop, mode, &size, &info);
|
||||
if (status)
|
||||
{
|
||||
info = 0;
|
||||
@ -461,7 +461,7 @@ grub_video_gop_setup (unsigned int width, unsigned int height,
|
||||
old_mode = gop->mode->mode;
|
||||
restore_needed = 1;
|
||||
}
|
||||
efi_call_2 (gop->set_mode, gop, best_mode);
|
||||
gop->set_mode (gop, best_mode);
|
||||
}
|
||||
|
||||
info = gop->mode->info;
|
||||
@ -523,10 +523,10 @@ grub_video_gop_swap_buffers (void)
|
||||
{
|
||||
if (framebuffer.offscreen)
|
||||
{
|
||||
efi_call_10 (gop->blt, gop, framebuffer.offscreen,
|
||||
GRUB_EFI_BLT_BUFFER_TO_VIDEO, 0, 0, 0, 0,
|
||||
framebuffer.mode_info.width, framebuffer.mode_info.height,
|
||||
framebuffer.mode_info.width * 4);
|
||||
gop->blt (gop, framebuffer.offscreen,
|
||||
GRUB_EFI_BLT_BUFFER_TO_VIDEO, 0, 0, 0, 0,
|
||||
framebuffer.mode_info.width, framebuffer.mode_info.height,
|
||||
framebuffer.mode_info.width * 4);
|
||||
}
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
@ -613,7 +613,7 @@ GRUB_MOD_FINI(efi_gop)
|
||||
{
|
||||
if (restore_needed)
|
||||
{
|
||||
efi_call_2 (gop->set_mode, gop, old_mode);
|
||||
gop->set_mode (gop, old_mode);
|
||||
restore_needed = 0;
|
||||
}
|
||||
if (gop)
|
||||
|
||||
@ -186,13 +186,13 @@ check_protocol (void)
|
||||
grub_uint32_t width, height, depth, rate, pixel;
|
||||
int ret;
|
||||
|
||||
if (efi_call_5 (c->get_mode, c, &width, &height, &depth, &rate))
|
||||
if (c->get_mode (c, &width, &height, &depth, &rate))
|
||||
return 0;
|
||||
|
||||
grub_efi_set_text_mode (0);
|
||||
pixel = RGB_MAGIC;
|
||||
efi_call_10 (c->blt, c, (struct grub_efi_uga_pixel *) &pixel,
|
||||
GRUB_EFI_UGA_VIDEO_FILL, 0, 0, 0, 0, 1, height, 0);
|
||||
c->blt (c, (struct grub_efi_uga_pixel *) &pixel,
|
||||
GRUB_EFI_UGA_VIDEO_FILL, 0, 0, 0, 0, 1, height, 0);
|
||||
ret = find_framebuf (&uga_fb, &uga_pitch);
|
||||
grub_efi_set_text_mode (1);
|
||||
|
||||
@ -236,7 +236,7 @@ grub_video_uga_setup (unsigned int width, unsigned int height,
|
||||
grub_uint32_t d;
|
||||
grub_uint32_t r;
|
||||
|
||||
if ((! efi_call_5 (uga->get_mode, uga, &w, &h, &d, &r)) &&
|
||||
if ((! uga->get_mode (uga, &w, &h, &d, &r)) &&
|
||||
((! width) || (width == w)) &&
|
||||
((! height) || (height == h)) &&
|
||||
((! depth) || (depth == d)))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user