netdev-dpdk: fix mbuf leaks
[cascardo/ovs.git] / lib / compiler.h
1 /*
2  * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifndef COMPILER_H
18 #define COMPILER_H 1
19
20 #include "openvswitch/compiler.h"
21
22 #if __GNUC__ && !__CHECKER__
23 #define STRFTIME_FORMAT(FMT) __attribute__((__format__(__strftime__, FMT, 0)))
24 #define MALLOC_LIKE __attribute__((__malloc__))
25 #define ALWAYS_INLINE __attribute__((always_inline))
26 #define SENTINEL(N) __attribute__((sentinel(N)))
27 #else
28 #define STRFTIME_FORMAT(FMT)
29 #define MALLOC_LIKE
30 #define ALWAYS_INLINE
31 #define SENTINEL(N)
32 #endif
33
34 /* Output a message (not an error) while compiling without failing the
35  * compilation process */
36 #if HAVE_PRAGMA_MESSAGE
37 #define DO_PRAGMA(x) _Pragma(#x)
38 #define BUILD_MESSAGE(x) \
39     DO_PRAGMA(message(x))
40 #else
41 #define BUILD_MESSAGE(x)
42 #endif
43
44 #endif /* compiler.h */