/tmp/l4check/full_tree/trunk/l4/pkg/dde_linux/lib/src/irq.c File Reference

IRQ handling and request. More...

#include <l4/env/errno.h>
#include <l4/omega0/client.h>
#include <l4/thread/thread.h>
#include <l4/lock/lock.h>
#include <l4/dde_linux/dde.h>
#include <linux/sched.h>
#include <asm/hardirq.h>
#include <asm/irq.h>
#include "__config.h"
#include "internal.h"

Go to the source code of this file.

Classes

struct  irq_desc
 IRQ descriptor array. More...

Omega0 specific routines

#define OM_MASK   0x00000001
#define OM_UNMASK   0x00000002
#define OM_CONSUME   0x00000004
static int __omega0_attach (unsigned int irq, int *handle)
 Attach IRQ line.
static int __omega0_wait (unsigned int irq, int handle, unsigned int flags)
 Wait for IRQ notification.

Module Variables

static struct irq_desc handlers [NR_IRQS]
 IRQ descriptor array.
static int _initialized = 0
 initialization flag
int l4dde_irq_set_prio (unsigned int irq, unsigned prio)

Functions

static void dde_irq_thread (struct irq_desc *irq_desc)
 IRQ handler thread.
int request_irq (unsigned int irq, void(*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *dev_name, void *dev_id)
 Request Interrupt.
void free_irq (unsigned int irq, void *dev_id)
 Release Interrupt.
int l4dde_set_deferred_irq_handler (unsigned int irq, void(*def_handler)(int, void *), void *dev_def_id)
int l4dde_irq_init ()
 Initalize IRQ handling.
l4_threadid_t l4dde_irq_l4_id (int irq)
 Get IRQ thread number.
omega0_alien_handler_t l4dde_set_alien_handler (omega0_alien_handler_t handler)
Undocumented
void disable_irq (unsigned int irq_num)
void disable_irq_nosync (unsigned int irq_num)
void enable_irq (unsigned int irq_num)
int probe_irq_on (unsigned long val)
 Old probing of interrupts.
int probe_irq_off (unsigned long val)
 Old probing of interrupts.


Detailed Description

IRQ handling and request.

Date:
2007-05-29
Author:
Christian Helmuth <ch12@os.inf.tu-dresden.de>

Definition in file irq.c.


Function Documentation

static int __omega0_attach ( unsigned int  irq,
int *  handle 
) [inline, static]

Attach IRQ line.

Parameters:
irq IRQ number
Return values:
handle IRQ handle
Returns:
0 on success (attached interrupt), -1 if attach failed.

Definition at line 94 of file irq.c.

static int __omega0_wait ( unsigned int  irq,
int  handle,
unsigned int  flags 
) [inline, static]

Wait for IRQ notification.

Parameters:
irq IRQ number
handle IRQ line handle
flags Flags:
  • OM_MASK request IRQ mask
  • OM_UNMASK request IRQ unmask
  • OM_CONSUME IRQ consumed

Definition at line 119 of file irq.c.

static void dde_irq_thread ( struct irq_desc irq_desc  )  [static]

IRQ handler thread.

Parameters:
irq_desc IRQ handling descriptor (IRQ number and handler routine)

Definition at line 144 of file irq.c.


Variable Documentation

struct irq_desc handlers[NR_IRQS] [static]

IRQ descriptor array.

Todo:
what about IRQ sharing?


Linux DDE, written by Christian Helmuth  © 2003 Technische Universitaet Dresden