mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-03 20:55:10 +00:00
Revert "move fnv_64a_buf to utils.c and remove mutliple copies"
Fix clang breakage.
This reverts commit 7cd32872b6
.
This commit is contained in:
parent
7cd32872b6
commit
e1579aaff6
@ -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.
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user