Annotation of coherent/f/usr/include/stdarg.h, revision 1.1.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.