vshost-util-vserver

Build script and sources for util-vserver.
git clone https://ccx.te2000.cz/git/vshost-util-vserver
Log | Files | Refs

compat.h (3017B)


      1 // $Id$    --*- c++ -*--
      2 
      3 // Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
      4 //  
      5 // This program is free software; you can redistribute it and/or modify
      6 // it under the terms of the GNU General Public License as published by
      7 // the Free Software Foundation; version 2 of the License.
      8 //  
      9 // This program is distributed in the hope that it will be useful,
     10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
     11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12 // GNU General Public License for more details.
     13 //  
     14 // You should have received a copy of the GNU General Public License
     15 // along with this program; if not, write to the Free Software
     16 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     17 
     18 
     19 #ifndef H_UTIL_VSERVER_COMPAT_H
     20 #define H_UTIL_VSERVER_COMPAT_H
     21 
     22 #if defined(__dietlibc__) && !defined(ENSC_DIETLIBC_C99) && defined(__STRICT_ANSI__) && defined(__STDC_VERSION__)
     23 #  include <sys/cdefs.h>
     24 #  undef inline
     25 
     26 #  undef  __STRICT_ANSI__
     27 #  include <stdint.h>
     28 #  define __STRICT_ANSI__
     29 #endif
     30 
     31 #if defined(__dietlibc__)
     32 #  define ENSC_FIX_IOCTL(X)	do { if ((X)<-1) { errno=-(X); (X) = -1; } } while (0)
     33 #else
     34 #  define ENSC_FIX_IOCTL(X)	do { } while (0)
     35 #endif
     36 
     37 #if defined(__GNUC__)
     38 #  define UNUSED                __attribute__((__unused__))
     39 #  define NORETURN              __attribute__((__noreturn__))
     40 #  define CONST			__attribute__((__const__))
     41 #  if __GNUC__*0x10000 + __GNUC_MINOR__*0x100 + __GNUC_PATCHLEVEL__ >= 0x30300
     42 #    define NONNULL(ARGS)	__attribute__((__nonnull__ ARGS))
     43 #    define ALWAYSINLINE        __attribute__((__always_inline__))
     44 #  else
     45 #    define NONNULL(ARGS)
     46 #    define ALWAYSINLINE
     47 #    define PURE
     48 #  endif
     49 #  if __GNUC__*0x10000 + __GNUC_MINOR__*0x100 + __GNUC_PATCHLEVEL__ >= 0x30303
     50 #    define PURE		__attribute__((__pure__))
     51 #  else
     52 #    define PURE
     53 #  endif
     54 #else
     55 #  define NONNULL(ARGS)
     56 #  define UNUSED
     57 #  define NORETURN
     58 #  define ALWAYSINLINE
     59 #  define PURE
     60 #  define CONST
     61 #endif
     62 
     63   // shamelessly stolen from dietlibc
     64 #define LINK_WARNING(symbol,msg)					\
     65   __asm__ (".section .gnu.warning." symbol "\n\t.string \"" msg "\"\n\t.previous")
     66 
     67 #if !defined(__builtin_expect) && (__GNUC__+0)<3
     68 #  define __builtin_expect(foo,bar)	(foo)
     69 #endif
     70 
     71 #if !defined(__STDC_VERSION__) || (__STDC_VERSION__<199901L)
     72 #  define restrict
     73 #endif
     74 
     75 #if !defined(HAVE_DECL_MS_MOVE) || !(HAVE_DECL_MS_MOVE)
     76   // from <linux/fs.h>
     77 #  define MS_MOVE		8192
     78 #endif
     79 
     80 #ifndef HAVE_XID_T
     81 #include <stdint.h>
     82 typedef uint32_t		xid_t;
     83 #endif
     84 
     85 #ifndef HAVE_NID_T
     86 #include <stdint.h>
     87 typedef uint32_t		nid_t;
     88 #endif
     89 
     90 #ifndef HAVE_TAG_T
     91 #include <stdint.h>
     92 typedef uint32_t		tag_t;
     93 #endif
     94 
     95 
     96 #ifndef TEMP_FAILURE_RETRY
     97   #define TEMP_FAILURE_RETRY(expression)				\
     98   (__extension__							\
     99    ({ long int __result;						\
    100    do __result = (long int) (expression);				\
    101    while (__result == -1L && errno == EINTR);				\
    102   __result; }))
    103 #endif
    104 
    105 #define FMT_PREFIX		utilvserver_fmt_
    106 
    107 #endif	//  H_UTIL_VSERVER_COMPAT_H