kernel: add arch abstraction for irq_offload()

This makes it clearer that this is an API that is expected
to be implemented at the architecture level.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
Andrew Boie 2019-09-30 15:58:11 -07:00 committed by Ioannis Glaropoulos
commit 89d4c6928e
11 changed files with 16 additions and 11 deletions

View file

@ -20,7 +20,7 @@ void z_irq_do_offload(void)
offload_routine(offload_param);
}
void irq_offload(irq_offload_routine_t routine, void *parameter)
void z_arch_irq_offload(irq_offload_routine_t routine, void *parameter)
{
unsigned int key;

View file

@ -20,7 +20,7 @@ void z_irq_do_offload(void)
offload_routine(offload_param);
}
void irq_offload(irq_offload_routine_t routine, void *parameter)
void z_arch_irq_offload(irq_offload_routine_t routine, void *parameter)
{
#if defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE) && defined(CONFIG_ASSERT)
/* ARMv6-M/ARMv8-M Baseline HardFault if you make a SVC call with

View file

@ -29,7 +29,7 @@ void z_irq_do_offload(void)
tmp((void *)offload_param);
}
void irq_offload(irq_offload_routine_t routine, void *parameter)
void z_arch_irq_offload(irq_offload_routine_t routine, void *parameter)
{
unsigned int key;

View file

@ -31,7 +31,7 @@ void z_irq_do_offload(void)
tmp((void *)offload_param);
}
void irq_offload(irq_offload_routine_t routine, void *parameter)
void z_arch_irq_offload(irq_offload_routine_t routine, void *parameter)
{
unsigned int key;

View file

@ -25,7 +25,7 @@ void z_irq_do_offload(void)
offload_routine(offload_param);
}
void irq_offload(irq_offload_routine_t routine, void *parameter)
void z_arch_irq_offload(irq_offload_routine_t routine, void *parameter)
{
unsigned int key;

View file

@ -89,7 +89,7 @@ int z_arch_irq_connect_dynamic(unsigned int irq, unsigned int priority,
#ifdef CONFIG_IRQ_OFFLOAD
#include <irq_offload.h>
void irq_offload(irq_offload_routine_t routine, void *parameter)
void z_arch_irq_offload(irq_offload_routine_t routine, void *parameter)
{
u32_t key;

View file

@ -107,7 +107,7 @@ static void irq_offload_handler(void *arg, int err)
offload_fn(offload_arg);
}
void irq_offload(irq_offload_routine_t fn, void *arg)
void z_arch_irq_offload(irq_offload_routine_t fn, void *arg)
{
offload_fn = fn;
offload_arg = arg;

View file

@ -23,7 +23,7 @@ void z_irq_do_offload(void *unused)
offload_routine(offload_param);
}
void irq_offload(irq_offload_routine_t routine, void *parameter)
void z_arch_irq_offload(irq_offload_routine_t routine, void *parameter)
{
IRQ_CONNECT(CONFIG_IRQ_OFFLOAD_INTNUM, XCHAL_EXCM_LEVEL,
z_irq_do_offload, NULL, 0);

View file

@ -329,7 +329,7 @@ static void offload_sw_irq_handler(void *a)
*
* Raise the SW IRQ assigned to handled this
*/
void irq_offload(irq_offload_routine_t routine, void *parameter)
void z_arch_irq_offload(irq_offload_routine_t routine, void *parameter)
{
off_routine = routine;
off_parameter = parameter;

View file

@ -393,7 +393,7 @@ static void offload_sw_irq_handler(void *a)
*
* Raise the SW IRQ assigned to handled this
*/
void irq_offload(irq_offload_routine_t routine, void *parameter)
void z_arch_irq_offload(irq_offload_routine_t routine, void *parameter)
{
off_routine = routine;
off_parameter = parameter;

View file

@ -17,6 +17,8 @@ extern "C" {
typedef void (*irq_offload_routine_t)(void *parameter);
void z_arch_irq_offload(irq_offload_routine_t routine, void *parameter);
/**
* @brief Run a function in interrupt context
*
@ -29,7 +31,10 @@ typedef void (*irq_offload_routine_t)(void *parameter);
* @param parameter Argument to pass to the function when it is run as an
* interrupt
*/
void irq_offload(irq_offload_routine_t routine, void *parameter);
static inline void irq_offload(irq_offload_routine_t routine, void *parameter)
{
z_arch_irq_offload(routine, parameter);
}
#ifdef __cplusplus
}