lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: LYNX-DEV Informational message in Lynx 2.7 build with DEC C V5.3


From: Brian Tillman, x8425
Subject: Re: LYNX-DEV Informational message in Lynx 2.7 build with DEC C V5.3
Date: Wed, 26 Feb 1997 09:12:42 EST

#ifndef __SIGNAL_LOADED
#define __SIGNAL_LOADED 1
/****************************************************************************
**
**  <signal.h> - Signal Handling 
**
*****************************************************************************
**  Header introduced by the ANSI C Standard
*****************************************************************************
**
**  Copyright Digital Equipment Corporation 1994, 1995. All rights reserved.
**
**  Restricted Rights: Use, duplication, or disclosure by the U.S.
**  Government is subject to restrictions as set forth in subparagraph
**  (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR
**  52.227-14 Alt. III, as applicable.
**
**  This software is proprietary to and embodies the confidential
**  technology of Digital Equipment Corporation. Possession, use, or
**  copying of this software and media is authorized only pursuant to a
**  valid written license from Digital or an authorized sublicensor.
**
******************************************************************************
*/

#pragma __nostandard

/*
** Set up feature test macros
*/
# if defined _XOPEN_SOURCE_EXTENDED && !defined _XOPEN_SOURCE
#   define _XOPEN_SOURCE
# endif

# if defined _XOPEN_SOURCE && _POSIX_C_SOURCE < 2
#   undef  _POSIX_C_SOURCE
#   define _POSIX_C_SOURCE      2
# endif

# if defined _POSIX_SOURCE && _POSIX_C_SOURCE < 1
#   undef  _POSIX_C_SOURCE          /* _POSIX_SOURCE obsolete.   */
#   define _POSIX_C_SOURCE      1   /* #define _POSIX_C_SOURCE 1 instead */
# endif

# if defined _POSIX_C_SOURCE && !defined _ANSI_C_SOURCE
#   define _ANSI_C_SOURCE
# endif 

# if defined __HIDE_FORBIDDEN_NAMES && !defined _ANSI_C_SOURCE
#   define _ANSI_C_SOURCE
# endif


#ifdef __cplusplus
    extern "C" {
#endif


/*
**  Ensure that regardless of user /pointer_size usage, we begin processing
**  using a 32 bit pointer context.
*/
#if __INITIAL_POINTER_SIZE
#   if (__VMS_VER < 70000000) || !defined __ALPHA
#      error " Pointer size usage not permitted before OpenVMS Alpha V7.0"
#   endif
#   pragma __pointer_size __save
#   pragma __pointer_size 32
#endif


/*
**  The DEC C RTL relies on the use of extern_prefix support in the compilers.
**  The scenario of a customer getting these new headers via DEC C++, while at
**  the same time using a compiler before DEC C V5.2 is still supported.
**
**  Note that not having the ability to use #pragma extern_prefix may lead to
**  certain restrictions in the ability to use new functionality.
*/
#if (__DECC_VER > 50230003) || __DECCXX
#   define __CAN_USE_EXTERN_PREFIX 1
#endif


/*
**  Naturally align data structures
*/
#pragma __member_alignment __save
#pragma __member_alignment


/*       
**  Private definitions
*/       

/*       
**  __sighnd_t is a pointer to function, where the function is declared
**      void f(int code);
**
**  __bsd_sighnd_t is a pointer to function, where the function is:
**      void f(int code, ... );
**      
**  __vms_handler is a pointer to function, wher the function is:
**      unsigned int f(void *sigarr, void *mecharr)
**
**  These definition are private to this header and subject to change.
*/       
typedef void    (*__sighnd_t) (int);
typedef void    (*__bsd_sighnd_t)(int, ... );
typedef unsigned int (*__vms_handler) ( void *__sigarr, void *__mecharr );

#ifndef ____PID_T 
#   define ____PID_T 1
    typedef int __pid_t;
#endif

#if __VMS_VER >= 70000000
#   ifndef ____SIGSET_T
#       define ____SIGSET_T 1
        typedef struct {unsigned int _set[2];} __sigset_t;
#   endif
#endif

# define _SIG_MIN    1

#if __VMS_VER >= 70000000
#   define _SIG_MAX 64
#elif __VMS_VER >= 60200000
#   define _SIG_MAX 17
#else
#   define _SIG_MAX 15
# endif


/*
**  ANSI C Public data definitions and declarations
*/
#define SIG_ERR    ((__sighnd_t)(-1))
#define SIG_DFL    ((__sighnd_t)0)
#define SIG_IGN    ((__sighnd_t)1)

typedef int     sig_atomic_t;


/*       
**  ISO POSIX-1 public data definitions and declarations
*/       
#if defined _POSIX_C_SOURCE || !defined _ANSI_C_SOURCE
#   if __VMS_VER >= 70000000

#       define SIG_UNBLOCK      0
#       define SIG_BLOCK        1
#       define SIG_SETMASK      2

#       define SA_NOCLDSTOP     0x20

#       if !defined __SIGSET_T && !defined _SIGSET_T_ && !defined 
_DECC_V4_SOURCE
#           define __SIGSET_T 1
#           define _SIGSET_T_ 1     /* <cma_sigwait.h> uses this symbol */
            typedef __sigset_t sigset_t;
#       endif

#       pragma __extern_model __save
#       pragma __extern_model __common_block noshr
        static const __sigset_t _SIG_EMPTY_SET  = {0x00000000, 0x00000000},
                                _SIG_FULL_SET   = {0xFFFFFFFF, 0xFFFFFFFF};
#       pragma __extern_model __restore

        struct sigaction
        {
            __sighnd_t  sa_handler;
            __sigset_t  sa_mask;
            int         sa_flags;
        };

#   endif
#endif


/*       
**  XPG4 public data definitions and declarations
*/       
#if defined _XOPEN_SOURCE || !defined _ANSI_C_SOURCE
#   if !defined __PID_T  && !defined _DECC_V4_SOURCE
#       define __PID_T 1
        typedef __pid_t pid_t;
#   endif

#endif


/*       
**  XPG4 V2 public data definitions and declarations
*/       
#if defined _XOPEN_SOURCE_EXTENDED || !defined _ANSI_C_SOURCE

    struct sigstack {
        char    *ss_sp;         /* signal stack pointer */
        int     ss_onstack;     /* current status */
    };

#   if __VMS_VER >= 70000000
#       define SA_ONSTACK       0x01
#       define SA_RESETHAND     0x02
#       define SA_NODEFER       0x08
#   endif

#endif


/*       
**  DEC C extensions -- public data definitions and declarations
*/       
#ifndef _ANSI_C_SOURCE
    struct      sigvec
    {
        void    (*sv_handler)();        /* handler address */
        int     sv_mask;                /* mask of signals to be blocked */
        int     sv_onstack;             /* flag to indicate signal stack */
    };

    struct      sigcontext
    {
        int     sc_onstack;             /* signal stack flag to restore */
        int     sc_mask;                /* signal mask to restore */
        int     sc_sp;                  /* stack pointerto restore */
        int     sc_pc;                  /* pc to return to */
        int     sc_ps;                  /* psl to restore */
    };
#endif


/*       
**  The following signals are defined by the ANSI C standard (ISO/IEC 9899:1990)
*/       
#define SIGABRT     6    /* Abnormal termination signal             */
#define SIGFPE      8    /* Erroneous arithmetic operation                  */
#define SIGILL      4    /* Detection of an invalid hardware instr.         */
#define SIGINT      2    /* Interactive attention signal                    */
#define SIGSEGV    11    /* segmentation violation                          */
#define SIGTERM    15    /* External termination signal             */


/*       
**  The following signals are defined by ISO POSIX-1 (ISO/IEC 9945-1:1990)
*/       
#if defined _POSIX_C_SOURCE || !defined _ANSI_C_SOURCE
#   define SIGALRM  14      /* Timeout signal                               */
#   define SIGHUP   1       /* Hangup detected on controlling terminal      */
#   define SIGKILL  9       /* External termination signal                  */
#   define SIGPIPE  13      /* Write on a pipe with no readers              */
#   define SIGQUIT  3       /* Interactive termination signal               */

#   if __VMS_VER >= 60200000
#       define SIGUSR1    16    /* Application-defined signal 1             */
#       define SIGUSR2    17    /* Application-defined signal 2             */
#   endif

#   if __VMS_VER >= 70000000
#       define SIGCHLD    20    /* Child process terminated or stopped      */
#       define SIGCONT    21    /* Continue if stopped                      */
#       define SIGSTOP    22    /* Job control stop signal                  */
#       define SIGTSTP    23    /* Interactive stop signal                  */
#       define SIGTTIN    24    /* Terminal read by background process      */
#       define SIGTTOU    25    /* Terminal write by background process     */
#   endif
#endif


/*       
**  Defined by XPG4 V2
*/       
#if defined _XOPEN_SOURCE_EXTENDED || !defined _ANSI_C_SOURCE
#   define SIGTRAP     5        /* TBIT trace trap or BPT instruction       */
#   define SIGSYS     12        /* Bad arguments to system call             */
#endif


/*       
**  DEC C Extensions
*/       
#ifndef _ANSI_C_SOURCE
#   define SIGIOT      6            /* Obsolete name - 6 reused as SIGABRT  */
#   define SIGEMT      7            /* Opcode reserved to customer          */
#   define SIGBUS     10            /* invalid access to memory objects     */
#   if __VMS_VER >= 70000000
#       define SIGSPARE18 18        /* Reserved for future expansions       */
#       define SIGSPARE19 19        /* Reserved for future expansions       */
#       define SIGDEBUG   26        /* Permanently reserved to Digital      */
#       define SIGSPARE27 27        /* Reserved for future expansions       */
#       define SIGSPARE28 28        /* Reserved for future expansions       */
#       define SIGSPARE29 29        /* Reserved for future expansions       */
#       define SIGSPARE30 30        /* Reserved for future expansions       */
#       define SIGSPARE31 31        /* Reserved for future expansions       */
#       define SIGSPARE32 32        /* Reserved for future expansions       */
#       define SIGRTMIN   33        /* First realtime signal (1003.1b)      */
#       define SIGRTMAX   64        /* Last realtime signal (1003.1b)       */
#   endif

#   define NSIG _SIG_MAX

#   define BADSIG SIG_ERR

#   define ILL_RESAD_FAULT      0x0     /* reserved addressing mode fault */
#   define ILL_PRIVIN_FAULT     0x1     /* privilidged instruction fault */
#   define ILL_RESOP_FAULT      0x2     /* reserved operand fault */

#   define FPE_INTOVF_TRAP      0x1
#   define FPE_INTDIV_TRAP      0x2
#   define FPE_FLTOVF_TRAP      0x3
#   define FPE_FLTDIV_TRAP      0x4
#   define FPE_FLTUND_TRAP      0x5
#   define FPE_DECOVF_TRAP      0x6
#   ifdef __VAX
#       define FPE_SUBRNG_TRAP  0x7
#   else
#       define FPE_INXRES_TRAP  0x7
#   endif
#   define FPE_FLTOVF_FAULT     0x8
#   define FPE_FLTDIV_FAULT     0x9
#   define FPE_FLTUND_FAULT     0x0a
#   ifndef __VAX
#       define FPE_INVOPR_TRAP  0x0b
#       define FPE_DECDIV_TRAP  0x0c
#       define FPE_DECINV_TRAP  0x0d
#       define FPE_SUBRNG_TRAP  0x0e
#       define FPE_SUBRNG1_TRAP 0x0f
#       define FPE_SUBRNG2_TRAP 0x10
#       define FPE_SUBRNG3_TRAP 0x11
#       define FPE_SUBRNG4_TRAP 0x12
#       define FPE_SUBRNG5_TRAP 0x13
#       define FPE_SUBRNG6_TRAP 0x14
#       define FPE_SUBRNG7_TRAP 0x15
#   endif
#endif


/*
**  Enable 64 bit pointers
*/
#if __INITIAL_POINTER_SIZE
#   pragma __pointer_size 64
#endif


/*
**  Function prototypes (ANSI).
*/
__sighnd_t signal( int __sig, __sighnd_t __func );

    /*   
    **  In strict ANSI mode, raise has a signal parameter.  As
    **  a DEC C extension, it accepts a subcode as well.
    */   
#ifndef _ANSI_C_SOURCE
    int raise (int __sig, ...);  /* 2nd parameter is the subcode */
#else
    int raise (int __sig);
#endif


/*       
**  ISO POSIX-1 signal handling
*/       
#if defined _POSIX_C_SOURCE || !defined _ANSI_C_SOURCE

#   if __VMS_VER >= 70000000 && defined(_POSIX_EXIT)
#       if __CAN_USE_EXTERN_PREFIX
#           pragma __extern_prefix __save
#           pragma __extern_prefix "__posix_"
#       else
#           define kill(__p1,__p2) __posix_kill(__p1,__p2)
#       endif
#   endif

        int kill (__pid_t __pid, int __sig);

#   if __VMS_VER >= 70000000 && defined(_POSIX_EXIT)
#       if __CAN_USE_EXTERN_PREFIX
#           pragma __extern_prefix __restore
#       endif
#   endif

#   if __VMS_VER >= 70000000
        int sigaddset (__sigset_t * __set, int __sig);
        int sigdelset (__sigset_t * __set, int __sig);
        int sigismember (const __sigset_t * __set, int __sig);

        int sigaction (int __sig, const struct sigaction * __act,
                                  struct sigaction * __oact);
        int sigprocmask (int __how, const __sigset_t * __set, 
                    __sigset_t * __oset);
        int sigpending (__sigset_t * __set);
        int sigsuspend (const __sigset_t * __set);
#       if __cplusplus && !__NO_MACROS
            inline int sigemptyset (__sigset_t *__set) {
                *__set =_SIG_EMPTY_SET;
                return 0;
            }

            inline int sigfillset (__sigset_t *__set) {
                *__set =_SIG_FULL_SET;
                return 0;
            }

#       else
            int sigemptyset (__sigset_t * __set);
            int sigfillset  (__sigset_t * __set);
#           if !__NO_MACROS
#               define sigemptyset(set) (*(__sigset_t*)(set)=_SIG_EMPTY_SET, 0)
#               define sigfillset(set)  (*(__sigset_t*)(set)=_SIG_FULL_SET, 0)
#           endif
#       endif

#   endif
#endif


/*       
**  XPG4 V2 function prototypes
*/       
#if defined _XOPEN_SOURCE_EXTENDED ||  !defined _ANSI_C_SOURCE

    int sigpause (int __mask);
    int sigstack (struct sigstack *__ss, struct sigstack *__oss);

#endif


/*
**  DEC C extensions
*/
#ifndef _ANSI_C_SOURCE

    __bsd_sighnd_t ssignal (int __sig, __bsd_sighnd_t __action);
    int sigvec (int __sigveca, struct sigvec *__sv, struct sigvec *__osv);
    int sigblock (int __mask);
    int sigsetmask (int __mask);
    int gsignal (int __sig, ...);

    void VAXC$ESTABLISH (__vms_handler __f);
    void VAXC$CRTL_INIT (void);

#   ifndef __cplusplus
        void DECC$CRTL_INIT (void);
#   endif

#   ifdef __ALPHA
#       define VAXC$CRTL_INIT() ( c$$establish(0,32), (VAXC$CRTL_INIT)())
#       ifndef __cplusplus
#           define DECC$CRTL_INIT() (c$$establish(0,32), (DECC$CRTL_INIT)())
#       endif
#   endif

    /*   
    **  ISO POSIX-1 defines alarm, sleep as being in <unistd.h>.  For
    **  compatibility with DEC C V4, the old prototypes are supported.
    */   
#   ifndef _DECC_V4_SOURCE
         unsigned int alarm  (unsigned int __seconds);
         unsigned int sleep (unsigned __seconds);
#   else 
         int alarm (unsigned int __seconds);
         int sleep (unsigned __seconds);
#   endif

    /*   
    **  ISO POSIX-1 defines pause in <unistd.h>
    */   
    int pause (void);

    /*   
    **  XPG4 V2 removed sigmask from signal.h in a corrigenda to
    **  that specification.
    */   
#   if __VMS_VER >= 70000000
        int sigmask     (int __sig);
#       define sigmask(m) (1L << ((m)-1))
#   endif

#endif


/*
**  Restore pointer size context
*/
#if __INITIAL_POINTER_SIZE
#   pragma __pointer_size __restore
#endif

#ifdef __cplusplus
    }
#endif
#pragma __member_alignment __restore
#pragma __standard
#endif  /* __SIGNAL_LOADED */

;
; To UNSUBSCRIBE:  Send a mail message to address@hidden
;                  with "unsubscribe lynx-dev" (without the
;                  quotation marks) on a line by itself.
;

reply via email to

[Prev in Thread] Current Thread [Next in Thread]