Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

m68k/amiga/amiints.c File Reference

#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/kernel_stat.h>
#include <linux/init.h>
#include <asm/system.h>
#include <asm/irq.h>
#include <asm/traps.h>
#include <asm/amigahw.h>
#include <asm/amigaints.h>
#include <asm/amipcmcia.h>

Include dependency graph for m68k/amiga/amiints.c:

Go to the source code of this file.

Functions

int cia_request_irq (struct ciabase *base, int irq, void(*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *devname, void *dev_id)
void cia_free_irq (struct ciabase *base, unsigned int irq, void *dev_id)
void cia_init_IRQ (struct ciabase *base)
int cia_get_irq_list (struct ciabase *base, char *buf)
static void ami_badint (int irq, void *dev_id, struct pt_regs *fp)
 __initfunc (void amiga_init_IRQ(void))
static void amiga_insert_irq (irq_node_t **list, irq_node_t *node)
static void amiga_delete_irq (irq_node_t **list, void *dev_id)
int amiga_request_irq (unsigned int irq, void(*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *devname, void *dev_id)
void amiga_free_irq (unsigned int irq, void *dev_id)
void amiga_enable_irq (unsigned int irq)
void amiga_disable_irq (unsigned int irq)
void amiga_do_irq (int irq, struct pt_regs *fp)
void amiga_do_irq_list (int irq, struct pt_regs *fp, struct irq_server *server)
static void ami_int1 (int irq, void *dev_id, struct pt_regs *fp)
static void ami_int3 (int irq, void *dev_id, struct pt_regs *fp)
static void ami_int4 (int irq, void *dev_id, struct pt_regs *fp)
static void ami_int5 (int irq, void *dev_id, struct pt_regs *fp)
static void ami_int7 (int irq, void *dev_id, struct pt_regs *fp)
int amiga_get_irq_list (char *buf)

Variables

static irq_node_tami_irq_list [AMI_STD_IRQS]
unsigned short ami_intena_vals [AMI_STD_IRQS]
static const unsigned char ami_servers [AMI_STD_IRQS]
static short ami_ablecount [AMI_IRQS]
void(* amiga_default_handler [SYS_IRQS])(int, void *, struct pt_regs *)


Function Documentation

__initfunc void   amiga_init_IRQ(void)  ) 
 

Definition at line 73 of file m68k/amiga/amiints.c.

References ami_badint(), AMI_IRQS, AMI_STD_IRQS, AMIGAHW_PRESENT, cia_init_IRQ(), ciaa_base, ciab_base, custom, irq_node::dev_id, irq_node::devname, irq_node::flags, irq_node::handler, i, IF_INTEN, IF_SETCLR, IRQ_FLG_STD, new_irq_node(), irq_node::next, NULL, and pcmcia_disable_irq().

Here is the call graph for this function:

static void ami_badint int  irq,
void *  dev_id,
struct pt_regs fp
[static]
 

Definition at line 57 of file m68k/amiga/amiints.c.

References num_spurious.

Referenced by __initfunc(), and amiga_free_irq().

static void ami_int1 int  irq,
void *  dev_id,
struct pt_regs fp
[static]
 

Definition at line 387 of file m68k/amiga/amiints.c.

References amiga_do_irq(), custom, IF_DSKBLK, IF_SOFT, IF_TBE, ints, IRQ_AMIGA_DSKBLK, IRQ_AMIGA_SOFT, and IRQ_AMIGA_TBE.

Here is the call graph for this function:

static void ami_int3 int  irq,
void *  dev_id,
struct pt_regs fp
[static]
 

Definition at line 410 of file m68k/amiga/amiints.c.

References amiga_do_irq(), amiga_do_irq_list(), custom, IF_BLIT, IF_COPER, IF_VERTB, ints, IRQ_AMIGA_BLIT, IRQ_AMIGA_COPPER, and IRQ_AMIGA_VERTB.

Here is the call graph for this function:

static void ami_int4 int  irq,
void *  dev_id,
struct pt_regs fp
[static]
 

Definition at line 432 of file m68k/amiga/amiints.c.

References amiga_do_irq(), custom, IF_AUD0, IF_AUD1, IF_AUD2, IF_AUD3, ints, IRQ_AMIGA_AUD0, IRQ_AMIGA_AUD1, IRQ_AMIGA_AUD2, and IRQ_AMIGA_AUD3.

Here is the call graph for this function:

static void ami_int5 int  irq,
void *  dev_id,
struct pt_regs fp
[static]
 

Definition at line 461 of file m68k/amiga/amiints.c.

References amiga_do_irq(), custom, IF_DSKSYN, IF_RBF, ints, IRQ_AMIGA_DSKSYN, and IRQ_AMIGA_RBF.

Here is the call graph for this function:

static void ami_int7 int  irq,
void *  dev_id,
struct pt_regs fp
[static]
 

Definition at line 478 of file m68k/amiga/amiints.c.

References panic().

Here is the call graph for this function:

static void amiga_delete_irq irq_node_t **  list,
void *  dev_id
[inline, static]
 

Definition at line 144 of file m68k/amiga/amiints.c.

References cli, irq_node::dev_id, irq_node::handler, irq_node::next, NULL, printk, restore_flags, and save_flags.

Referenced by amiga_free_irq().

void amiga_disable_irq unsigned int  irq  ) 
 

Definition at line 308 of file m68k/amiga/amiints.c.

Referenced by __initfunc().

void amiga_do_irq int  irq,
struct pt_regs fp
[inline]
 

Definition at line 339 of file m68k/amiga/amiints.c.

Referenced by ami_int1(), ami_int3(), ami_int4(), ami_int5(), and amifb_interrupt().

void amiga_do_irq_list int  irq,
struct pt_regs fp,
struct irq_server server
 

Definition at line 345 of file m68k/amiga/amiints.c.

Referenced by ami_int3(), amifb_interrupt(), and cia_handler().

void amiga_enable_irq unsigned int  irq  ) 
 

Definition at line 273 of file m68k/amiga/amiints.c.

Referenced by __initfunc().

void amiga_free_irq unsigned int  irq,
void *  dev_id
 

Definition at line 228 of file m68k/amiga/amiints.c.

int amiga_get_irq_list char *  buf  ) 
 

Definition at line 488 of file m68k/amiga/amiints.c.

Referenced by __initfunc().

static void amiga_insert_irq irq_node_t **  list,
irq_node_t node
[inline, static]
 

Definition at line 106 of file m68k/amiga/amiints.c.

References cli, irq_node::dev_id, irq_node::devname, irq_node::flags, IRQ_FLG_FAST, IRQ_FLG_SLOW, irq_node::next, printk, restore_flags, and save_flags.

Referenced by amiga_request_irq().

int amiga_request_irq unsigned int  irq,
void(*)(int, void *, struct pt_regs *)  handler,
unsigned long  flags,
const char *  devname,
void *  dev_id
 

Definition at line 171 of file m68k/amiga/amiints.c.

void cia_free_irq struct ciabase base,
unsigned int  irq,
void *  dev_id
 

Definition at line 123 of file m68k/amiga/cia.c.

Referenced by amiga_free_irq().

int cia_get_irq_list struct ciabase base,
char *  buf
 

Definition at line 176 of file m68k/amiga/cia.c.

Referenced by amiga_get_irq_list().

void cia_init_IRQ struct ciabase base  ) 
 

Referenced by __initfunc().

int cia_request_irq struct ciabase base,
int  irq,
void(*)(int, void *, struct pt_regs *)  handler,
unsigned long  flags,
const char *  devname,
void *  dev_id
 

Referenced by amiga_request_irq().


Variable Documentation

short ami_ablecount[AMI_IRQS] [static]
 

Definition at line 55 of file m68k/amiga/amiints.c.

unsigned short ami_intena_vals[AMI_STD_IRQS]
 

Initial value:

Definition at line 47 of file m68k/amiga/amiints.c.

Referenced by __initfunc().

irq_node_t* ami_irq_list[AMI_STD_IRQS] [static]
 

Definition at line 45 of file m68k/amiga/amiints.c.

const unsigned char ami_servers[AMI_STD_IRQS] [static]
 

Initial value:

 {
        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1
}

Definition at line 51 of file m68k/amiga/amiints.c.

void(* amiga_default_handler[SYS_IRQS])(int, void *, struct pt_regs *)
 

Initial value:

Definition at line 483 of file m68k/amiga/amiints.c.

Referenced by __initfunc().