Changeset 1617 for trunk/src/emx/include


Ignore:
Timestamp:
Nov 7, 2004, 10:33:03 AM (21 years ago)
Author:
bird
Message:

Debugging signals.

Location:
trunk/src/emx/include
Files:
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/include/InnoTekLIBC/backend.h

    • Property cvs2svn:cvs-rev changed from 1.8 to 1.9
    r1616 r1617  
    3030#include <sys/cdefs.h>
    3131#include <sys/types.h>
     32#include <signal.h>
    3233#include <emx/io.h>
     34
    3335
    3436__BEGIN_DECLS
     
    446448
    447449
     450/** @defgroup   __libc_Back_signal      LIBC Backend - Signals
     451 * @{
     452 */
     453
     454/** @defgroup __libc_Back_signalRaise_return    __libc_back_signalRaise() returns.
     455 * These are only valid for positive return values.
     456 * @{ */
     457/** Try restart any interrupted system call. */
     458#define __LIBC_BSRR_RESTART     0x01
     459/** Go ahead interrupt system call in progress. */
     460#define __LIBC_BSRR_INTERRUPT   0x02
     461/** If set execution should be resumed. */
     462#define __LIBC_BSRR_CONTINUE    0x10
     463/** If set execution should not be resumed but the signal should be passed
     464 * on to the system. */
     465#define __LIBC_BSRR_PASSITON    0x20
     466/** If set the passed in SIGQUEUED structure was used. */
     467#define __LIBC_BSRR_USED_QUEUED 0x40
     468/** @} */
     469
     470/** @defgroup __libc_back_signalRaise_flags     __libc_back_signalRaise() flags.
     471 * @{ */
     472/** The signal is thread specific and must be delivered to the current thread. */
     473#define __LIBC_BSRF_THREAD      0x01
     474/** The signal was send from an unknown process. */
     475#define __LIBC_BSRF_EXTERNAL    0x02
     476/** The signal was generated by the hardware (i.e. CPUs and such). */
     477#define __LIBC_BSRF_HARDWARE    0x04
     478/** The signal should be queued. */
     479#define __LIBC_BSRF_QUEUED      0x08
     480/** @} */
     481
     482
     483/**
     484 * Raises a signal in the current process.
     485 *
     486 * @returns On success a flag mask out of the __LIBC_BSRR_* #defines is returned.
     487 * @returns On failure a negative error code (errno.h) is returned.
     488 * @param   iSignalNo           Signal to raise.
     489 * @param   pSigInfo            Pointer to signal info for this signal.
     490 *                              NULL is allowed.
     491 * @param   pvXcptOrQueued      Exception handler parameter list.
     492 *                              Or if __LIBC_BSRF_QUEUED is set, a pointer to locally malloced
     493 *                              SIGQUEUED node.
     494 * @param   fFlags              Flags of the #defines __LIBC_BSRF_* describing how to
     495 *                              deliver the signal.
     496 *
     497 * @remark  This Backend Signal API does NOT require the caller to own the signal semaphore.
     498 */
     499int __libc_Back_signalRaise(int iSignalNo, siginfo_t *pSigInfo, void *pvXcptOrQueued, unsigned fFlags);
     500
     501/**
     502 * Worker called after __libc_Back_signalRaise() was called with a
     503 * preallocated signal queue entry. This function will make sure
     504 * we're not ending up with too many heap allocated packets in the
     505 * free list.
     506 */
     507void __libc_Back_signalFreeWorker(void);
     508
     509/**
     510 * Send a signal to a process.
     511 *
     512 * @returns 0 on if signal sent.
     513 * @returns -errno on failure.
     514 *
     515 * @param   pid         Process Id of the process which the signal is to be sent to.
     516 * @param   iSignalNo   The signal to send.
     517 * @remark  This Backend Signal API does NOT require the caller to own the signal semaphore.
     518 */
     519int __libc_Back_signalSendPid(pid_t pid, int iSignalNo);
     520
     521/**
     522 * Verify the existance of another process and that the current process
     523 * is allowed to signal it.
     524 *
     525 * @return 0 on success.
     526 * @return -ESRCH if pid doesn't exist.
     527 * @return -EPERM if we aren't allowed to signal the pid.
     528 * @param   pid     Process Id for the process which we wanna signal.
     529 * @todo    Do EPERM check, no ideas here yet.
     530 * @remark  This Backend Signal API does NOT require the caller to own the signal semaphore.
     531 */
     532int __libc_Back_signalVerifyPid(pid_t pid);
     533
     534/**
     535 * Not implemented.
     536 *
     537 * @returns -ENOSYS.
     538 * @param   pgrp        Process group (positive).
     539 *                      0 means the process group of this process.
     540 *                      1 means all process in the system.
     541 * @param   iSignalNo   Signal to send to all the processes in the group.
     542 */
     543int __libc_Back_signalSendPGrp(pid_t pgrp, int iSignalNo);
     544
     545/**
     546 * Verify the existance of a process group and that the current process
     547 * is allowed to signal it.
     548 *
     549 * @return 0 on success.
     550 * @return -ESRCH if pgid doesn't exist.
     551 * @return -EPERM if we aren't allowed to signal the pgid.
     552 * @param   pgid    Process group id which the current process intend to signal.
     553 * @todo    Do EPERM check, no ideas here yet.
     554 * @remark  This Backend Signal API does NOT require the caller to own the signal semaphore.
     555 */
     556int __libc_Back_signalVerifyPGrp(pid_t pgid);
     557
     558/**
     559 * sigaction worker; queries and/or sets the action for a signal.
     560 *
     561 * @returns 0 on success.
     562 * @returns -Negative errno on failure.
     563 * @param   iSignalNo   Signal number.
     564 * @param   pSigAct     Pointer to new signal action.
     565 *                      If NULL no update is done.
     566 * @param   pSigActOld  Where to store the old signal action.
     567 *                      If NULL nothing is attempted stored.
     568 */
     569int __libc_Back_signalAction(int iSignalNo, const struct sigaction *pSigAct, struct sigaction *pSigActOld);
     570
     571/**
     572 * Changes and/or queries the alternative signal stack settings of a thread.
     573 *
     574 * @returns 0 on success.
     575 * @returns Negative error number (errno.h) on failure.
     576 * @param   pThrd       Thread which signal stack to change and/or query.
     577 * @param   pStack      New stack settings. (Optional)
     578 * @param   pOldStack   Old stack settings. (Optional)
     579 */
     580int __libc_Back_signalStack(__LIBC_PTHREAD pThrd, const stack_t *pStack, stack_t *pOldStack);
     581
     582/**
     583 * Block or unblock signal deliveries of a thread.
     584 *
     585 * @returns 0 on success.
     586 * @returns -1 and errno set to EINVAL on failure.
     587 * @param   pThrd       Thread to apply this to.
     588 * @param   iHow        Describes the action taken if pSigSetNew not NULL. Recognized
     589 *                      values are SIG_BLOCK, SIG_UNBLOCK or SIG_SETMASK.
     590 *
     591 *                      SIG_BLOCK means to or the sigset pointed to by pSigSetNew with
     592 *                          the signal mask for the current thread.
     593 *                      SIG_UNBLOCK means to and the 0 complement of the sigset pointed
     594 *                          to by pSigSetNew with the signal mask of the current thread.
     595 *                      SIG_SETMASK means to set the signal mask of the current thread
     596 *                          to the sigset pointed to by pSigSetNew.
     597 *
     598 * @param   pSigSetNew  Pointer to signal set which will be applied to the current
     599 *                      threads signal mask according to iHow. If NULL no change
     600 *                      will be made the the current threads signal mask.
     601 * @param   pSigSetOld  Where to store the current threads signal mask prior to applying
     602 *                      pSigSetNew to it. This parameter can be NULL.
     603 */
     604int __libc_Back_signalMask(__LIBC_PTHREAD pThrd, int iHow, const sigset_t * __restrict pSigSetNew, sigset_t * __restrict pSigSetOld);
     605
     606/** @} */
     607
    448608__END_DECLS
    449609
  • trunk/src/emx/include/InnoTekLIBC/logstrict.h

    • Property cvs2svn:cvs-rev changed from 1.9 to 1.10
    r1616 r1617  
    177177/** Mutex Semaphores. */
    178178#define __LIBC_LOG_GRP_MUTEX        13
    179 /** Signal APIs and events. */
     179/** Signal APIs and Events. */
    180180#define __LIBC_LOG_GRP_SIGNAL       14
    181181/** Environment APIs. */
     
    184184#define __LIBC_LOG_GRP_MMAN         16
    185185
     186/** Backend Signal APIs and Events. */
     187#define __LIBC_LOG_GRP_BACK_SIGNAL  20
    186188/** Backend Memory Mananger APIs. */
    187189#define __LIBC_LOG_GRP_BACK_MMAN    21
  • trunk/src/emx/include/InnoTekLIBC/sharedpm.h

    • Property cvs2svn:cvs-rev changed from 1.12 to 1.13
    r1616 r1617  
    279279    /** Creation timestamp. */
    280280    unsigned                    uTimestamp;
    281     /** Incoming signal queue.
    282      * This is a LIFO for speed and size. The receiving process will
    283      * process them in the correct order of course.
     281    /** Incoming signal queue (FIFO).
    284282     * For signals which aren't queable only one signal can be queued.
    285283     */
     
    289287     */
    290288    volatile unsigned           cSigsSent;
     289    /** Indicates that the process is a full featured LIBC process.
     290     * Untill this flag is set (atomically) it's not a good idea to
     291     * queue signals on the process since it won't have a signal handler
     292     * installed, and thus won't get to know about them.
     293     */
     294    volatile unsigned           fExeInited;
    291295
    292296    /** Reserved pool pointer field with default value 0. */
     
    649653
    650654/**
     655 * Marks the process as a full LIBC process.
     656 *
     657 * Up to this point it was just a process which LIBC happend to be loaded into.
     658 *
     659 * @returns 0 on success.
     660 * @returns Negative error code (errno.h) on failure.
     661 * @param   pSignal     Signal to queue.
     662 * @param   pid         Pid to queue it on.
     663 * @param   fQueued     Set if the signal type is queued.
     664 */
     665void    __libc_spmExeInited(void);
     666
     667/**
    651668 * Queues a signal on another process.
    652669 *
  • trunk/src/emx/include/sys/_sigset.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r1616 r1617  
    3535 * @{
    3636 */
     37#define __SIGSET_CLONGS     2           /** Space for 64 signals. */
    3738#if __BSD_VISIBLE
    38 #define __SIGSET_CLONGS     2           /** Space for 64 signals. */
    3939#define __SIGSET_MAXSIGNALS 64          /** Maximum signals. */
    4040/** Check if the signal is valid. */
     
    7070        (result)->__bitmap[1] = (set1)->__bitmap[1] | (set2)->__bitmap[1]; \
    7171    } while (0)
    72 #endif
    7372/** @} */
     73#endif /* BSD_VISIBLE */
    7474
    7575/**
     
    8383
    8484#endif
     85
  • trunk/src/emx/include/sys/cdefs.h

    • Property cvs2svn:cvs-rev changed from 1.9 to 1.10
    r1616 r1617  
    1414 *    notice, this list of conditions and the following disclaimer in the
    1515 *    documentation and/or other materials provided with the distribution.
    16  * 3. All advertising materials mentioning features or use of this software
    17  *    must display the following acknowledgement:
    18  *      This product includes software developed by the University of
    19  *      California, Berkeley and its contributors.
    2016 * 4. Neither the name of the University nor the names of its contributors
    2117 *    may be used to endorse or promote products derived from this software
     
    3531 *
    3632 *      @(#)cdefs.h     8.8 (Berkeley) 1/9/95
    37  * $FreeBSD: src/sys/sys/cdefs.h,v 1.69 2003/04/18 18:59:34 bde Exp $
     33 * $FreeBSD: src/sys/sys/cdefs.h,v 1.81 2004/04/07 04:19:49 imp Exp $
    3834 */
    3935
    4036/** @file
    41  * FreeBSD 5.1
     37 * FreeBSD 5.2
    4238 *
    4339 * @changed bird: Toolkit compatibility (_CDEFS_H_ and __TCPROTO()).
     
    5854#define __BEGIN_DECLS
    5955#define __END_DECLS
     56#endif
     57
     58/*
     59 * Macro to test if we're using a specific version of gcc or later.
     60 */
     61#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
     62#define __GNUC_PREREQ__(ma, mi) \
     63        (__GNUC__ > (ma) || __GNUC__ == (ma) && __GNUC_MINOR__ >= (mi))
     64#else
     65#define __GNUC_PREREQ__(ma, mi) 0
    6066#endif
    6167
     
    8591#define __inline        inline          /* convert to C++ keyword */
    8692#else
    87 #ifndef __GNUC__
     93#if !(defined(__GNUC__) || defined(__INTEL_COMPILER))
    8894#define __inline                        /* delete GCC keyword */
    89 #endif /* !__GNUC__ */
     95#endif /* !(__GNUC__ || __INTEL_COMPILER) */
    9096#endif /* !__cplusplus */
    9197
     
    95101#define __STRING(x)     "x"
    96102
    97 #ifndef __GNUC__
     103#if !(defined(__GNUC__) || defined(__INTEL_COMPILER))
    98104#define __const                         /* delete pseudo-ANSI C keywords */
    99105#define __inline
     
    114120#define volatile
    115121#endif  /* !NO_ANSI_KEYWORDS */
    116 #endif  /* !__GNUC__ */
     122#endif  /* !(__GNUC__ || __INTEL_COMPILER) */
    117123#endif  /* !(__STDC__ || __cplusplus) */
    118124
     
    134140#define __section(x)
    135141#else
    136 #if __GNUC__ < 2 || __GNUC__ == 2 && __GNUC_MINOR__ < 5
     142#if !__GNUC_PREREQ__(2, 5) && !defined(__INTEL_COMPILER)
    137143#define __dead2
    138144#define __pure2
    139145#define __unused
    140146#endif
    141 #if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 && __GNUC_MINOR__ < 7
     147#if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 && __GNUC_MINOR__ < 7 && !defined(__INTEL_COMPILER)
    142148#define __dead2         __attribute__((__noreturn__))
    143149#define __pure2         __attribute__((__const__))
     
    145151/* XXX Find out what to do for __packed, __aligned and __section */
    146152#endif
    147 #if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ == 3
     153#if __GNUC_PREREQ__(2, 7)
    148154#define __dead2         __attribute__((__noreturn__))
    149155#define __pure2         __attribute__((__const__))
     
    153159#define __section(x)    __attribute__((__section__(x)))
    154160#endif
     161#if defined(__INTEL_COMPILER)
     162#define __dead2         __attribute__((__noreturn__))
     163#define __pure2         __attribute__((__const__))
     164#define __unused        __attribute__((__unused__))
     165#define __packed        __attribute__((__packed__))
     166#define __aligned(x)    __attribute__((__aligned__(x)))
     167#define __section(x)    __attribute__((__section__(x)))
     168#endif
     169#endif
     170
     171#if __GNUC_PREREQ__(3, 1) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800)
     172#define __always_inline __attribute__((__always_inline__))
     173#else
     174#define __always_inline
     175#endif
     176
     177#if __GNUC_PREREQ__(3, 3)
     178#define __nonnull(x)    __attribute__((__nonnull__(x)))
     179#else
     180#define __nonnull(x)
    155181#endif
    156182
    157183/* XXX: should use `#if __STDC_VERSION__ < 199901'. */
    158 #if !(__GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3)
     184#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
    159185#define __func__        NULL
    160186#endif
    161187
    162 #if __GNUC__ >= 2 && !defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901
     188#if (defined(__INTEL_COMPILER) || (defined(__GNUC__) && __GNUC__ >= 2)) && !defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901
    163189#define __LONG_LONG_SUPPORTED
    164190#endif
     
    171197 */
    172198#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95)
    173 #if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901 /* bird: check if not defined. (-pedantic) */
     199#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901
    174200#define __restrict
    175201#else
    176202#define __restrict      restrict
    177203#endif
     204#endif
     205
     206/*
     207 * GNU C version 2.96 adds explicit branch prediction so that
     208 * the CPU back-end can hint the processor and also so that
     209 * code blocks can be reordered such that the predicted path
     210 * sees a more linear flow, thus improving cache behavior, etc.
     211 *
     212 * The following two macros provide us with a way to utilize this
     213 * compiler feature.  Use __predict_true() if you expect the expression
     214 * to evaluate to true, and __predict_false() if you expect the
     215 * expression to evaluate to false.
     216 *
     217 * A few notes about usage:
     218 *
     219 *      * Generally, __predict_false() error condition checks (unless
     220 *        you have some _strong_ reason to do otherwise, in which case
     221 *        document it), and/or __predict_true() `no-error' condition
     222 *        checks, assuming you want to optimize for the no-error case.
     223 *
     224 *      * Other than that, if you don't know the likelihood of a test
     225 *        succeeding from empirical or other `hard' evidence, don't
     226 *        make predictions.
     227 *
     228 *      * These are meant to be used in places that are run `a lot'.
     229 *        It is wasteful to make predictions in code that is run
     230 *        seldomly (e.g. at subsystem initialization time) as the
     231 *        basic block reordering that this affects can often generate
     232 *        larger code.
     233 */
     234#if __GNUC_PREREQ__(2, 96)
     235#define __predict_true(exp)     __builtin_expect((exp), 1)
     236#define __predict_false(exp)    __builtin_expect((exp), 0)
     237#else
     238#define __predict_true(exp)     (exp)
     239#define __predict_false(exp)    (exp)
    178240#endif
    179241
     
    190252 * didn't permit keeping the keywords out of the application namespace).
    191253 */
    192 #if __GNUC__ < 2 || __GNUC__ == 2 && __GNUC_MINOR__ < 7
     254#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
    193255#define __printflike(fmtarg, firstvararg)
    194256#define __scanflike(fmtarg, firstvararg)
     
    201263
    202264/* Compiler-dependent macros that rely on FreeBSD-specific extensions. */
    203 #if defined(__FreeBSD_cc_version) && __FreeBSD_cc_version >= 300001 /* bird: check if defined to avoid -Wundef messages */
     265#if defined(__FreeBSD_cc_version) && __FreeBSD_cc_version >= 300001 && defined(__GNUC__) && !defined(__INTEL_COMPILER) /* bird: check if defined to avoid -Wundef messages */
    204266#define __printf0like(fmtarg, firstvararg) \
    205267            __attribute__((__format__ (__printf0__, fmtarg, firstvararg)))
     
    208270#endif
    209271
    210 #if 0 /* def __GNUC__ - bird: ELF specific, so skip everything */
     272#if 0 /* defined(__GNUC__) || defined(__INTEL_COMPILER) - bird: ELF specific, so skip everything */
     273#ifndef __INTEL_COMPILER
    211274#define __strong_reference(sym,aliassym)        \
    212275        extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym)));
     276#endif
    213277#ifdef __STDC__
    214278#define __weak_reference(sym,alias)     \
     
    228292        __asm__(".previous")
    229293#endif  /* __STDC__ */
    230 #endif  /* __GNUC__ */
    231 
    232 #if 0 /*def __GNUC__ - ELF specific. */
     294#endif  /* __GNUC__ || __INTEL_COMPILER */
     295
     296#if 0 /* defined(__GNUC__) || defined(__INTEL_COMPILER) - ELF specific. */
    233297#define __IDSTRING(name,string) __asm__(".ident\t\"" string "\"")
    234298#else
    235299/*
    236  * This doesn't work in header files. But it may be better than nothing.
    237  * The alternative is: #define __IDSTRING(name,string)  [nothing]
     300 * The following definition might not work well if used in header files,
     301 * but it should be better than nothing.  If you want a "do nothing"
     302 * version, then it should generate some harmless declaration, such as:
     303 *    #define __IDSTRING(name,string)   struct __hack
    238304 */
    239305#define __IDSTRING(name,string) static const char name[] __unused = string
     
    244310 * more recent ELF binutils, we use .ident allowing the ID to be stripped.
    245311 * Usage:
    246  *      __FBSDID("$FreeBSD: src/sys/sys/cdefs.h,v 1.69 2003/04/18 18:59:34 bde Exp $");
     312 *      __FBSDID("$FreeBSD: src/sys/sys/cdefs.h,v 1.81 2004/04/07 04:19:49 imp Exp $");
    247313 */
    248314#ifndef __FBSDID
     
    258324#define __RCSID(s)      __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
    259325#else
    260 #define __RCSID(s)
     326#define __RCSID(s)      struct __hack
    261327#endif
    262328#endif
     
    266332#define __RCSID_SOURCE(s)       __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s)
    267333#else
    268 #define __RCSID_SOURCE(s)
     334#define __RCSID_SOURCE(s)       struct __hack
    269335#endif
    270336#endif
     
    274340#define __SCCSID(s)     __IDSTRING(__CONCAT(__sccsid_,__LINE__),s)
    275341#else
    276 #define __SCCSID(s)
     342#define __SCCSID(s)     struct __hack
    277343#endif
    278344#endif
     
    282348#define __COPYRIGHT(s)  __IDSTRING(__CONCAT(__copyright_,__LINE__),s)
    283349#else
    284 #define __COPYRIGHT(s)
     350#define __COPYRIGHT(s)  struct __hack
    285351#endif
    286352#endif
     
    321387
    322388/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */
    323 #if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1 /* bird: check if defined to avoid -Wundef message. */
     389#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1
    324390#undef _POSIX_C_SOURCE          /* Probably illegal, but beyond caring now. */
    325391#define _POSIX_C_SOURCE         199009
     
    327393
    328394/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. */
    329 #if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2 /* bird: check if defined to avoid -Wundef message. */
     395#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2
    330396#undef _POSIX_C_SOURCE
    331397#define _POSIX_C_SOURCE         199209
  • trunk/src/emx/include/sys/signal.h

    • Property cvs2svn:cvs-rev changed from 1.7 to 1.8
    r1616 r1617  
    5252#endif
    5353#define SIGILL    4     /** ANSI: Illegal instruction */
    54 #if __XSI_VISIBLE
     54#if __XSI_VISIBLE  || __POSIX_VISIBLE >= 200112
    5555#define SIGTRAP   5     /** POSIX: Single step (debugging) */
    5656#endif
     
    6868#endif
    6969#define SIGSEGV  11     /** ANSI: Segmentation fault */
    70 #if __BSD_VISIBLE
     70#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112
    7171#define SIGSYS   12     /** Invalid argument to system call */
    7272#endif
     
    9292#endif
    9393#if __XSI_VISIBLE
     94#define SIGPOLL  23     /** ??: Input/output possible signal. (Same as SIGIO.) */
     95#endif
     96#if __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
    9497#define SIGXCPU  24     /** BSD 4.2: Exceeded CPU time limit. */
    9598#define SIGXFSZ  25     /** BSD 4.2: Exceeded file size limit. */
     99#endif
     100#if __XSI_VISIBLE
    96101#define SIGVTALRM 26    /** BSD 4.2: Virtual time alarm. */
     102#endif
     103#if __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
    97104#define SIGPROF  27     /** BSD 4.2: Profiling time alarm. */
    98105#endif
     
    188195 * @{
    189196 */
    190 /** Deliver signal on alternate stack. */
     197/** Current on alternative stack. */
    191198#define SS_ONSTACK          0x00000001
    192199/** Do not take signal on alternate stack. */
     
    422429/** If set the signal was queue. */
    423430#define __LIBC_SI_QUEUED        0x00000001
     431/** Internal signal generated by LIBC. */
     432#define __LIBC_SI_INTERNAL      0x00000002
    424433/** @} */
    425434#endif
     
    452461};
    453462#define sa_handler      __sigaction_u.__sa_handler
     463#define sa_sigaction    __sigaction_u.__sa_sigaction
    454464#endif
    455465
Note: See TracChangeset for help on using the changeset viewer.