libmetal
Loading...
Searching...
No Matches
softirq.c File Reference
#include <metal/atomic.h>
#include <metal/errno.h>
#include <metal/irq.h>
#include <metal/irq_controller.h>
#include <metal/log.h>
#include <metal/sys.h>
#include <metal/softirq.h>
#include <metal/utilities.h>
#include <string.h>

Macros

#define METAL_SOFTIRQ_NUM   64
#define METAL_SOFTIRQ_ARRAY_DECLARE(num)

Functions

static void metal_softirq_set_enable (struct metal_irq_controller *cntr, int irq, unsigned int enable)
static METAL_IRQ_CONTROLLER_DECLARE (metal_softirq_cntr, METAL_IRQ_ANY, METAL_SOFTIRQ_NUM, NULL, metal_softirq_set_enable, NULL, metal_softirqs)
void metal_softirq_set (int irq)
 metal_softirq_set
int metal_softirq_init (void)
 metal_softirq_init
int metal_softirq_allocate (int num)
 metal_softirq_allocate
void metal_softirq_dispatch (void)
 metal_softirq_dispatch

Variables

static int metal_softirq_avail

Macro Definition Documentation

◆ METAL_SOFTIRQ_ARRAY_DECLARE

#define METAL_SOFTIRQ_ARRAY_DECLARE ( num)
Value:
static const int metal_softirq_num = num; \
static struct metal_irq metal_softirqs[num]; \
static atomic_char metal_softirq_pending[num]; \
static atomic_char metal_softirq_enabled[num];
char atomic_char
Definition atomic.h:20
Definition irq_controller.h:60

◆ METAL_SOFTIRQ_NUM

#define METAL_SOFTIRQ_NUM   64

Function Documentation

◆ METAL_IRQ_CONTROLLER_DECLARE()

METAL_IRQ_CONTROLLER_DECLARE ( metal_softirq_cntr ,
METAL_IRQ_ANY ,
METAL_SOFTIRQ_NUM ,
NULL ,
metal_softirq_set_enable ,
NULL ,
metal_softirqs  )
static

◆ metal_softirq_set_enable()

void metal_softirq_set_enable ( struct metal_irq_controller * cntr,
int irq,
unsigned int enable )
static

Variable Documentation

◆ metal_softirq_avail

int metal_softirq_avail
static