Changeset 829


Ignore:
Timestamp:
Oct 11, 2003, 7:46:06 PM (22 years ago)
Author:
bird
Message:

Corrected sigsetjmp and siglongjmp.

Location:
trunk/src/emx
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/include/setjmp.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r828 r829  
    1 /* setjmp.h (emx+gcc) */
     1/*-
     2 * Copyright (c) 1990, 1993
     3 *      The Regents of the University of California.  All rights reserved.
     4 * (c) UNIX System Laboratories, Inc.
     5 * All or some portions of this file are derived from material licensed
     6 * to the University of California by American Telephone and Telegraph
     7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
     8 * the permission of UNIX System Laboratories, Inc.
     9 *
     10 * Redistribution and use in source and binary forms, with or without
     11 * modification, are permitted provided that the following conditions
     12 * are met:
     13 * 1. Redistributions of source code must retain the above copyright
     14 *    notice, this list of conditions and the following disclaimer.
     15 * 2. Redistributions in binary form must reproduce the above copyright
     16 *    notice, this list of conditions and the following disclaimer in the
     17 *    documentation and/or other materials provided with the distribution.
     18 * 3. All advertising materials mentioning features or use of this software
     19 *    must display the following acknowledgement:
     20 *      This product includes software developed by the University of
     21 *      California, Berkeley and its contributors.
     22 * 4. Neither the name of the University nor the names of its contributors
     23 *    may be used to endorse or promote products derived from this software
     24 *    without specific prior written permission.
     25 *
     26 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     27 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     28 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     29 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     36 * SUCH DAMAGE.
     37 *
     38 *      @(#)setjmp.h    8.2 (Berkeley) 1/21/94
     39 * $FreeBSD: src/include/setjmp.h,v 1.8 2002/10/05 05:48:50 mike Exp $
     40 */
    241
    3 #ifndef _SETJMP_H
    4 #define _SETJMP_H
     42/** @file
     43 * FreeBSD 5.1
     44 * @changed bird: @todo'ed the functions LIBC doesn't implement.
     45 */
    546
    6 #if defined (__cplusplus)
    7 extern "C" {
     47#ifndef _SETJMP_H_
     48#define _SETJMP_H_
     49
     50#include <sys/cdefs.h>
     51
     52/* The size of the jmp_buf is machine dependent: */
     53#include <machine/setjmp.h>
     54
     55__BEGIN_DECLS
     56#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
     57void    _longjmp(jmp_buf, int) __dead2;
     58int     _setjmp(jmp_buf);
    859#endif
     60void    longjmp(jmp_buf, int) __dead2;
     61#if __BSD_VISIBLE
     62/** @todo void  longjmperror(void); */
     63#endif
     64int     setjmp(jmp_buf);
     65#if __BSD_VISIBLE || __POSIX_VISIBLE || __XSI_VISIBLE
     66void    siglongjmp(sigjmp_buf, int) __dead2;
     67int     sigsetjmp(sigjmp_buf, int);
     68#endif
     69__END_DECLS
    970
    10 /* ANSI X3.159-1989 */
    11 
    12 typedef int jmp_buf[12];
    13 
    14 int setjmp (jmp_buf);
    15 void longjmp (jmp_buf, int) __attribute__ ((__noreturn__));
    16 
    17 
    18 #if !defined (__STRICT_ANSI__)
    19 
    20 /* POSIX.1 */
    21 
    22 typedef int sigjmp_buf[14];
    23 
    24 int sigsetjmp (sigjmp_buf, int);
    25 void siglongjmp (sigjmp_buf, int) __attribute__ ((__noreturn__));
    26 
    27 #endif
    28 
    29 
    30 #if defined (__cplusplus)
    31 }
    32 #endif
    33 
    34 #endif /* not _SETJMP_H */
     71#endif /* !_SETJMP_H_ */
  • trunk/src/emx/src/lib/libc.def

    • Property cvs2svn:cvs-rev changed from 1.23 to 1.24
    r828 r829  
    642642    "__sfnlwr" @662
    643643    "_sig_info" @663
    644     "__siglongjmp" @664
     644    "__std_siglongjmp" @664
    645645    "___signbit" @665
    646646    "___signbitf" @666
    647647    "___signbitl" @667
    648     "__sigsetjmp" @668
     648    "__std_sigsetjmp" @668
    649649    "__sleep2" @669
    650650    "___small_atod" @670
  • trunk/src/emx/src/lib/misc/386/sigsetjm.s

    • Property cvs2svn:cvs-rev changed from 1.3 to 1.4
    r828 r829  
    33#include <emx/asm386.h>
    44
    5         .globl __sigsetjmp, __siglongjmp
     5        .globl _STD(sigsetjmp), _STD(siglongjmp)
    66
    77        .text
     
    2020/ Words at offsets 28..44 are reserved
    2121
    22 / int _sigsetjmp (sigjmp_buf here, int savemask)
     22/ int sigsetjmp (sigjmp_buf here, int savemask)
    2323
    24 __sigsetjmp:
     24_STD(sigsetjmp):
    2525        PROFILE_NOFRAME
    2626        movl    1*4(%esp), %edx         /* here */
     
    4646        addl    $12, %esp
    47471:      xorl    %eax, %eax
    48         EPILOGUE(_sigsetjmp)
     48        EPILOGUE(_STD(sigsetjmp))
    4949
    5050        ALIGN
    5151
    52 / void _siglongjmp (sigjmp_buf there, int n)
     52/ void siglongjmp (sigjmp_buf there, int n)
    5353
    54 __siglongjmp:
     54_STD(siglongjmp):
    5555        PROFILE_NOFRAME
    5656        movl    1*4(%esp), %eax         /* there */
     
    7979        movl    J_EIP(%edx), %edx
    8080        movl    %edx, 0*4(%esp)         /* return address */
    81         EPILOGUE(_siglongjmp)           /* well, ... */
     81        EPILOGUE(_STD(siglongjmp))      /* well, ... */
Note: See TracChangeset for help on using the changeset viewer.