|
|
DataMuseum.dkPresents historical artifacts from the history of: RC9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: @ T v
Length: 1957 (0x7a5)
Types: TextFile
Notes: @(#)varargs.h 13.2 (RC International) 12/12/90 */
Names: »varargs.h«
└─⟦50656ff4a⟧ Bits:30010538 TX 3.1 Coldstart
└─⟦bbf173f5c⟧ »0004«
└─⟦this⟧ »./usr/include/varargs.h«
└─⟦50656ff4a⟧ Bits:30010538 TX 3.1 Coldstart
└─⟦c6f24efe5⟧ »0007«
└─⟦this⟧ »comp3.0/bsd/usr/include/varargs.h«
/* @(#)varargs.h 13.2 (RC International) 12/12/90 */
/* --------------------------------------------------- */
/* | Copyright (c) 1986 MIPS Computer Systems, Inc. | */
/* | All Rights Reserved. | */
/* --------------------------------------------------- */
/* $Header: varargs.h,v 2010.3.1.5 90/02/22 19:54:43 bettina Exp $ */
#ifndef _VARARGS_H
#define _VARARGS_H 1
/* Copyright (c) 1984 AT&T */
/* All Rights Reserved */
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
/* The copyright notice above does not evidence any */
/* actual or intended publication of such source code. */
typedef char *va_list;
#define va_dcl int va_alist;
#define va_start(list) list = (char *) &va_alist
#define va_end(list)
#ifdef u370
#define va_arg(list, mode) ((mode *)(list = \
(char *) ((int)list + 2*sizeof(mode) - 1 & -sizeof(mode))))[-1]
#else
#ifdef host_mips
#ifndef MS_STAMP
#define ___INCLUDING___
#include <stamp.h> /* get the version numbers */
#endif
#if MS_STAMP<2 || (MS_STAMP==2 && LS_STAMP<10)
#define va_arg(list, mode) ((mode *)(list = \
(char *) (sizeof(mode) > 4 ? ((int)list + 2*8 - 1) & -8 \
: ((int)list + 2*4 - 1) & -4)))[-1]
#else
/* this works for structures also */
#define va_arg(list, mode) ((mode *)(list =\
(char *) ((((int)list + (__builtin_alignof(mode)<=4?3:7)) &\
(__builtin_alignof(mode)<=4?-4:-8))+sizeof(mode))))[-1]
/* +++++++++++++++++++++++++++++++++++++++++++
Because of parameter passing conventions in C:
use mode=int for char, and short types
use mode=double for float types
use a pointer for array types
+++++++++++++++++++++++++++++++++++++++++++ */
#endif
#ifdef ___INCLUDING___ /* did we include stamp.h? */
#undef _STAMP_H
#undef MS_STAMP /* undo the definitions to clean up cpp */
#undef LS_STAMP
#undef ___INCLUDING___
#endif
#else
#define va_arg(list, mode) ((mode *)(list += sizeof(mode)))[-1]
#endif
#endif
#endif