123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /*
- * Copyright (c) 2013-2021, Arm Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- #include <assert.h>
- #include <bl31/bl31.h>
- #include <common/bl_common.h>
- #include <context.h>
- #include <lib/el3_runtime/context_mgmt.h>
- #include <lib/el3_runtime/cpu_data.h>
- /*******************************************************************************
- * This function returns a pointer to the most recent 'cpu_context' structure
- * for the calling CPU that was set as the context for the specified security
- * state. NULL is returned if no such structure has been specified.
- ******************************************************************************/
- void *cm_get_context(uint32_t security_state)
- {
- assert(sec_state_is_valid(security_state));
- return get_cpu_data(cpu_context[get_cpu_context_index(security_state)]);
- }
- /*******************************************************************************
- * This function sets the pointer to the current 'cpu_context' structure for the
- * specified security state for the calling CPU
- ******************************************************************************/
- void cm_set_context(void *context, uint32_t security_state)
- {
- assert(sec_state_is_valid(security_state));
- set_cpu_data(cpu_context[get_cpu_context_index(security_state)],
- context);
- }
- /*******************************************************************************
- * This function returns a pointer to the most recent 'cpu_context' structure
- * for the CPU identified by `cpu_idx` that was set as the context for the
- * specified security state. NULL is returned if no such structure has been
- * specified.
- ******************************************************************************/
- void *cm_get_context_by_index(unsigned int cpu_idx,
- unsigned int security_state)
- {
- assert(sec_state_is_valid(security_state));
- return get_cpu_data_by_index(cpu_idx,
- cpu_context[get_cpu_context_index(security_state)]);
- }
- /*******************************************************************************
- * This function sets the pointer to the current 'cpu_context' structure for the
- * specified security state for the CPU identified by CPU index.
- ******************************************************************************/
- void cm_set_context_by_index(unsigned int cpu_idx, void *context,
- unsigned int security_state)
- {
- assert(sec_state_is_valid(security_state));
- set_cpu_data_by_index(cpu_idx,
- cpu_context[get_cpu_context_index(security_state)],
- context);
- }
|