Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:59

0001 /* irq.h
0002  *
0003  *  This include file describe the data structure and the functions implemented
0004  *  by rtems to write interrupt handlers.
0005  *
0006  *
0007  *  SS555 port sponsored by Defence Research and Development Canada - Suffield
0008  *  Copyright (C) 2004, Real-Time Systems Inc. (querbach@realtime.bc.ca)
0009  *
0010  *  Derived from libbsp/powerpc/mbx8xx/irq/irq.h:
0011  *
0012  *  CopyRight (C) 1999 valette@crf.canon.fr
0013  *
0014  *  This code is heavilly inspired by the public specification of STREAM V2
0015  *  that can be found at :
0016  *
0017  *      <http://www.chorus.com/Documentation/index.html> by following
0018  *  the STREAM API Specification Document link.
0019  *
0020  *  The license and distribution terms for this file may be
0021  *  found in the file LICENSE in this distribution or at
0022  *  http://www.rtems.org/license/LICENSE.
0023  */
0024 
0025 #ifndef LIBBSP_POWERPC_SS555_IRQ_IRQ_H
0026 #define LIBBSP_POWERPC_SS555_IRQ_IRQ_H
0027 
0028 #include <libcpu/irq.h>
0029 
0030 #ifndef ASM
0031 
0032 #include <bsp/irq-default.h>
0033 
0034 #ifdef __cplusplus
0035 extern "C" {
0036 #endif
0037 
0038 /*
0039  *  These are no longer prototyped anywhere else. This appears to be
0040  *  remnants of the IRQ code upgrade.
0041  *
0042  *  --joel 28 April 2010
0043  */
0044 int CPU_install_rtems_irq_handler(const rtems_irq_connect_data* irq);
0045 int CPU_get_current_rtems_irq_handler(rtems_irq_connect_data* irq);
0046 int CPU_remove_rtems_irq_handler(const rtems_irq_connect_data* irq);
0047 int CPU_rtems_irq_mngt_set(rtems_irq_global_settings* config);
0048 int CPU_rtems_irq_mngt_get(rtems_irq_global_settings** config);
0049 void C_default_exception_handler(CPU_Exception_frame* excPtr);
0050 
0051 /*
0052  * The SS555 has no external interrupt controller chip, so use the standard
0053  * routines from the CPU-dependent code.
0054  */
0055 #define BSP_install_rtems_irq_handler(ptr)  CPU_install_rtems_irq_handler(ptr)
0056 #define BSP_get_current_rtems_irq_handler(ptr)  CPU_get_current_rtems_irq_handler(ptr)
0057 #define BSP_remove_rtems_irq_handler(ptr)   CPU_remove_rtems_irq_handler(ptr)
0058 #define BSP_rtems_irq_mngt_set(config)      CPU_rtems_irq_mngt_set(config)
0059 #define BSP_rtems_irq_mngt_get(config)      CPU_rtems_irq_mngt_get(config)
0060 #define BSP_rtems_irq_mng_init(cpuId)       CPU_rtems_irq_mng_init(cpuId)
0061 
0062 #ifdef __cplusplus
0063 }
0064 #endif
0065 
0066 #endif /* ASM */
0067 
0068 #endif /* LIBBSP_POWERPC_SS555_IRQ_IRQ_H */