gwenhywfar  5.1.3
gwenhywfarapi.h
Go to the documentation of this file.
1 /***************************************************************************
2  $RCSfile$
3  -------------------
4  cvs : $Id$
5  begin : Wed Sep 02 2002
6  copyright : (C) 2002 by Martin Preuss
7  email : martin@libchipcard.de
8 
9  ***************************************************************************
10  * *
11  * This library is free software; you can redistribute it and/or *
12  * modify it under the terms of the GNU Lesser General Public *
13  * License as published by the Free Software Foundation; either *
14  * version 2.1 of the License, or (at your option) any later version. *
15  * *
16  * This library is distributed in the hope that it will be useful, *
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
19  * Lesser General Public License for more details. *
20  * *
21  * You should have received a copy of the GNU Lesser General Public *
22  * License along with this library; if not, write to the Free Software *
23  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, *
24  * MA 02111-1307 USA *
25  * *
26  ***************************************************************************/
27 
28 #ifndef GWENHYWFARAPI_H
29 #define GWENHYWFARAPI_H
30 
31 #include <gwenhywfar/types.h>
32 
33 #ifdef GWENHYWFAR_IS_SUBPROJECT
34 # define GWENHYWFAR_API
35 # define GWENHYWFAR_EXPORT
36 # define GWENHYWFAR_NOEXPORT
37 # define GWEN_UNUSED
38 #else
39 # ifdef BUILDING_GWENHYWFAR
40 /* building Gwenhywfar */
41 # if GWENHYWFAR_SYS_IS_WINDOWS
42 /* for windows */
43 # ifdef __declspec
44 # define GWENHYWFAR_API __declspec (dllexport)
45 # else /* if __declspec */
46 # define GWENHYWFAR_API
47 # endif /* if NOT __declspec */
48 # else
49 /* for non-win32 */
50 # ifdef GCC_WITH_VISIBILITY_ATTRIBUTE
51 # define GWENHYWFAR_API __attribute__((visibility("default")))
52 # else
53 # define GWENHYWFAR_API
54 # endif
55 # endif
56 # else
57 /* not building Gwenhywfar */
58 # if GWENHYWFAR_SYS_IS_WINDOWS
59 /* for windows */
60 # ifdef __declspec
61 # define GWENHYWFAR_API __declspec (dllimport)
62 # else /* if __declspec */
63 # define GWENHYWFAR_API
64 # endif /* if NOT __declspec */
65 # else
66 /* for non-win32 */
67 # define GWENHYWFAR_API
68 # endif
69 # endif
70 
71 # ifdef GCC_WITH_VISIBILITY_ATTRIBUTE
72 # define GWENHYWFAR_EXPORT __attribute__((visibility("default")))
73 # define GWENHYWFAR_NOEXPORT __attribute__((visibility("hidden")))
74 # else
75 # define GWENHYWFAR_EXPORT
76 # define GWENHYWFAR_NOEXPORT
77 # endif
78 
79 # ifdef __GNUC__
80 # define GWEN_UNUSED __attribute__((unused))
81 # else
82 # define GWEN_UNUSED
83 # endif
84 #endif
85 
86 #if GWENHYWFAR_SYS_IS_WINDOWS
87 # define GWENHYWFAR_CB __stdcall
88 #else
89 # define GWENHYWFAR_CB
90 #endif
91 
92 #if GWENHYWFAR_SYS_IS_WINDOWS
93 # define GWEN_DIR_SEPARATOR '\\'
94 # define GWEN_DIR_SEPARATOR_S "\\"
95 # define GWEN_SEARCHPATH_SEPARATOR ';'
96 # define GWEN_SEARCHPATH_SEPARATOR_S ";"
97 #else
98 
100 # define GWEN_DIR_SEPARATOR '/'
101 
103 # define GWEN_DIR_SEPARATOR_S "/"
104 
106 # define GWEN_SEARCHPATH_SEPARATOR ':'
107 
109 # define GWEN_SEARCHPATH_SEPARATOR_S ":"
110 #endif
111 
112 
113 /* Convenience macros to test the versions of glibc and gcc. Taken
114  from <features.h> which does not contain this on MinGW systems. */
115 #ifndef __GNUC_PREREQ
116 # if defined __GNUC__ && defined __GNUC_MINOR__
117 # define __GNUC_PREREQ(maj, min) \
118  ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
119 # else
120 # define __GNUC_PREREQ(maj, min) 0
121 # endif
122 #endif /* __GNUC_PREREQ */
123 
124 
125 /* Taken from <sys/cdefs.h> which does not contain this on MinGW
126  systems. */
127 #ifndef __STRING
128 # define __STRING(x) #x
129 #endif /* __STRING */
130 
131 
132 /* This is needed for PalmOS, because it define some functions needed */
133 #include <string.h>
134 #include <gwenhywfar/system.h>
135 
136 
137 #if __GNUC_PREREQ(3, 0)
138 /* Only available in gcc >= 3.0.x */
139 # define DEPRECATED __attribute__((deprecated))
140 # define GWEN_UNUSED __attribute__((unused))
141 # define GWEN_LIKELY(cond) __builtin_expect(!!(cond), 1)
142 # define GWEN_UNLIKELY(cond) __builtin_expect(!!(cond), 0)
143 #else
144 # define DEPRECATED
145 # define GWEN_UNUSED
146 # define GWEN_LIKELY(cond) (!!(cond))
147 # define GWEN_UNLIKELY(cond) (!!(cond))
148 #endif /* __GNUC__ */
149 
150 
151 #if defined(__GNUC__) && !defined(__MINGW32__)
152 # define GWEN_FORMAT(fmt, pos, argstart) \
153  __attribute__ ((format (fmt, pos, argstart)))
154 #else
155 # define GWEN_FORMAT(fmt, pos, argstart)
156 #endif
157 
158 
159 #define GWEN_TIMEOUT_NONE (0)
160 #define GWEN_TIMEOUT_FOREVER (-1)
161 
162 
163 #endif
164 
165 
types.h
system.h