88 lines
2.9 KiB
C
88 lines
2.9 KiB
C
/* ivPpc.h - PowerPC interrupt vectors */
|
|
|
|
/*
|
|
* Copyright (c) 1984-2003, 2011 Wind River Systems, Inc.
|
|
*
|
|
* The right to copy, distribute, modify or otherwise make use
|
|
* of this software may be licensed only pursuant to the terms
|
|
* of an applicable Wind River license agreement.
|
|
*/
|
|
|
|
/*
|
|
modification history
|
|
--------------------
|
|
01g,30nov11,h_k avoided conflict with interrupt controller driver specific
|
|
IVEC_TO_INUM and INUM_TO_IVEC. (WIND00124986)
|
|
01f,04nov03,kam ISR Object code inspection mods
|
|
01e,09dec96,tpr changed _func_intEnableRtn() & _func_intDisableRtn() return
|
|
type from void to int.
|
|
01d,17jun96,tpr added _func_intXXX prototype.
|
|
01c,17jun96,tam used "INUM_TO_IVEC" instead of "IVEC_TO_INUM" for the PPC403
|
|
interrupt vector definitions (spr #6017).
|
|
01b,02feb95,yao added vector definition for PPC403.
|
|
01a,29may87,yao written.
|
|
*/
|
|
|
|
#ifndef __INCivPpch
|
|
#define __INCivPpch
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* macros to convert exception vectors <-> exception numbers */
|
|
|
|
#define EVEC_TO_ENUM(excVec) ((int)(excVec))
|
|
#define ENUM_TO_EVEC(excNum) ((VOIDFUNCPTR *) (excNum))
|
|
|
|
/* macros to convert interrupt vectors <-> interrupt numbers */
|
|
|
|
#ifndef IVEC_TO_INUM
|
|
#define IVEC_TO_INUM(intVec) ((int) (intVec))
|
|
#endif /* !IVEC_TO_INUM */
|
|
|
|
#ifndef INUM_TO_IVEC
|
|
#define INUM_TO_IVEC(intNum) ((VOIDFUNCPTR *) (intNum))
|
|
#endif /* !INUM_TO_IVEC */
|
|
|
|
/* interrupt vector definitions */
|
|
|
|
#if (CPU==PPC403)
|
|
#define _IV_403_CI INUM_TO_IVEC(0) /* critical interrupt */
|
|
#define _IV_403_SRI INUM_TO_IVEC(4) /* serial port receiver int. */
|
|
#define _IV_403_STI INUM_TO_IVEC(5) /* serial port transmiter int.*/
|
|
#define _IV_403_JRI INUM_TO_IVEC(6) /* jtag receiver interrupt */
|
|
#define _IV_403_JTI INUM_TO_IVEC(7) /* jtag transmiter interrupt */
|
|
#define _IV_403_D0I INUM_TO_IVEC(8) /* dma channel 0 interrupt */
|
|
#define _IV_403_D1I INUM_TO_IVEC(9) /* dma channel 1 interrupt */
|
|
#define _IV_403_D2I INUM_TO_IVEC(10) /* dma channel 2 interrupt */
|
|
#define _IV_403_D3I INUM_TO_IVEC(11) /* dma channel 3 interrupt */
|
|
#define _IV_403_E0I INUM_TO_IVEC(27) /* external interrupt 0 */
|
|
#define _IV_403_E1I INUM_TO_IVEC(28) /* external interrupt 1 */
|
|
#define _IV_403_E2I INUM_TO_IVEC(29) /* external interrupt 2 */
|
|
#define _IV_403_E3I INUM_TO_IVEC(30) /* external interrupt 3 */
|
|
#define _IV_403_E4I INUM_TO_IVEC(31) /* external interrupt 4 */
|
|
#endif /* CPU==PPC403 */
|
|
|
|
#ifndef _ASMLANGUAGE
|
|
|
|
/* function declarations */
|
|
|
|
IMPORT STATUS (* _func_intConnectRtn) (VOIDFUNCPTR *, VOIDFUNCPTR, int);
|
|
IMPORT STATUS (* _func_intDisconnectRtn) (VOIDFUNCPTR *, VOIDFUNCPTR, int);
|
|
IMPORT void (* _func_intVecSetRtn) (FUNCPTR *, FUNCPTR );
|
|
IMPORT FUNCPTR (* _func_intVecGetRtn) (FUNCPTR *);
|
|
IMPORT void (* _func_intVecBaseSetRtn) (FUNCPTR *);
|
|
IMPORT FUNCPTR *(* _func_intVecBaseGetRtn) (void);
|
|
IMPORT int (* _func_intLevelSetRtn) (int);
|
|
IMPORT int (* _func_intEnableRtn) (int);
|
|
IMPORT int (* _func_intDisableRtn) (int);
|
|
|
|
#endif /* _ASMLANGUAGE */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __INCivPpch */
|