Files
m241Neelima/vxworks-6.9/target/h/arch/ppc/ivPpc.h
T
2026-07-30 11:19:44 +05:30

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 */