[BACK]Return to stddef.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / include

Annotation of src/include/stddef.h, Revision 1.20

1.20    ! christos    1: /*     $NetBSD: stddef.h,v 1.19 2016/03/20 14:11:49 christos Exp $     */
1.4       cgd         2:
1.1       cgd         3: /*-
1.5       perry       4:  * Copyright (c) 1990, 1993
                      5:  *     The Regents of the University of California.  All rights reserved.
1.1       cgd         6:  *
                      7:  * Redistribution and use in source and binary forms, with or without
                      8:  * modification, are permitted provided that the following conditions
                      9:  * are met:
                     10:  * 1. Redistributions of source code must retain the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer.
                     12:  * 2. Redistributions in binary form must reproduce the above copyright
                     13:  *    notice, this list of conditions and the following disclaimer in the
                     14:  *    documentation and/or other materials provided with the distribution.
1.10      agc        15:  * 3. Neither the name of the University nor the names of its contributors
1.1       cgd        16:  *    may be used to endorse or promote products derived from this software
                     17:  *    without specific prior written permission.
                     18:  *
                     19:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     20:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     21:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     22:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     23:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     24:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     25:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     26:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     27:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     28:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     29:  * SUCH DAMAGE.
                     30:  *
1.5       perry      31:  *     @(#)stddef.h    8.1 (Berkeley) 6/2/93
1.1       cgd        32:  */
                     33:
                     34: #ifndef _STDDEF_H_
                     35: #define _STDDEF_H_
                     36:
1.14      christos   37: #include <sys/cdefs.h>
                     38: #include <sys/featuretest.h>
1.1       cgd        39: #include <machine/ansi.h>
                     40:
1.17      matt       41: #ifdef _BSD_PTRDIFF_T_
1.3       cgd        42: typedef        _BSD_PTRDIFF_T_ ptrdiff_t;
1.17      matt       43: #undef _BSD_PTRDIFF_T_
                     44: #endif
1.1       cgd        45:
1.3       cgd        46: #ifdef _BSD_SIZE_T_
                     47: typedef        _BSD_SIZE_T_    size_t;
                     48: #undef _BSD_SIZE_T_
1.1       cgd        49: #endif
                     50:
1.16      christos   51: #if defined(_BSD_WCHAR_T_) && !defined(__cplusplus)
1.3       cgd        52: typedef        _BSD_WCHAR_T_   wchar_t;
                     53: #undef _BSD_WCHAR_T_
1.1       cgd        54: #endif
                     55:
1.7       kleink     56: #include <sys/null.h>
1.1       cgd        57:
1.15      thorpej    58: #if __GNUC_PREREQ__(4, 0)
1.12      christos   59: #define        offsetof(type, member)  __builtin_offsetof(type, member)
                     60: #elif !defined(__cplusplus)
                     61: #define        offsetof(type, member)  ((size_t)(unsigned long)(&((type *)0)->member))
                     62: #else
1.14      christos   63: #if !__GNUC_PREREQ__(3, 4)
1.13      christos   64: #define __offsetof__(a) a
                     65: #endif
                     66: #define        offsetof(type, member) __offsetof__((reinterpret_cast<size_t> \
                     67:     (&reinterpret_cast<const volatile char &>(static_cast<type *>(0)->member))))
1.12      christos   68: #endif
1.18      mrg        69:
1.20    ! christos   70: #if (__STDC_VERSION__ - 0) >= 201112L || (__cplusplus - 0) >= 201103L
1.18      mrg        71: typedef union {
1.19      christos   72:        void *_v;
1.18      mrg        73:        long double _ld;
                     74:        long long int _ll;
                     75: } max_align_t;
1.19      christos   76: #endif
1.12      christos   77:
1.1       cgd        78: #endif /* _STDDEF_H_ */

CVSweb <webmaster@jp.NetBSD.org>