Annotation of coherent/f/usr/include/stdarg.h, revision 1.1

1.1     ! root        1: /* (-lgl
        !             2:  *     COHERENT Version 3.2
        !             3:  *     Copyright (c) 1982, 1993 by Mark Williams Company.
        !             4:  *     All rights reserved. May not be copied without permission.
        !             5:  -lgl) */
        !             6: /*
        !             7:  * stdarg.h
        !             8:  * C variable arguments header.
        !             9:  * Draft Proposed ANSI C Standard, Section 4.8, 12/7/88 draft.
        !            10:  */
        !            11: 
        !            12: #ifndef        __STDARG_H__
        !            13: #define        __STDARG_H__
        !            14: 
        !            15: #include <common/ccompat.h>
        !            16: #include <common/__valist.h>
        !            17: 
        !            18: typedef        __va_list               va_list;
        !            19: 
        !            20: /*
        !            21:  * On true ANSI/ISO C systems, we just use '...' to get the base address of
        !            22:  * the argument space. In either system, we have several options as to how
        !            23:  * we attempt to work around alignment issues (if we do at all).
        !            24:  *
        !            25:  * As a convenience, we round sizes up to a minimum size of "int". This may
        !            26:  * help people who are confused about what the implementation is permitted
        !            27:  * to do with enumeration types, for instance. This setup below will break
        !            28:  * with systems that put the padding below the datum.
        !            29:  */
        !            30: 
        !            31: #define        __size_to_int(type)     (sizeof (type) < sizeof (int) ? \
        !            32:                                 sizeof (int) : sizeof (type))
        !            33: 
        !            34: #if    __cplusplus
        !            35: 
        !            36: #define        va_start(ap, pN)        (ap = ...)
        !            37: 
        !            38: #else
        !            39: 
        !            40: #define        va_start(ap, pN)        (ap = (va_list) \
        !            41:                                        ((char *) & pN + __size_to_int (pN)))
        !            42: #endif
        !            43: 
        !            44: #define        va_arg(ap, type)        \
        !            45:        ((* (type *) ((ap += __size_to_int (type)) - __size_to_int (type))))
        !            46: #define        va_end(ap)              ((void) 0)
        !            47: 
        !            48: #endif /* ! defined (__STDARG_H__) */

unix.superglobalmegacorp.com

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