mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 12:54:37 +00:00
efi_loader: mark started images
In UnloadImage() we need to know if an image is already started. Add a field to the handle structure identifying loaded and started images. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
parent
8dfb5e6e21
commit
cd73aba656
2 changed files with 15 additions and 0 deletions
|
@ -179,6 +179,18 @@ struct efi_handler {
|
|||
struct list_head open_infos;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum efi_object_type - type of EFI object
|
||||
*
|
||||
* In UnloadImage we must be able to identify if the handle relates to a
|
||||
* started image.
|
||||
*/
|
||||
enum efi_object_type {
|
||||
EFI_OBJECT_TYPE_UNDEFINED = 0,
|
||||
EFI_OBJECT_TYPE_LOADED_IMAGE,
|
||||
EFI_OBJECT_TYPE_STARTED_IMAGE,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct efi_object - dereferenced EFI handle
|
||||
*
|
||||
|
@ -201,6 +213,7 @@ struct efi_object {
|
|||
struct list_head link;
|
||||
/* The list of protocols */
|
||||
struct list_head protocols;
|
||||
enum efi_object_type type;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -1554,6 +1554,7 @@ efi_status_t efi_setup_loaded_image(struct efi_device_path *device_path,
|
|||
free(info);
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
obj->header.type = EFI_OBJECT_TYPE_LOADED_IMAGE;
|
||||
|
||||
/* Add internal object to object list */
|
||||
efi_add_handle(&obj->header);
|
||||
|
@ -2678,6 +2679,7 @@ efi_status_t EFIAPI efi_start_image(efi_handle_t image_handle,
|
|||
}
|
||||
|
||||
current_image = image_handle;
|
||||
image_obj->header.type = EFI_OBJECT_TYPE_STARTED_IMAGE;
|
||||
EFI_PRINT("Jumping into 0x%p\n", image_obj->entry);
|
||||
ret = EFI_CALL(image_obj->entry(image_handle, &systab));
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue