Annotation of XNU/bsd/ppc/signal.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
        !             3:  *
        !             4:  * @APPLE_LICENSE_HEADER_START@
        !             5:  * 
        !             6:  * The contents of this file constitute Original Code as defined in and
        !             7:  * are subject to the Apple Public Source License Version 1.1 (the
        !             8:  * "License").  You may not use this file except in compliance with the
        !             9:  * License.  Please obtain a copy of the License at
        !            10:  * http://www.apple.com/publicsource and read it before using this file.
        !            11:  * 
        !            12:  * This Original Code and all software distributed under the License are
        !            13:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
        !            14:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
        !            15:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
        !            16:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
        !            17:  * License for the specific language governing rights and limitations
        !            18:  * under the License.
        !            19:  * 
        !            20:  * @APPLE_LICENSE_HEADER_END@
        !            21:  */
        !            22: /*
        !            23:  * Copyright (c) 1992, 1993 NeXT Computer, Inc.
        !            24:  *
        !            25:  * HISTORY
        !            26:  *
        !            27:  *     Machine specific signal information.
        !            28:  *
        !            29:  * HISTORY
        !            30:  * 25-MAR-97  Umesh Vaishampayan ([email protected])
        !            31:  *     Ported from m98k and hppa.
        !            32:  *
        !            33:  * 13-Jan-92  Peter King (king) at NeXT Computer, Inc.
        !            34:  *     Filled out struct sigcontext to hold all registers.
        !            35:  *     Added regs_saved_t to specify which regs stored in the
        !            36:  *     sigcontext are valid.
        !            37:  *
        !            38:  * 09-Nov-92  Ben Fathi (benf) at NeXT, Inc.
        !            39:  *     Ported to m98k.
        !            40:  *
        !            41:  * 09-May-91  Mike DeMoney (mike) at NeXT, Inc.
        !            42:  *     Ported to m88k.
        !            43:  */
        !            44: 
        !            45: #ifndef        _PPC_SIGNAL_
        !            46: #define        _PPC_SIGNAL_ 1
        !            47: 
        !            48: typedef int sig_atomic_t; 
        !            49: 
        !            50: /*
        !            51:  * Machine-dependant flags used in sigvec call.
        !            52:  */
        !            53: #define        SV_SAVE_REGS    0x1000  /* Save all regs in sigcontext */
        !            54: 
        !            55: /*
        !            56:  * regs_saved_t -- Describes which registers beyond what the kernel cares
        !            57:  *                about are saved to and restored from this sigcontext.
        !            58:  *
        !            59:  * The default is REGS_SAVED_CALLER, only the caller saved registers
        !            60:  * are saved.  If the SV_SAVE_REGS flag was set when the signal
        !            61:  * handler was registered with sigvec() then all the registers will be
        !            62:  * saved in the sigcontext, and REGS_SAVED_ALL will be set.  The C
        !            63:  * library uses REGS_SAVED_NONE in order to quickly restore kernel
        !            64:  * state during a longjmp().
        !            65:  */
        !            66: typedef enum {
        !            67:        REGS_SAVED_NONE,                /* Only kernel managed regs restored */
        !            68:        REGS_SAVED_CALLER,              /* "Caller saved" regs: rpc, a0-a7,
        !            69:                                           t0-t4, at, lk0-lk1, xt1-xt20,
        !            70:                                           xr0-xr1 */
        !            71:        REGS_SAVED_ALL                  /* All registers */
        !            72: } regs_saved_t;
        !            73: 
        !            74: 
        !            75: /*
        !            76:  * Information pushed on stack when a signal is delivered.
        !            77:  * This is used by the kernel to restore state following
        !            78:  * execution of the signal handler.  It is also made available
        !            79:  * to the handler to allow it to properly restore state if
        !            80:  * a non-standard exit is performed.
        !            81:  */
        !            82: struct sigcontext {
        !            83:     int                sc_onstack;     /* sigstack state to restore */
        !            84:     int                sc_mask;        /* signal mask to restore */
        !            85:        int             sc_ir;                  /* pc */
        !            86:     int                sc_psw;         /* processor status word */
        !            87:     int                sc_sp;          /* stack pointer if sc_regs == NULL */
        !            88:        void    *sc_regs;               /* (kernel private) saved state */
        !            89: };
        !            90: 
        !            91: #endif /* _PPC_SIGNAL_ */
        !            92: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.