From: Stéphane Graber Date: Thu, 13 Feb 2014 22:34:26 +0000 (-0500) Subject: Revert "move fnv_64a_buf to utils.c and remove mutliple copies" X-Git-Tag: lxc-1.0.0.rc1~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e1579aaff65242d8aac4afd1ff42e005e394eaa4;p=thirdparty%2Flxc.git Revert "move fnv_64a_buf to utils.c and remove mutliple copies" Fix clang breakage. This reverts commit 7cd32872b697e02a9a326e80d52ef0b934de530c. --- diff --git a/src/lxc/conf.c b/src/lxc/conf.c index 4336258af..0de189fd2 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -1119,6 +1119,38 @@ static int setup_rootfs_pivot_root(const char *rootfs, const char *pivotdir) return 0; } + +/* + * Note: This is a verbatum copy of what is in monitor.c. We're just + * usint it here to generate a safe subdirectory in /dev/ for the + * containers /dev/ + */ + +/* Note we don't use SHA-1 here as we don't want to depend on HAVE_GNUTLS. + * FNV has good anti collision properties and we're not worried + * about pre-image resistance or one-way-ness, we're just trying to make + * the name unique in the 108 bytes of space we have. + */ +#define FNV1A_64_INIT ((uint64_t)0xcbf29ce484222325ULL) +static uint64_t fnv_64a_buf(void *buf, size_t len, uint64_t hval) +{ + unsigned char *bp; + + for(bp = buf; bp < (unsigned char *)buf + len; bp++) + { + /* xor the bottom with the current octet */ + hval ^= (uint64_t)*bp; + + /* gcc optimised: + * multiply by the 64 bit FNV magic prime mod 2^64 + */ + hval += (hval << 1) + (hval << 4) + (hval << 5) + + (hval << 7) + (hval << 8) + (hval << 40); + } + + return hval; +} + /* * Check to see if a directory has something mounted on it and, * if it does, return the fstype. diff --git a/src/lxc/monitor.c b/src/lxc/monitor.c index ef658f5c4..5e21dc5ac 100644 --- a/src/lxc/monitor.c +++ b/src/lxc/monitor.c @@ -123,6 +123,31 @@ int lxc_monitor_close(int fd) return close(fd); } +/* Note we don't use SHA-1 here as we don't want to depend on HAVE_GNUTLS. + * FNV has good anti collision properties and we're not worried + * about pre-image resistance or one-way-ness, we're just trying to make + * the name unique in the 108 bytes of space we have. + */ +#define FNV1A_64_INIT ((uint64_t)0xcbf29ce484222325ULL) +static uint64_t fnv_64a_buf(void *buf, size_t len, uint64_t hval) +{ + unsigned char *bp; + + for(bp = buf; bp < (unsigned char *)buf + len; bp++) + { + /* xor the bottom with the current octet */ + hval ^= (uint64_t)*bp; + + /* gcc optimised: + * multiply by the 64 bit FNV magic prime mod 2^64 + */ + hval += (hval << 1) + (hval << 4) + (hval << 5) + + (hval << 7) + (hval << 8) + (hval << 40); + } + + return hval; +} + int lxc_monitor_sock_name(const char *lxcpath, struct sockaddr_un *addr) { size_t len; int ret; diff --git a/src/lxc/utils.c b/src/lxc/utils.c index 3dff104df..90401a580 100644 --- a/src/lxc/utils.c +++ b/src/lxc/utils.c @@ -245,7 +245,7 @@ const char *lxc_global_config_value(const char *option_name) { NULL, NULL }, }; - /* placed in the thread local storage pool for non-bionic targets */ + /* placed in the thread local storage pool for non-bionic targets */ #ifdef HAVE_TLS static __thread const char *values[sizeof(options) / sizeof(options[0])] = { 0 }; #else @@ -1151,27 +1151,3 @@ bool dir_exists(const char *path) return false; return S_ISDIR(sb.st_mode); } - -/* Note we don't use SHA-1 here as we don't want to depend on HAVE_GNUTLS. - * FNV has good anti collision properties and we're not worried - * about pre-image resistance or one-way-ness, we're just trying to make - * the name unique in the 108 bytes of space we have. - */ -uint64_t fnv_64a_buf(void *buf, size_t len, uint64_t hval) -{ - unsigned char *bp; - - for(bp = buf; bp < (unsigned char *)buf + len; bp++) - { - /* xor the bottom with the current octet */ - hval ^= (uint64_t)*bp; - - /* gcc optimised: - * multiply by the 64 bit FNV magic prime mod 2^64 - */ - hval += (hval << 1) + (hval << 4) + (hval << 5) + - (hval << 7) + (hval << 8) + (hval << 40); - } - - return hval; -} diff --git a/src/lxc/utils.h b/src/lxc/utils.h index 887d54c57..dec65269c 100644 --- a/src/lxc/utils.h +++ b/src/lxc/utils.h @@ -272,7 +272,4 @@ inline static bool am_unpriv(void) { extern uid_t get_ns_uid(uid_t orig); extern bool dir_exists(const char *path); - -#define FNV1A_64_INIT ((uint64_t)0xcbf29ce484222325ULL) -extern inline uint64_t fnv_64a_buf(void *buf, size_t len, uint64_t hval); #endif