Remove unused u64 type definitions.
[gnupg.git] / common / types.h
1 /* types.h - define some extra types
2  *      Copyright (C) 1999, 2000, 2001, 2006 Free Software Foundation, Inc.
3  *
4  * This file is part of JNLIB, which is a subsystem of GnuPG.
5  *
6  * JNLIB is free software; you can redistribute it and/or modify it
7  * under the terms of either
8  *
9  *   - the GNU Lesser General Public License as published by the Free
10  *     Software Foundation; either version 3 of the License, or (at
11  *     your option) any later version.
12  *
13  * or
14  *
15  *   - the GNU General Public License as published by the Free
16  *     Software Foundation; either version 2 of the License, or (at
17  *     your option) any later version.
18  *
19  * or both in parallel, as here.
20  *
21  * JNLIB is distributed in the hope that it will be useful, but
22  * WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
24  * General Public License for more details.
25  *
26  * You should have received a copies of the GNU General Public License
27  * and the GNU Lesser General Public License along with this program;
28  * if not, see <http://www.gnu.org/licenses/>.
29  */
30
31 #ifndef LIBJNLIB_TYPES_H
32 #define LIBJNLIB_TYPES_H
33
34 /* The AC_CHECK_SIZEOF() in configure fails for some machines.
35  * we provide some fallback values here */
36 #if !SIZEOF_UNSIGNED_SHORT
37 #  undef SIZEOF_UNSIGNED_SHORT
38 #  define SIZEOF_UNSIGNED_SHORT 2
39 #endif
40 #if !SIZEOF_UNSIGNED_INT
41 #  undef SIZEOF_UNSIGNED_INT
42 #  define SIZEOF_UNSIGNED_INT 4
43 #endif
44 #if !SIZEOF_UNSIGNED_LONG
45 #  undef SIZEOF_UNSIGNED_LONG
46 #  define SIZEOF_UNSIGNED_LONG 4
47 #endif
48
49
50 #include <sys/types.h>
51
52
53 #ifndef HAVE_BYTE_TYPEDEF
54 #  undef byte       /* There might be a macro with this name.  */
55 /* Windows typedefs byte in the rpc headers.  Avoid warning about
56    double definition.  */
57 #if !(defined(_WIN32) && defined(cbNDRContext))
58   typedef unsigned char byte;
59 #endif
60 #  define HAVE_BYTE_TYPEDEF
61 #endif
62
63 #ifndef HAVE_USHORT_TYPEDEF
64 #  undef ushort     /* There might be a macro with this name.  */
65    typedef unsigned short ushort;
66 #  define HAVE_USHORT_TYPEDEF
67 #endif
68
69 #ifndef HAVE_ULONG_TYPEDEF
70 #  undef ulong      /* There might be a macro with this name.  */
71    typedef unsigned long ulong;
72 #  define HAVE_ULONG_TYPEDEF
73 #endif
74
75 #ifndef HAVE_U16_TYPEDEF
76 #  undef u16        /* There might be a macro with this name.  */
77 #  if SIZEOF_UNSIGNED_INT == 2
78      typedef unsigned int   u16;
79 #  elif SIZEOF_UNSIGNED_SHORT == 2
80      typedef unsigned short u16;
81 #  else
82 #    error no typedef for u16
83 #  endif
84 #  define HAVE_U16_TYPEDEF
85 #endif
86
87 #ifndef HAVE_U32_TYPEDEF
88 #  undef u32        /* There might be a macro with this name.  */
89 #  if SIZEOF_UNSIGNED_INT == 4
90      typedef unsigned int u32;
91 #  elif SIZEOF_UNSIGNED_LONG == 4
92      typedef unsigned long u32;
93 #  else
94 #    error no typedef for u32
95 #  endif
96 #  define HAVE_U32_TYPEDEF
97 #endif
98
99
100 /* Some GCC attributes.  Note that we use also define some in
101    mischelp.h, but this header and types.h are not always included.
102    Should eventually be put into one file (e.g. nlib-common.h).  */
103 #if __GNUC__ >= 4
104 # define GNUPG_GCC_A_SENTINEL(a) __attribute__ ((sentinel(a)))
105 #else
106 # define GNUPG_GCC_A_SENTINEL(a)
107 #endif
108
109
110
111 #endif /*LIBJNLIB_TYPES_H*/