2002-11-25 15:46:33 +05:30
|
|
|
#ifndef PROCPS_PROC_PROCPS_H
|
|
|
|
#define PROCPS_PROC_PROCPS_H
|
|
|
|
|
2002-12-09 12:30:07 +05:30
|
|
|
#ifdef __cplusplus
|
|
|
|
#define EXTERN_C_BEGIN extern "C" {
|
|
|
|
#define EXTERN_C_END }
|
|
|
|
#else
|
|
|
|
#define EXTERN_C_BEGIN
|
|
|
|
#define EXTERN_C_END
|
|
|
|
#endif
|
2002-02-02 04:17:29 +05:30
|
|
|
|
2002-11-25 10:35:52 +05:30
|
|
|
#if !defined(restrict) && __STDC_VERSION__ < 199901
|
2003-01-03 22:25:40 +05:30
|
|
|
#if __GNUC__ > 2 || __GNUC_MINOR__ >= 92 // maybe 92 or 95 ?
|
2002-11-25 10:35:52 +05:30
|
|
|
#define restrict __restrict__
|
|
|
|
#else
|
|
|
|
#warning No restrict keyword?
|
|
|
|
#define restrict
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2002-12-09 13:23:09 +05:30
|
|
|
// since gcc-2.5
|
|
|
|
#define NORETURN __attribute__((__noreturn__))
|
|
|
|
|
2002-11-25 15:46:33 +05:30
|
|
|
#if __GNUC__ > 2 || __GNUC_MINOR__ >= 96
|
2002-12-03 02:35:22 +05:30
|
|
|
// won't alias anything, and aligned enough for anything
|
2002-11-25 15:46:33 +05:30
|
|
|
#define MALLOC __attribute__ ((__malloc__))
|
2002-12-03 02:35:22 +05:30
|
|
|
// tell gcc what to expect: if(unlikely(err)) die(err);
|
2002-12-04 09:34:19 +05:30
|
|
|
#define likely(x) __builtin_expect(!!(x),1)
|
|
|
|
#define unlikely(x) __builtin_expect(!!(x),0)
|
2002-12-09 12:30:07 +05:30
|
|
|
#define expected(x,y) __builtin_expect((x),(y))
|
2002-11-25 15:46:33 +05:30
|
|
|
#else
|
|
|
|
#define MALLOC
|
2002-12-03 02:35:22 +05:30
|
|
|
#define likely(x) (x)
|
|
|
|
#define unlikely(x) (x)
|
2002-12-09 12:30:07 +05:30
|
|
|
#define expected(x,y) (x)
|
2002-11-25 15:46:33 +05:30
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|