]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/alpha/include/ansi.h
This commit was generated by cvs2svn to compensate for changes in r53796,
[FreeBSD/FreeBSD.git] / sys / alpha / include / ansi.h
1 /* $FreeBSD$ */
2 /* From: NetBSD: ansi.h,v 1.9 1997/11/23 20:20:53 kleink Exp */
3
4 /*-
5  * Copyright (c) 1990, 1993
6  *      The Regents of the University of California.  All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  * 3. All advertising materials mentioning features or use of this software
17  *    must display the following acknowledgement:
18  *      This product includes software developed by the University of
19  *      California, Berkeley and its contributors.
20  * 4. Neither the name of the University nor the names of its contributors
21  *    may be used to endorse or promote products derived from this software
22  *    without specific prior written permission.
23  *
24  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34  * SUCH DAMAGE.
35  *
36  *      @(#)ansi.h      8.2 (Berkeley) 1/4/94
37  */
38
39 #ifndef _ANSI_H_
40 #define _ANSI_H_
41
42 /*
43  * Types which are fundamental to the implementation and may appear in
44  * more than one standard header are defined here.  Standard headers
45  * then use:
46  *      #ifdef  _BSD_SIZE_T_
47  *      typedef _BSD_SIZE_T_ size_t;
48  *      #undef  _BSD_SIZE_T_
49  *      #endif
50  */
51 #define _BSD_CLOCK_T_           int             /* clock() */
52 #define _BSD_PTRDIFF_T_         long            /* ptr1 - ptr2 */
53 #define _BSD_SIZE_T_            unsigned long   /* sizeof() */
54 #define _BSD_SSIZE_T_           long            /* byte count or error */
55 #define _BSD_TIME_T_            int             /* time() */
56 typedef struct {
57         char *__base;
58         int __offset;
59         int __pad;
60 } __va_list;
61 #define _BSD_VA_LIST_           __va_list       /* va_list */
62 #define _BSD_CLOCKID_T_         int             /* clockid_t */
63 #define _BSD_TIMER_T_           int             /* timer_t */
64 #define _BSD_SUSECONDS_T_       int             /* suseconds_t */
65 #define _BSD_USECONDS_T_        unsigned int    /* useconds_t */
66
67 /*
68  * Types which are fundamental to the implementation and must be used
69  * in more than one standard header although they are only declared in
70  * one (perhaps nonstandard) header are defined here.  Standard headers
71  * use _BSD_XXX_T_ without undef'ing it.
72  */
73 #define _BSD_CT_RUNE_T_ int                     /* arg type for ctype funcs */
74 #define _BSD_OFF_T_     long                    /* file offset */
75 #define _BSD_PID_T_     int                     /* process [group] */
76
77 /*
78  * Runes (wchar_t) is declared to be an ``int'' instead of the more natural
79  * ``unsigned long'' or ``long''.  Two things are happening here.  It is not
80  * unsigned so that EOF (-1) can be naturally assigned to it and used.  Also,
81  * it looks like 10646 will be a 31 bit standard.  This means that if your
82  * ints cannot hold 32 bits, you will be in trouble.  The reason an int was
83  * chosen over a long is that the is*() and to*() routines take ints (says
84  * ANSI C), but they use _RUNE_T_ instead of int.  By changing it here, you
85  * lose a bit of ANSI conformance, but your programs will still work.
86  *    
87  * Note that _WCHAR_T_ and _RUNE_T_ must be of the same type.  When wchar_t
88  * and rune_t are typedef'd, _WCHAR_T_ will be undef'd, but _RUNE_T remains
89  * defined for ctype.h.
90  */
91 #define _BSD_WCHAR_T_   int                     /* wchar_t */
92 #define _BSD_WINT_T_    int                     /* wint_t */
93 #define _BSD_RUNE_T_    int                     /* rune_t */
94
95 /*
96  * Frequencies of the clock ticks reported by clock() and times().  They
97  * are the same as stathz for bogus historical reasons.  They should be
98  * 1e6 because clock() and times() are implemented using getrusage() and
99  * there is no good reason why they should be less accurate.  There is
100  * the bad reason that (broken) programs might not like clock_t or
101  * CLOCKS_PER_SEC being ``double'' (``unsigned long'' is not large enough
102  * to hold the required 24 hours worth of ticks if the frequency is
103  * 1000000ul, and ``unsigned long long'' would be nonstandard).
104  */
105 #define _BSD_CLK_TCK_           100
106 #define _BSD_CLOCKS_PER_SEC_    100
107
108 /*
109  * Internal names for basic integral types.  Omit the typedef if
110  * not possible for a machine/compiler combination.
111  */
112 typedef __signed char              __int8_t;
113 typedef unsigned char             __uint8_t;
114 typedef short                     __int16_t;
115 typedef unsigned short           __uint16_t;
116 typedef int                       __int32_t;
117 typedef unsigned int             __uint32_t;
118 typedef long                      __int64_t;
119 typedef unsigned long            __uint64_t;
120
121 typedef long                     __intptr_t;
122 typedef unsigned long           __uintptr_t;
123
124 #endif  /* _ANSI_H_ */