libmetal
Data Structures | Macros | Functions | Variables
irq.c File Reference

Linux libmetal irq definitions. More...

#include <pthread.h>
#include <sched.h>
#include "metal/device.h"
#include "metal/irq.h"
#include "metal/sys.h"
#include "metal/mutex.h"
#include <sys/time.h>
#include <sys/eventfd.h>
#include <stdint.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <poll.h>

Data Structures

struct  metal_irq_hddesc
 
struct  metal_irqs_state
 

Macros

#define MAX_IRQS   FD_SETSIZE
 
#define MAX_HDS   20
 
#define METAL_IRQ_STOP   0xFFFFFFFF
 

Functions

int metal_irq_register (int irq, metal_irq_handler hd, struct metal_device *dev, void *drv_id)
 Register interrupt or register interrupt handling of a specific interrupt. More...
 
unsigned int metal_irq_save_disable ()
 disable interrupts More...
 
void metal_irq_restore_enable (unsigned flags)
 
void metal_irq_enable (unsigned int vector)
 metal_irq_enable More...
 
void metal_irq_disable (unsigned int vector)
 metal_irq_disable More...
 
static void * metal_linux_irq_handling (void *args)
 IRQ handler. More...
 
int metal_linux_irq_init ()
 irq handling initialization More...
 
void metal_linux_irq_shutdown ()
 irq handling shutdown More...
 

Variables

struct metal_irqs_state _irqs
 

Detailed Description

Linux libmetal irq definitions.

Macro Definition Documentation

◆ MAX_HDS

#define MAX_HDS   20

maximum number of handlers per IRQ

◆ MAX_IRQS

#define MAX_IRQS   FD_SETSIZE

maximum number of irqs

◆ METAL_IRQ_STOP

#define METAL_IRQ_STOP   0xFFFFFFFF

stop interrupts handling thread

Function Documentation

◆ metal_irq_restore_enable()

void metal_irq_restore_enable ( unsigned  flags)

◆ metal_linux_irq_handling()

static void* metal_linux_irq_handling ( void *  args)
static

IRQ handler.

Parameters
[in]argsnot used. required for pthread.

< irq handler descriptro


< irq handler

< metal device which a IRQ belongs to
< A flag to indicate if irq is handled

◆ metal_linux_irq_init()

int metal_linux_irq_init ( )

irq handling initialization

Returns
0 on sucess, non-zero on failure

◆ metal_linux_irq_shutdown()

void metal_linux_irq_shutdown ( )

irq handling shutdown

Variable Documentation

◆ _irqs

struct metal_irqs_state _irqs