mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-15 00:54:22 +00:00
feat(handoff): add func to check and init a tl
Add a function to check whether a transfer list has been initialized at the input address. If not, initialize a transfer list at the specified location with the given size. This is to help ensure that we don't accidently overwrite a transfer list that's been passed from a previous stage. Change-Id: Ic5906626df09d3801435488e258490765e8f81eb Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
This commit is contained in:
parent
523c78704f
commit
f1d9459335
2 changed files with 20 additions and 0 deletions
|
@ -110,6 +110,7 @@ struct __attribute__((packed)) transfer_list_entry {
|
|||
CASSERT(sizeof(struct transfer_list_entry) == U(0x8), assert_transfer_list_entry_size);
|
||||
|
||||
void transfer_list_dump(struct transfer_list_header *tl);
|
||||
struct transfer_list_header *transfer_list_ensure(void *addr, size_t size);
|
||||
entry_point_info_t *
|
||||
transfer_list_set_handoff_args(struct transfer_list_header *tl,
|
||||
entry_point_info_t *ep_info);
|
||||
|
|
|
@ -521,3 +521,22 @@ void *transfer_list_entry_data(struct transfer_list_entry *entry)
|
|||
}
|
||||
return (uint8_t *)entry + entry->hdr_size;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Verifies that the transfer list has not already been initialized, then
|
||||
* initializes it at the specified memory location.
|
||||
*
|
||||
* Return pointer to the transfer list or NULL on error
|
||||
* *****************************************************************************/
|
||||
struct transfer_list_header *transfer_list_ensure(void *addr, size_t size)
|
||||
{
|
||||
struct transfer_list_header *tl = NULL;
|
||||
|
||||
if (transfer_list_check_header(addr) == TL_OPS_ALL) {
|
||||
return (struct transfer_list_header *)addr;
|
||||
}
|
||||
|
||||
tl = transfer_list_init((void *)addr, size);
|
||||
|
||||
return tl;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue