vshost-util-vserver

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

internal.h (3544B)


      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 /** \file internal.h
     19  *  \brief Declarations which are used by util-vserver internally.
     20  */
     21 
     22 #ifndef H_UTIL_VSERVER_LIB_INTERNAL_H
     23 #define H_UTIL_VSERVER_LIB_INTERNAL_H
     24 
     25 #include "fmt.h"
     26 #include "vserver.h"
     27 
     28 #include <stdlib.h>
     29 #include <stdbool.h>
     30 
     31 #ifdef __cplusplus
     32 extern "C" {
     33 #endif
     34 
     35 
     36 #ifdef HAVE_VERSIONING
     37 /* FIXME: HAVE_ASM_DOT_GLOBAL_NAME */
     38 #  define _symbol_version(real, name, version) \
     39      __asm__ (".symver " #real "," #name "@" #version)
     40 #  define _default_symbol_version(real, name, version) \
     41      __asm__ (".symver " #real "," #name "@@" #version)
     42 #else
     43 #  define _symbol_version(real, name, version)
     44 #  define _default_symbol_version(real, name, version) \
     45   extern __typeof (real) name __attribute__ ((alias (#name)));
     46 #endif
     47 #define symbol_version(real, name, version) \
     48 	_symbol_version(real, name, version)
     49 #define default_symbol_version(real, name, version) \
     50 	_default_symbol_version(real, name, version)
     51 
     52 
     53 char *	vc_getVserverByCtx_Internal(xid_t ctx, /*@null@*/vcCfgStyle *style,
     54 				    /*@null@*/char const *revdir,
     55 				    bool validate_result);
     56 
     57   
     58 int	utilvserver_checkCompatVersion();
     59 uint_least32_t	utilvserver_checkCompatConfig();
     60 bool	utilvserver_isDirectory(char const *path, bool follow_link);
     61 bool	utilvserver_isFile(char const *path, bool follow_link);
     62 bool	utilvserver_isLink(char const *path);
     63 
     64 int	utilvserver_listparser_uint32(char const *str, size_t len,
     65 				      char const **err_ptr, size_t *err_len,
     66 				      uint_least32_t *flag,
     67 				      uint_least32_t *mask,
     68 				      uint_least32_t (*func)(char const*,
     69 							     size_t, bool *
     70 					)) NONNULL((1,5,7));
     71   
     72 int	utilvserver_listparser_uint64(char const *str, size_t len,
     73 				      char const **err_ptr, size_t *err_len,
     74 				      uint_least64_t *flag,
     75 				      uint_least64_t *mask,
     76 				      uint_least64_t (*func)(char const*,
     77 							     size_t, bool *
     78 					)) NONNULL((1,5,7));
     79 
     80 struct Mapping_uint32 {
     81     char const * const	id;
     82     size_t			len;
     83     uint_least32_t		val;
     84 };
     85 
     86 struct Mapping_uint64 {
     87     char const * const	id;
     88     size_t			len;
     89     uint_least64_t		val;
     90 };
     91   
     92 ssize_t	utilvserver_value2text_uint32(char const *str, size_t len,
     93 				      struct Mapping_uint32 const *map,
     94 				      size_t map_len) NONNULL((1,3));
     95 
     96 ssize_t	utilvserver_value2text_uint64(char const *str, size_t len,
     97 				      struct Mapping_uint64 const *map,
     98 				      size_t map_len) NONNULL((1,3));
     99 
    100 ssize_t utilvserver_text2value_uint32(uint_least32_t *val,
    101 				      struct Mapping_uint32 const *map,
    102 				      size_t map_len) NONNULL((1,2));
    103   
    104 ssize_t utilvserver_text2value_uint64(uint_least64_t *val,
    105 				      struct Mapping_uint64 const *map,
    106 				      size_t map_len) NONNULL((1,2));
    107 #ifdef __cplusplus
    108 }
    109 #endif
    110 
    111 
    112 #endif	//  H_UTIL_VSERVER_LIB_INTERNAL_H