Ignore:
Timestamp:
Sep 15, 2004, 12:27:38 AM (21 years ago)
Author:
bird
Message:

@unixroot. header reviews. ++

File:
1 edited

Legend:

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

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r1505 r1506  
    1 /* varargs.h (emx+gcc) */
     1/* varargs.h,v 1.2 2004/09/14 22:27:36 bird Exp */
     2/** @file
     3 * FreeBSD 5.2
     4 */
     5/*-
     6 * Copyright (c) 1990, 1993
     7 *      The Regents of the University of California.  All rights reserved.
     8 * (c) UNIX System Laboratories, Inc.
     9 * All or some portions of this file are derived from material licensed
     10 * to the University of California by American Telephone and Telegraph
     11 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
     12 * the permission of UNIX System Laboratories, Inc.
     13 *
     14 * Redistribution and use in source and binary forms, with or without
     15 * modification, are permitted provided that the following conditions
     16 * are met:
     17 * 1. Redistributions of source code must retain the above copyright
     18 *    notice, this list of conditions and the following disclaimer.
     19 * 2. Redistributions in binary form must reproduce the above copyright
     20 *    notice, this list of conditions and the following disclaimer in the
     21 *    documentation and/or other materials provided with the distribution.
     22 * 3. All advertising materials mentioning features or use of this software
     23 *    must display the following acknowledgement:
     24 *      This product includes software developed by the University of
     25 *      California, Berkeley and its contributors.
     26 * 4. Neither the name of the University nor the names of its contributors
     27 *    may be used to endorse or promote products derived from this software
     28 *    without specific prior written permission.
     29 *
     30 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     31 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     32 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     33 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     34 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     35 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     36 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     37 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     38 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     39 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     40 * SUCH DAMAGE.
     41 *
     42 *      @(#)varargs.h   8.2 (Berkeley) 3/22/94
     43 * $FreeBSD: src/sys/i386/include/varargs.h,v 1.8 1999/08/28 00:44:27 peter Exp $
     44 */
    245
    3 #ifndef _VARARGS_H
    4 #define _VARARGS_H
     46#ifndef _VARARGS_H_
     47#define _VARARGS_H_
    548
    6 #if !defined (NULL)
    7 #if defined (__cplusplus)
    8 #define NULL 0
     49typedef char *va_list;
     50
     51#define __va_size(type) \
     52        (((sizeof(type) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
     53
     54#ifdef __GNUC__
     55#define va_alist        __builtin_va_alist
     56#endif
     57#if __GNUC__ > 1
     58#define va_dcl  int va_alist; ...
    959#else
    10 #define NULL ((void *)0)
    11 #endif
     60#define va_dcl  int va_alist;
    1261#endif
    1362
    14 #define _VA_LIST
     63#define va_start(ap) \
     64        ((ap) = (va_list)&va_alist)
    1565
    16 #define _VA_ROUND(type) ((sizeof (type) + 3) & -4)
     66#define va_arg(ap, type) \
     67        (*(type *)((ap) += __va_size(type), (ap) - __va_size(type)))
    1768
    18 #define va_alist __builtin_va_alist
    19 #define va_dcl int __builtin_va_alist;
    20 #define va_list char *
     69#define va_end(ap)
    2170
    22 #define va_start(alist) alist = (char *)&__builtin_va_alist
    23 #define va_end(alist) (alist = 0, (void)0)
    24 #define __std_va_arg(alist,t) (alist += _VA_ROUND (t), \
    25                                *((t *)(alist - _VA_ROUND (t))))
    26 
    27 #ifdef __BOUNDS_CHECKING_ON
    28 #include <fix-args.h>
    29 #else
    30 #define va_arg(alist,t) __std_va_arg(alist,t)
    31 #endif
    32 
    33 #endif /* not _VARARGS_H */
     71#endif /* !_VARARGS_H_ */
Note: See TracChangeset for help on using the changeset viewer.