[RFC 16/22] efi_loader: add efi_remove_handle()

AKASHI Takahiro
2021-10-01T05:08:48Z

This function is a counterpart of efi_add_handle() and will be used
in order to remove an efi_disk object in a later patch.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
---
include/efi_loader.h | 2 ++
lib/efi_loader/efi_boottime.c | 8 ++++++++
2 files changed, 10 insertions(+)

diff --git a/include/efi_loader.h b/include/efi_loader.h
index cfbe1fe659ef..50f4119dcdfb 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -579,6 +579,8 @@ void efi_save_gd(void);
void efi_runtime_relocate(ulong offset, struct efi_mem_desc *map);
/* Add a new object to the object list. */
void efi_add_handle(efi_handle_t obj);
+/* Remove a object from the object list. */
+void efi_remove_handle(efi_handle_t obj);
/* Create handle */
efi_status_t efi_create_handle(efi_handle_t *handle);
/* Delete handle */
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index f0283b539e46..b2503b74233b 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -503,6 +503,14 @@ void efi_add_handle(efi_handle_t handle)
list_add_tail(&handle->link, &efi_obj_list);
}

+void efi_remove_handle(efi_handle_t handle)
+{
+ if (!handle)
+ return;
+
+ list_del(&handle->link);
+}
+
/**
* efi_create_handle() - create handle
* @handle: new handle
--
2.33.0