Split ARM and ARM64 architectures. Details: - CONFIG_ARM64 is decoupled from CONFIG_ARM (not a subset anymore) - Arch and include AArch64 files are in a dedicated directory (arch/arm64 and include/arch/arm64) - AArch64 boards and SoC are moved to soc/arm64 and boards/arm64 - AArch64-specific DTS files are moved to dts/arm64 - The A72 support for the bcm_vk/viper board is moved in the boards/bcm_vk/viper directory Signed-off-by: Carlo Caione <ccaione@baylibre.com>
35 lines
623 B
C
35 lines
623 B
C
/*
|
|
* Copyright (c) 2019 Carlo Caione <ccaione@baylibre.com>
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* @file
|
|
* @brief Software interrupts utility code - ARM64 implementation
|
|
*/
|
|
|
|
#include <kernel.h>
|
|
#include <irq_offload.h>
|
|
#include <exc.h>
|
|
|
|
volatile irq_offload_routine_t offload_routine;
|
|
static const void *offload_param;
|
|
|
|
void z_irq_do_offload(void)
|
|
{
|
|
offload_routine(offload_param);
|
|
}
|
|
|
|
void arch_irq_offload(irq_offload_routine_t routine, const void *parameter)
|
|
{
|
|
k_sched_lock();
|
|
offload_routine = routine;
|
|
offload_param = parameter;
|
|
|
|
z_arm64_offload();
|
|
|
|
offload_routine = NULL;
|
|
k_sched_unlock();
|
|
}
|