security/nss/lib/dbm/include/cdefs.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /*
     3  * Copyright (c) 1991, 1993
     4  *	The Regents of the University of California.  All rights reserved.
     5  *
     6  * This code is derived from software contributed to Berkeley by
     7  * Berkeley Software Design, Inc.
     8  *
     9  * Redistribution and use in source and binary forms, with or without
    10  * modification, are permitted provided that the following conditions
    11  * are met:
    12  * 1. Redistributions of source code must retain the above copyright
    13  *    notice, this list of conditions and the following disclaimer.
    14  * 2. Redistributions in binary form must reproduce the above copyright
    15  *    notice, this list of conditions and the following disclaimer in the
    16  *    documentation and/or other materials provided with the distribution.
    17  * 3. ***REMOVED*** - see 
    18  *    ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
    19  * 4. Neither the name of the University nor the names of its contributors
    20  *    may be used to endorse or promote products derived from this software
    21  *    without specific prior written permission.
    22  *
    23  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    24  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    25  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    26  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    27  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    28  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    29  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    30  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    31  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    32  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    33  * SUCH DAMAGE.
    34  *
    35  *	@(#)cdefs.h	8.7 (Berkeley) 1/21/94
    36  */
    38 #ifndef	_CDEFS_H_
    39 #define	_CDEFS_H_
    41 #if defined(__cplusplus)
    42 #define	__BEGIN_DECLS	extern "C" {
    43 #define	__END_DECLS	}
    44 #else
    45 #define	__BEGIN_DECLS
    46 #define	__END_DECLS
    47 #endif
    49 /*
    50  * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
    51  * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
    52  * The __CONCAT macro is a bit tricky -- make sure you don't put spaces
    53  * in between its arguments.  __CONCAT can also concatenate double-quoted
    54  * strings produced by the __STRING macro, but this only works with ANSI C.
    55  */
    56 #if defined(__STDC__) || defined(__cplusplus) || defined(_WINDOWS) || defined(XP_OS2)
    57 #define	__P(protos)	protos		/* full-blown ANSI C */
    58 #define	__CONCAT(x,y)	x ## y
    59 #define	__STRING(x)	#x
    61 /* On HP-UX 11.00, <sys/stdsyms.h> defines __const. */
    62 #ifndef __const
    63 #define	__const		const		/* define reserved names to standard */
    64 #endif  /* __const */
    65 #define	__signed	signed
    66 #define	__volatile	volatile
    67 #ifndef _WINDOWS
    68 #if defined(__cplusplus)
    69 #define	__inline	inline		/* convert to C++ keyword */
    70 #else
    71 #if !defined(__GNUC__) && !defined(__MWERKS__)
    72 #define	__inline			/* delete GCC keyword */
    73 #endif /* !__GNUC__ */
    74 #endif /* !__cplusplus */
    75 #endif /* !_WINDOWS */
    77 #else	/* !(__STDC__ || __cplusplus) */
    78 #define	__P(protos)	()		/* traditional C preprocessor */
    79 #define	__CONCAT(x,y)	x/**/y
    80 #define	__STRING(x)	"x"
    82 #ifndef __GNUC__
    83 #define	__const				/* delete pseudo-ANSI C keywords */
    84 #define	__inline
    85 #define	__signed
    86 #define	__volatile
    87 /*
    88  * In non-ANSI C environments, new programs will want ANSI-only C keywords
    89  * deleted from the program and old programs will want them left alone.
    90  * When using a compiler other than gcc, programs using the ANSI C keywords
    91  * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
    92  * When using "gcc -traditional", we assume that this is the intent; if
    93  * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
    94  */
    95 #ifndef	NO_ANSI_KEYWORDS
    96 #define	const				/* delete ANSI C keywords */
    97 #define	inline
    98 #define	signed
    99 #define	volatile
   100 #endif
   101 #endif	/* !__GNUC__ */
   102 #endif	/* !(__STDC__ || __cplusplus) */
   104 /*
   105  * GCC1 and some versions of GCC2 declare dead (non-returning) and
   106  * pure (no side effects) functions using "volatile" and "const";
   107  * unfortunately, these then cause warnings under "-ansi -pedantic".
   108  * GCC2 uses a new, peculiar __attribute__((attrs)) style.  All of
   109  * these work for GNU C++ (modulo a slight glitch in the C++ grammar
   110  * in the distribution version of 2.5.5).
   111  */
   112 #if !defined(__GNUC__) || __GNUC__ < 2 || __GNUC_MINOR__ < 5
   113 #define	__attribute__(x)	/* delete __attribute__ if non-gcc or gcc1 */
   114 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
   115 #define	__dead		__volatile
   116 #define	__pure		__const
   117 #endif
   118 #endif
   120 /* Delete pseudo-keywords wherever they are not available or needed. */
   121 #ifndef __dead
   122 #define	__dead
   123 #define	__pure
   124 #endif
   126 #endif /* !_CDEFS_H_ */

mercurial