sigLibP.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* sigLibP.h - private signal facility library header */
  2. /* Copyright 1984-1997 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 02m,19may97,jpd  made RESTART available from ASMLANGUAGE.
  7. 02l,06jul94,rrr  added sc_resumption for I960KB.
  8. 02k,28jan94,kdl  marked sigEvtRtn pointer declaration extern.
  9. 02j,12jan94,kdl  added sigqueueInit() prototype.
  10. 02i,09jan94,c_s  applied rrr's patch for SPR #955.
  11. 02h,10dec93,smb  added event logging routine.
  12. 02g,22sep92,rrr  added support for c++
  13. 02f,22aug92,rrr  added some prototypes.
  14. 02e,30jul92,rrr  backed out 02d (we are now back to 02c)
  15. 02d,30jul92,kdl  backed out 02c changes pending rest of exc handling.
  16. 02c,29jul92,rrr  added fault table for exceptions
  17. 02b,08jul92,rrr  added all the _sigCtx* function prototypes.
  18. 02a,04jul92,jcf  cleaned up.
  19. 01b,26may92,rrr  the tree shuffle
  20. 01a,27apr92,rrr  written.
  21. */
  22. #ifndef __INCsigLibPh
  23. #define __INCsigLibPh
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif
  27. #ifndef _ASMLANGUAGE
  28. #include "signal.h"
  29. #include "excLib.h"
  30. #include "private/funcBindP.h"
  31. #include "regs.h"
  32. #endif /* !_ASMLANGUAGE */
  33. #define RESTART 1 /* must be different from OK and ERROR */
  34. #ifndef _ASMLANGUAGE
  35. #define SIG_TIMEOUT_RECALC(t) (*_func_sigTimeoutRecalc)(t)
  36. struct sigq /* (Not posix) */
  37.     {
  38.     struct sigq *sigq_next;
  39.     struct sigq *sigq_prev;
  40.     };
  41. struct sigstack /* (Not posix) */
  42.     {
  43.     int ss_onstack;
  44.     void *ss_sp;
  45.     };
  46. struct sigtcb /* (Not posix) */
  47.     {
  48.     struct sigaction sigt_vec[_NSIGS + 1];
  49.     struct sigq sigt_qhead[_NSIGS + 1];
  50.     struct sigstack sigt_stack;
  51.     struct sigwait *sigt_wait;
  52.     sigset_t sigt_kilsigs;
  53.     sigset_t sigt_blocked;
  54.     sigset_t sigt_pending;
  55.     sigset_t sigt_ignored;
  56.     };
  57. struct sigpend /* (Not posix) */
  58.     {
  59.     struct sigq sigp_q;
  60.     struct siginfo sigp_info;
  61.     long sigp_overruns;
  62.     long sigp_active_overruns;
  63.     REG_SET *sigp_pregs;
  64.     struct sigtcb *sigp_tcb;
  65.     };
  66. struct sigfaulttable
  67.     {
  68.     int sigf_fault;
  69.     int sigf_signo;
  70.     };
  71. struct sigcontext /* (Not posix) */
  72.     {
  73.     int sc_onstack;
  74.     int sc_restart;
  75.     sigset_t sc_mask;
  76.     struct siginfo sc_info;
  77.     REG_SET sc_regs;
  78. #if CPU_FAMILY==MC680X0
  79.     unsigned short sc_fformat; /* only for 68k */
  80.     unsigned short sc_pad; /* only for 68k */
  81. #endif
  82. #if CPU == I960KB
  83.     struct {
  84. char sc_data[16]; /* only for i960kb */
  85.     } sc_resumption[1];
  86. #endif
  87.     REG_SET *sc_pregs;
  88.     };
  89. extern VOIDFUNCPTR     sigEvtRtn; /* windview - level 1 event logging */
  90. #if defined(__STDC__) || defined(__cplusplus)
  91. extern void _sigCtxRtnValSet (REG_SET *regs, int val);
  92. extern void *_sigCtxStackEnd (const REG_SET *regs);
  93. extern int _sigCtxSave (REG_SET *regs);
  94. extern void _sigCtxLoad (const REG_SET *regs);
  95. extern void _sigCtxSetup (REG_SET *regs, void *pStackBase, void (*taskEntry)(),
  96.         int *args);
  97. extern int sigInit (void);
  98. extern void sigPendInit (struct sigpend *__pSigPend);
  99. extern int sigPendDestroy (struct sigpend *__pSigPend);
  100. extern int sigPendKill (int __tid, struct sigpend *__pSigPend);
  101. extern int sigqueueInit (int nQueues);
  102. #else
  103. extern void _sigCtxRtnValSet ();
  104. extern void *_sigCtxStackEnd ();
  105. extern int _sigCtxSave ();
  106. extern void _sigCtxLoad ();
  107. extern void _sigCtxSetup ();
  108. extern int sigInit ();
  109. extern void sigPendInit ();
  110. extern int sigPendDestroy ();
  111. extern int sigPendKill ();
  112. extern int sigqueueInit ();
  113. #endif
  114. #endif /* ! _ASMLANGUAGE */
  115. #ifdef __cplusplus
  116. }
  117. #endif
  118. #endif /* __INCsigLibPh */