RTEMS 7.0-rc1
Loading...
Searching...
No Matches
Macros | Functions | Variables
openpic.c File Reference

OpenPIC Interrupt Handling. More...

#include <rtems.h>
#include <bsp.h>
#include <rtems/bspIo.h>
#include <bsp/openpic.h>
#include <rtems/pci.h>
#include <libcpu/io.h>
#include <libcpu/byteorder.h>
#include <inttypes.h>

Macros

#define NULL   0
 
#define REGISTER_DEBUG
 
#define SOURCE(irq)   Source[ (irq) + openpic_src_offst ]
 
#define THIS_CPU   Processor[cpu]
 
#define CHECK_THIS_CPU   check_arg_cpu(cpu)
 
#define check_arg_ipi(ipi)
 
#define check_arg_timer(timer)
 
#define check_arg_vec(vec)
 
#define check_arg_pri(pri)
 
#define check_arg_irq(irq)
 
#define check_arg_cpu(cpu)
 

Functions

void openpic_init (int main_pic, unsigned char *polarities, unsigned char *senses, int num_sources, int source_offset, unsigned long epic_freq)
 
void openpic_reset (void)
 
void openpic_enable_8259_pass_through (void)
 
void openpic_disable_8259_pass_through (void)
 
unsigned int openpic_irq (unsigned int cpu)
 
void openpic_eoi (unsigned int cpu)
 
unsigned openpic_set_eoi_delay (unsigned tb_cycles)
 
unsigned int openpic_get_priority (unsigned int cpu)
 
void openpic_set_priority (unsigned int cpu, unsigned int pri)
 
unsigned int openpic_get_spurious (void)
 
void openpic_set_spurious (unsigned int vec)
 
void openpic_init_processor (unsigned int cpumask)
 
void openpic_initipi (unsigned int ipi, unsigned int pri, unsigned int vec)
 
void openpic_cause_IPI (unsigned int cpu, unsigned int ipi, unsigned int cpumask)
 
void openpic_inittimer (unsigned int timer, unsigned int pri, unsigned int vec)
 
void openpic_maptimer (unsigned int timer, unsigned int cpumask)
 
void openpic_settimer (unsigned int timer, unsigned int base_count, int irq_enable)
 
unsigned int openpic_gettimer (unsigned int timer)
 
void openpic_enable_irq (unsigned int irq)
 
int openpic_disable_irq (unsigned int irq)
 
void openpic_initirq (unsigned int irq, unsigned int pri, unsigned int vec, int pol, int sense)
 
void openpic_mapirq (unsigned int irq, unsigned int cpumask)
 
unsigned int openpic_get_source_priority (unsigned int irq)
 
void openpic_set_source_priority (unsigned int irq, unsigned int pri)
 
void openpic_set_sense (unsigned int irq, int sense)
 

Variables

volatile struct OpenPICOpenPIC = NULL
 

Detailed Description

OpenPIC Interrupt Handling.

Macro Definition Documentation

◆ check_arg_cpu

#define check_arg_cpu (   cpu)
Value:
if (cpu >= NumProcessors) \
printk("openpic.c:%d: illegal cpu %d\n", __LINE__, cpu);

◆ check_arg_ipi

#define check_arg_ipi (   ipi)
Value:
if (ipi >= OPENPIC_NUM_IPI) \
printk("openpic.c:%d: illegal ipi %d\n", __LINE__, ipi);

◆ check_arg_irq

#define check_arg_irq (   irq)
Value:
if (irq >= NumSources) \
printk("openpic.c:%d: illegal irq %d from 0x%08" PRIxPTR ",[0x%08" PRIxPTR "],[[0x%08" PRIxPTR "]]\n", \
__LINE__, irq, (uintptr_t) __builtin_return_address(0), \
(uintptr_t) __builtin_return_address(1), (uintptr_t) __builtin_return_address(2) \
);

◆ check_arg_pri

#define check_arg_pri (   pri)
Value:
if (pri >= OPENPIC_NUM_PRI) \
printk("openpic.c:%d: illegal priority %d\n", __LINE__, pri);

◆ check_arg_timer

#define check_arg_timer (   timer)
Value:
if (timer >= OPENPIC_NUM_TIMERS) \
printk("openpic.c:%d: illegal timer %d\n", __LINE__, timer);

◆ check_arg_vec

#define check_arg_vec (   vec)
Value:
if (vec >= OPENPIC_NUM_VECTORS) \
printk("openpic.c:%d: illegal vector %d\n", __LINE__, vec);