Files
2026-07-30 11:19:44 +05:30

88 lines
2.4 KiB
C

/* excLibP.h - private exception handling subsystem header file */
/*
* Copyright (c) 1984-2006, 2009-2010, 2016 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
--------------------
01sep16,cww Add excJobAddDefer() (VXW6-85854).
01i,20sep10,jpb Added exception handling function pointers.
01h,08apr10,jpb Added func binding prototypes.
01g,26mar09,zl updated for LP64 build. Moved jobAdd() to jobLibP.h,
removed jobExcAdd().
01f,17oct06,gls made maxIsrJobs argument a UINT (Defect #00059580)
01e,07jun05,yvp Added prototype for jobAdd(). Updated copyright.
01d,09mar05,yvp Added ISR_JOB definition.
01c,20jan05,yvp Reverted prototype for excInit().
01b,25aug04,ans updated declaration of excInit()
01a,13nov01,yvp created.
*/
#ifndef __INCexcLibPh
#define __INCexcLibPh
#include <vxWorks.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _ASMLANGUAGE
/* defines */
#define ISR_JOB_MAX_ARGS 6
/* typedefs */
/* Structure describing ISR-level job deferral */
typedef struct
{
VOIDFUNCPTR func; /* pointer to function to invoke */
_Vx_usr_arg_t arg [ISR_JOB_MAX_ARGS]; /* args for function */
void * pad; /* padding up to power-of-two size */
} ISR_JOB;
/* Select extended (32-bit) calls from the vector table to handlers */
extern BOOL excExtendedVectors;
/* function declarations */
extern STATUS excVecInit (void);
extern STATUS excInit (UINT maxIsrJobs);
extern STATUS excJobAddDefer (VOIDFUNCPTR,
_Vx_usr_arg_t, _Vx_usr_arg_t,
_Vx_usr_arg_t, _Vx_usr_arg_t,
_Vx_usr_arg_t, _Vx_usr_arg_t);
/* function pointer prototypes */
extern STATUS (*_func_excJobAdd)(VOIDFUNCPTR func,
_Vx_usr_arg_t arg1, _Vx_usr_arg_t arg2,
_Vx_usr_arg_t arg3, _Vx_usr_arg_t arg4,
_Vx_usr_arg_t arg5, _Vx_usr_arg_t arg6);
/* TODO: Keep these as 'FUNCPTR' for now but they should be made fully typed */
extern FUNCPTR _func_excInfoShow;
extern FUNCPTR _func_excPanicHook;
extern FUNCPTR _func_excBaseHook;
extern FUNCPTR _func_excIntHook;
extern FUNCPTR excExcepHook;
#endif /* _ASMLANGUAGE */
#ifdef __cplusplus
}
#endif
#endif /* __INCexcLibPh */