/* vxbPlbLib.h - Processor Local Bus header file for vxBus */ /* * Copyright (c) 2005-2010, 2013 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 -------------------- 01o,20jan13,j_z add intrFlag for plbIntrEntry. 01n,29apr10,pad Moved extern C statement after include statements. 01m,23feb09,h_k updated for LP64 support. (CQ:160416) 01l,18jun08,h_k added pPlbDevControl. 01k,13dec07,slk temp increase of VXB_INTR_ENTSZ from 4 to 32 for raza int ctlr output pin requirements 01j,04sep07,h_k fixed an apigen error. 01i,19jul07,rlg allow more output pins 01h,19jun07,tor add plbIntrGet forward declaration 01g,15Mar07,tor update structures 01f,05Mar07,tor Add #include for required headers 01e,10Oct06,tor Add intCtlr support 01d,18jul06,wap Add declaration for pPlbAccessFunctionOverride 01c,16sep05,jb Adding interrupt level support 01b,01sep05,mdo Add vxb prefix 01a,10aug05,mdo Phase in new access method 01_,17Jan05,tor written */ #ifndef INC_VXBPLBLIB_H #define INC_VXBPLBLIB_H #include #include #ifdef __cplusplus extern "C" { #endif /* defines */ /* these two numbers when mutiplied together determine the number * of downstream outputs */ #define VXB_INTR_ENTSZ 32 #define VXB_INTR_TABSZ 124 /* typedefs */ typedef struct plbDevEntry PLB_DEVICE_ENTRY; typedef struct vxbPlbRegister PLB_DRIVER_REGISTRATION; typedef struct plbIntrEntry PLB_INTERRUPT; typedef struct plbIntrEntry VXB_INTR_ENTRY; #define INVALD_INDEX 0x0BADBEEF struct plbIntCtlrEntry { VXB_DEVICE_ID intCtlr; int intCtlrPin; }; struct plbIntCtlrTable { struct plbIntCtlrEntry intCtlr[VXB_INTR_ENTSZ]; }; struct pIntCtlrTable { struct plbIntCtlrTable * pList[VXB_INTR_TABSZ]; }; struct plbIntrEntry { int numVectors; VOIDFUNCPTR ** intVecList; UINT32 * intLvlList; VXB_DEVICE_ID * intCtlrList; struct pIntCtlrTable * pIntCtlrTable; UINT32 intrFlag; }; struct plbDevEntry { void * baseAddress; char drvName[MAX_DRV_NAME_LEN+1]; int numVectors; VOIDFUNCPTR ** intVecList; UINT32 * intLvlList; VXB_DEVICE_ID * intCtlrList; }; struct vxbPlbRegister { struct vxbDevRegInfo b; }; /* global data */ /* forward declarations */ IMPORT STATUS plbInit1 ( struct vxbDev * pCtlr ); IMPORT void plbRegister (void); IMPORT VOIDFUNCPTR pPlbAccessFunctionOverride; IMPORT VOIDFUNCPTR pPlbOptimizedFunctionOverride; IMPORT VOIDFUNCPTR pPlbDevControl; IMPORT STATUS plbIntrSet ( VXB_DEVICE_ID pDev, int indx, VXB_DEVICE_ID pIntCtlr, int inputPin ); IMPORT STATUS plbIntrGet ( VXB_DEVICE_ID pDev, int indx, VXB_DEVICE_ID * ppIntCtlr, /* out */ int * pInputPin /* out */ ); IMPORT void vxbLegacyIntInit (void); #ifdef __cplusplus } #endif #endif /* INC_VXBPLBLIB_H */