From e23c8e81ebc97bbe9d4037b1324994446c2bc6c4 Mon Sep 17 00:00:00 2001 From: Masahisa Kojima Date: Fri, 10 Nov 2023 13:25:38 +0900 Subject: efi_loader: add missing const classifier for event service const classifier is missing in EventGroup parameter of CreateEventEx(). Fix it to remove the compiler warning. NotifyContext parameter of CreateEventEx() is also defined with const in UEFI specification, but NotifyContext parameter of CreateEvent() is defined without const. Since current implementation calls the common efi_create_event() function from both CreateEventEx() and CreateEvent() services, NotifyContext parameter leaves as is. Signed-off-by: Masahisa Kojima Reviewed-by: Ilias Apalodimas Signed-off-by: Ilias Apalodimas --- lib/efi_loader/efi_boottime.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/efi_loader/efi_boottime.c') diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 0b7579cb5a..f9b10a9763 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -712,7 +712,7 @@ efi_status_t efi_create_event(uint32_t type, efi_uintn_t notify_tpl, void (EFIAPI *notify_function) ( struct efi_event *event, void *context), - void *notify_context, efi_guid_t *group, + void *notify_context, const efi_guid_t *group, struct efi_event **event) { struct efi_event *evt; @@ -790,7 +790,7 @@ efi_status_t EFIAPI efi_create_event_ex(uint32_t type, efi_uintn_t notify_tpl, struct efi_event *event, void *context), void *notify_context, - efi_guid_t *event_group, + const efi_guid_t *event_group, struct efi_event **event) { efi_status_t ret; -- cgit v1.2.3 From e0d1a1ea68c47b29d93bfc375d984fe0aee21093 Mon Sep 17 00:00:00 2001 From: Masahisa Kojima Date: Fri, 10 Nov 2023 13:25:39 +0900 Subject: efi_loader: add return to efibootmgr event group When the image loaded by efibootmgr returns, efibootmgr needs to clean the resources. Adding the event of returning to efibootmgr is useful to simplify the implementation. Signed-off-by: Masahisa Kojima Reviewed-by: Ilias Apalodimas Signed-off-by: Ilias Apalodimas --- cmd/bootefi.c | 12 ++++++++++++ include/efi_api.h | 3 +++ include/efi_loader.h | 2 ++ lib/efi_loader/efi_boottime.c | 3 +++ 4 files changed, 20 insertions(+) (limited to 'lib/efi_loader/efi_boottime.c') diff --git a/cmd/bootefi.c b/cmd/bootefi.c index 20e5c94a33..4d74969ad6 100644 --- a/cmd/bootefi.c +++ b/cmd/bootefi.c @@ -356,6 +356,7 @@ static efi_status_t do_bootefi_exec(efi_handle_t handle, void *load_options) efi_status_t ret; efi_uintn_t exit_data_size = 0; u16 *exit_data = NULL; + struct efi_event *evt; /* On ARM switch from EL3 or secure mode to EL2 or non-secure mode */ switch_to_non_secure_mode(); @@ -394,6 +395,17 @@ out: log_err("Failed to remove loadfile2 for initrd\n"); } + /* Notify EFI_EVENT_GROUP_RETURN_TO_EFIBOOTMGR event group. */ + list_for_each_entry(evt, &efi_events, link) { + if (evt->group && + !guidcmp(evt->group, + &efi_guid_event_group_return_to_efibootmgr)) { + efi_signal_event(evt); + EFI_CALL(systab.boottime->close_event(evt)); + break; + } + } + /* Control is returned to U-Boot, disable EFI watchdog */ efi_set_watchdog(0); diff --git a/include/efi_api.h b/include/efi_api.h index c2d6964467..0e92cb8a7f 100644 --- a/include/efi_api.h +++ b/include/efi_api.h @@ -404,6 +404,9 @@ struct efi_runtime_services { #define EFI_EVENT_GROUP_RESET_SYSTEM \ EFI_GUID(0x62da6a56, 0x13fb, 0x485a, 0xa8, 0xda, \ 0xa3, 0xdd, 0x79, 0x12, 0xcb, 0x6b) +#define EFI_EVENT_GROUP_RETURN_TO_EFIBOOTMGR \ + EFI_GUID(0xb4a40fe6, 0x9149, 0x4f29, 0x94, 0x47, \ + 0x49, 0x38, 0x7a, 0x7f, 0xab, 0x87) /* EFI Configuration Table and GUID definitions */ #define NULL_GUID \ diff --git a/include/efi_loader.h b/include/efi_loader.h index 1fd7b0b73c..664dae28f8 100644 --- a/include/efi_loader.h +++ b/include/efi_loader.h @@ -289,6 +289,8 @@ extern const efi_guid_t efi_guid_event_group_memory_map_change; extern const efi_guid_t efi_guid_event_group_ready_to_boot; /* event group ResetSystem() invoked (before ExitBootServices) */ extern const efi_guid_t efi_guid_event_group_reset_system; +/* event group return to efibootmgr */ +extern const efi_guid_t efi_guid_event_group_return_to_efibootmgr; /* GUID of the device tree table */ extern const efi_guid_t efi_guid_fdt; extern const efi_guid_t efi_guid_loaded_image; diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index f9b10a9763..3767fa2db4 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -90,6 +90,9 @@ const efi_guid_t efi_guid_event_group_ready_to_boot = /* event group ResetSystem() invoked (before ExitBootServices) */ const efi_guid_t efi_guid_event_group_reset_system = EFI_EVENT_GROUP_RESET_SYSTEM; +/* event group return to efibootmgr */ +const efi_guid_t efi_guid_event_group_return_to_efibootmgr = + EFI_EVENT_GROUP_RETURN_TO_EFIBOOTMGR; /* GUIDs of the Load File and Load File2 protocols */ const efi_guid_t efi_guid_load_file_protocol = EFI_LOAD_FILE_PROTOCOL_GUID; const efi_guid_t efi_guid_load_file2_protocol = EFI_LOAD_FILE2_PROTOCOL_GUID; -- cgit v1.2.3 From c38cb227d39f8ce9983df8051f31dcc8466f311e Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Thu, 14 Dec 2023 13:16:55 -0500 Subject: efi_loader: Remove We largely do not need in these files, so drop it. The only exception here is that efi_freestanding.c needs and had been getting that via . Reviewed-by: Simon Glass Signed-off-by: Tom Rini --- lib/efi_loader/dtbdump.c | 1 - lib/efi_loader/efi_acpi.c | 1 - lib/efi_loader/efi_bootmgr.c | 1 - lib/efi_loader/efi_boottime.c | 1 - lib/efi_loader/efi_capsule.c | 1 - lib/efi_loader/efi_conformance.c | 1 - lib/efi_loader/efi_console.c | 1 - lib/efi_loader/efi_device_path.c | 1 - lib/efi_loader/efi_device_path_to_text.c | 1 - lib/efi_loader/efi_device_path_utilities.c | 1 - lib/efi_loader/efi_disk.c | 1 - lib/efi_loader/efi_dt_fixup.c | 1 - lib/efi_loader/efi_esrt.c | 1 - lib/efi_loader/efi_file.c | 1 - lib/efi_loader/efi_firmware.c | 1 - lib/efi_loader/efi_freestanding.c | 2 +- lib/efi_loader/efi_gop.c | 1 - lib/efi_loader/efi_helper.c | 1 - lib/efi_loader/efi_hii.c | 1 - lib/efi_loader/efi_hii_config.c | 1 - lib/efi_loader/efi_image_loader.c | 1 - lib/efi_loader/efi_load_initrd.c | 1 - lib/efi_loader/efi_load_options.c | 1 - lib/efi_loader/efi_memory.c | 1 - lib/efi_loader/efi_net.c | 1 - lib/efi_loader/efi_riscv.c | 1 - lib/efi_loader/efi_rng.c | 1 - lib/efi_loader/efi_root_node.c | 1 - lib/efi_loader/efi_runtime.c | 1 - lib/efi_loader/efi_setup.c | 1 - lib/efi_loader/efi_signature.c | 1 - lib/efi_loader/efi_smbios.c | 1 - lib/efi_loader/efi_string.c | 1 - lib/efi_loader/efi_tcg2.c | 1 - lib/efi_loader/efi_unicode_collation.c | 1 - lib/efi_loader/efi_var_common.c | 1 - lib/efi_loader/efi_var_file.c | 1 - lib/efi_loader/efi_var_mem.c | 1 - lib/efi_loader/efi_variable.c | 1 - lib/efi_loader/efi_variable_tee.c | 1 - lib/efi_loader/efi_watchdog.c | 1 - lib/efi_loader/initrddump.c | 1 - 42 files changed, 1 insertion(+), 42 deletions(-) (limited to 'lib/efi_loader/efi_boottime.c') diff --git a/lib/efi_loader/dtbdump.c b/lib/efi_loader/dtbdump.c index 3ce2a07f9e..5f39cf22da 100644 --- a/lib/efi_loader/dtbdump.c +++ b/lib/efi_loader/dtbdump.c @@ -6,7 +6,6 @@ * to a file. */ -#include #include #include #include diff --git a/lib/efi_loader/efi_acpi.c b/lib/efi_loader/efi_acpi.c index f755af76f8..67bbd2a01c 100644 --- a/lib/efi_loader/efi_acpi.c +++ b/lib/efi_loader/efi_acpi.c @@ -5,7 +5,6 @@ * Copyright (C) 2018, Bin Meng */ -#include #include #include #include diff --git a/lib/efi_loader/efi_bootmgr.c b/lib/efi_loader/efi_bootmgr.c index e815fa06c8..a032d3ae04 100644 --- a/lib/efi_loader/efi_bootmgr.c +++ b/lib/efi_loader/efi_bootmgr.c @@ -11,7 +11,6 @@ #include #include -#include #include #include #include diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 644bebee6b..c579d89211 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -5,7 +5,6 @@ * Copyright (c) 2016 Alexander Graf */ -#include #include #include #include diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c index af8a2ee940..de0d49ebeb 100644 --- a/lib/efi_loader/efi_capsule.c +++ b/lib/efi_loader/efi_capsule.c @@ -8,7 +8,6 @@ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_conformance.c b/lib/efi_loader/efi_conformance.c index 0ca26f57a7..167067e26c 100644 --- a/lib/efi_loader/efi_conformance.c +++ b/lib/efi_loader/efi_conformance.c @@ -5,7 +5,6 @@ * Copyright (C) 2022 Arm Ltd. */ -#include #include #include #include diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c index a2d137d7a9..03dece51ae 100644 --- a/lib/efi_loader/efi_console.c +++ b/lib/efi_loader/efi_console.c @@ -8,7 +8,6 @@ #define LOG_CATEGORY LOGC_EFI #include -#include #include #include #include diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c index ed7214f3a3..8dbd8105ae 100644 --- a/lib/efi_loader/efi_device_path.c +++ b/lib/efi_loader/efi_device_path.c @@ -7,7 +7,6 @@ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_device_path_to_text.c b/lib/efi_loader/efi_device_path_to_text.c index 8c76d8be60..0c7b30a26e 100644 --- a/lib/efi_loader/efi_device_path_to_text.c +++ b/lib/efi_loader/efi_device_path_to_text.c @@ -5,7 +5,6 @@ * Copyright (c) 2017 Heinrich Schuchardt */ -#include #include #include #include diff --git a/lib/efi_loader/efi_device_path_utilities.c b/lib/efi_loader/efi_device_path_utilities.c index a07d9bab3a..844d8acd67 100644 --- a/lib/efi_loader/efi_device_path_utilities.c +++ b/lib/efi_loader/efi_device_path_utilities.c @@ -5,7 +5,6 @@ * Copyright (c) 2017 Leif Lindholm */ -#include #include const efi_guid_t efi_guid_device_path_utilities_protocol = diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c index b808a7fe62..ed997008c4 100644 --- a/lib/efi_loader/efi_disk.c +++ b/lib/efi_loader/efi_disk.c @@ -7,7 +7,6 @@ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_dt_fixup.c b/lib/efi_loader/efi_dt_fixup.c index a0c889cf98..9886e6897c 100644 --- a/lib/efi_loader/efi_dt_fixup.c +++ b/lib/efi_loader/efi_dt_fixup.c @@ -5,7 +5,6 @@ * Copyright (c) 2020 Heinrich Schuchardt */ -#include #include #include #include diff --git a/lib/efi_loader/efi_esrt.c b/lib/efi_loader/efi_esrt.c index 7f46d651e6..dafd447b6d 100644 --- a/lib/efi_loader/efi_esrt.c +++ b/lib/efi_loader/efi_esrt.c @@ -5,7 +5,6 @@ * Copyright (C) 2021 Arm Ltd. */ -#include #include #include #include diff --git a/lib/efi_loader/efi_file.c b/lib/efi_loader/efi_file.c index 3c56cebf96..222001d6a3 100644 --- a/lib/efi_loader/efi_file.c +++ b/lib/efi_loader/efi_file.c @@ -5,7 +5,6 @@ * Copyright (c) 2017 Rob Clark */ -#include #include #include #include diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c index 9abb29f1df..1fde1885e3 100644 --- a/lib/efi_loader/efi_firmware.c +++ b/lib/efi_loader/efi_firmware.c @@ -6,7 +6,6 @@ * Author: AKASHI Takahiro */ -#include #include #include #include diff --git a/lib/efi_loader/efi_freestanding.c b/lib/efi_loader/efi_freestanding.c index 4b65fc64dd..b2786095c3 100644 --- a/lib/efi_loader/efi_freestanding.c +++ b/lib/efi_loader/efi_freestanding.c @@ -8,7 +8,7 @@ * memset(), and memcmp(). */ -#include +#include /** * memcmp() - compare memory areas diff --git a/lib/efi_loader/efi_gop.c b/lib/efi_loader/efi_gop.c index a09db31eb4..41e12fa724 100644 --- a/lib/efi_loader/efi_gop.c +++ b/lib/efi_loader/efi_gop.c @@ -5,7 +5,6 @@ * Copyright (c) 2016 Alexander Graf */ -#include #include #include #include diff --git a/lib/efi_loader/efi_helper.c b/lib/efi_loader/efi_helper.c index cdfd16ea77..17f27ca1a0 100644 --- a/lib/efi_loader/efi_helper.c +++ b/lib/efi_loader/efi_helper.c @@ -4,7 +4,6 @@ */ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_hii.c b/lib/efi_loader/efi_hii.c index 3b54ecb11a..74e402df1b 100644 --- a/lib/efi_loader/efi_hii.c +++ b/lib/efi_loader/efi_hii.c @@ -6,7 +6,6 @@ * Copyright (c) 2018 AKASHI Takahiro, Linaro Limited */ -#include #include #include #include diff --git a/lib/efi_loader/efi_hii_config.c b/lib/efi_loader/efi_hii_config.c index 31b0c97eb2..ae0f3ecd3b 100644 --- a/lib/efi_loader/efi_hii_config.c +++ b/lib/efi_loader/efi_hii_config.c @@ -10,7 +10,6 @@ * the Makefile. */ -#include #include const efi_guid_t efi_guid_hii_config_routing_protocol diff --git a/lib/efi_loader/efi_image_loader.c b/lib/efi_loader/efi_image_loader.c index 97547571ce..6042436032 100644 --- a/lib/efi_loader/efi_image_loader.c +++ b/lib/efi_loader/efi_image_loader.c @@ -9,7 +9,6 @@ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_load_initrd.c b/lib/efi_loader/efi_load_initrd.c index 193433782c..2b467b5548 100644 --- a/lib/efi_loader/efi_load_initrd.c +++ b/lib/efi_loader/efi_load_initrd.c @@ -4,7 +4,6 @@ */ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_load_options.c b/lib/efi_loader/efi_load_options.c index 5f62184da1..01984235e2 100644 --- a/lib/efi_loader/efi_load_options.c +++ b/lib/efi_loader/efi_load_options.c @@ -7,7 +7,6 @@ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c index f752703b43..edfad2d95a 100644 --- a/lib/efi_loader/efi_memory.c +++ b/lib/efi_loader/efi_memory.c @@ -7,7 +7,6 @@ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_net.c b/lib/efi_loader/efi_net.c index 96a5bcca27..7cd536705f 100644 --- a/lib/efi_loader/efi_net.c +++ b/lib/efi_loader/efi_net.c @@ -15,7 +15,6 @@ * Reset(): EfiSimpleNetworkInitialized -> EfiSimpleNetworkInitialized */ -#include #include #include #include diff --git a/lib/efi_loader/efi_riscv.c b/lib/efi_loader/efi_riscv.c index 064172755b..4d398c5be3 100644 --- a/lib/efi_loader/efi_riscv.c +++ b/lib/efi_loader/efi_riscv.c @@ -7,7 +7,6 @@ */ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_rng.c b/lib/efi_loader/efi_rng.c index bb11d8d0e0..9bad7ed693 100644 --- a/lib/efi_loader/efi_rng.c +++ b/lib/efi_loader/efi_rng.c @@ -5,7 +5,6 @@ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_root_node.c b/lib/efi_loader/efi_root_node.c index 108c14b95b..4d7fb74b5d 100644 --- a/lib/efi_loader/efi_root_node.c +++ b/lib/efi_loader/efi_root_node.c @@ -5,7 +5,6 @@ * Copyright (c) 2018 Heinrich Schuchardt */ -#include #include #include #include diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c index bf54d6ad87..18da6892e7 100644 --- a/lib/efi_loader/efi_runtime.c +++ b/lib/efi_loader/efi_runtime.c @@ -5,7 +5,6 @@ * Copyright (c) 2016 Alexander Graf */ -#include #include #include #include diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c index 37359a77bb..a610e032d2 100644 --- a/lib/efi_loader/efi_setup.c +++ b/lib/efi_loader/efi_setup.c @@ -7,7 +7,6 @@ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_signature.c b/lib/efi_loader/efi_signature.c index 742d891940..f338e73275 100644 --- a/lib/efi_loader/efi_signature.c +++ b/lib/efi_loader/efi_signature.c @@ -4,7 +4,6 @@ * Copyright (c) 2019 Linaro Limited, Author: AKASHI Takahiro */ -#include #include #include #include diff --git a/lib/efi_loader/efi_smbios.c b/lib/efi_loader/efi_smbios.c index 0fbf51b98d..bbb8421ce1 100644 --- a/lib/efi_loader/efi_smbios.c +++ b/lib/efi_loader/efi_smbios.c @@ -7,7 +7,6 @@ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_string.c b/lib/efi_loader/efi_string.c index e21e09c946..413e329b60 100644 --- a/lib/efi_loader/efi_string.c +++ b/lib/efi_loader/efi_string.c @@ -5,7 +5,6 @@ * Copyright (c) 2020 AKASHI Takahiro, Linaro Limited */ -#include #include #include #include diff --git a/lib/efi_loader/efi_tcg2.c b/lib/efi_loader/efi_tcg2.c index 463ea4c154..8db35d0b3c 100644 --- a/lib/efi_loader/efi_tcg2.c +++ b/lib/efi_loader/efi_tcg2.c @@ -8,7 +8,6 @@ */ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_unicode_collation.c b/lib/efi_loader/efi_unicode_collation.c index c4c7572063..2b6912c509 100644 --- a/lib/efi_loader/efi_unicode_collation.c +++ b/lib/efi_loader/efi_unicode_collation.c @@ -5,7 +5,6 @@ * Copyright (c) 2018 Heinrich Schuchardt */ -#include #include #include #include diff --git a/lib/efi_loader/efi_var_common.c b/lib/efi_loader/efi_var_common.c index ad50bffd2b..d528747f3f 100644 --- a/lib/efi_loader/efi_var_common.c +++ b/lib/efi_loader/efi_var_common.c @@ -6,7 +6,6 @@ * Copyright (c) 2020 Linaro Limited, Author: AKASHI Takahiro */ -#include #include #include #include diff --git a/lib/efi_loader/efi_var_file.c b/lib/efi_loader/efi_var_file.c index d7dba05071..532b6b40ee 100644 --- a/lib/efi_loader/efi_var_file.c +++ b/lib/efi_loader/efi_var_file.c @@ -7,7 +7,6 @@ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_var_mem.c b/lib/efi_loader/efi_var_mem.c index 5fa7dcb8d3..6c21cec5d4 100644 --- a/lib/efi_loader/efi_var_mem.c +++ b/lib/efi_loader/efi_var_mem.c @@ -5,7 +5,6 @@ * Copyright (c) 2020, Heinrich Schuchardt */ -#include #include #include #include diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c index be95ed44e6..40f7a0fb10 100644 --- a/lib/efi_loader/efi_variable.c +++ b/lib/efi_loader/efi_variable.c @@ -7,7 +7,6 @@ #define LOG_CATEGORY LOGC_EFI -#include #include #include #include diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c index 09d03c0eee..dde135fd9f 100644 --- a/lib/efi_loader/efi_variable_tee.c +++ b/lib/efi_loader/efi_variable_tee.c @@ -10,7 +10,6 @@ * Abdellatif El Khlifi */ -#include #if CONFIG_IS_ENABLED(ARM_FFA_TRANSPORT) #include #endif diff --git a/lib/efi_loader/efi_watchdog.c b/lib/efi_loader/efi_watchdog.c index d741076dcd..f5fb911771 100644 --- a/lib/efi_loader/efi_watchdog.c +++ b/lib/efi_loader/efi_watchdog.c @@ -5,7 +5,6 @@ * Copyright (c) 2017 Heinrich Schuchardt */ -#include #include /* Conversion factor from seconds to multiples of 100ns */ diff --git a/lib/efi_loader/initrddump.c b/lib/efi_loader/initrddump.c index 5b470f4819..0004b6b042 100644 --- a/lib/efi_loader/initrddump.c +++ b/lib/efi_loader/initrddump.c @@ -9,7 +9,6 @@ * clearing of the screen. */ -#include #include #include -- cgit v1.2.3