42 zval *seed = zend_hash_str_find_deref(
args,
"seed",
sizeof(
"seed") - 1);
72 digest[0] = (
unsigned char)((ctx->
h >> 24) & 0xff);
73 digest[1] = (
unsigned char)((ctx->
h >> 16) & 0xff);
74 digest[2] = (
unsigned char)((ctx->
h >> 8) & 0xff);
75 digest[3] = (
unsigned char)(ctx->
h & 0xff);
80 copy_context->
h = orig_context->
h;
82 copy_context->
len = orig_context->
len;
104 zval *seed = zend_hash_str_find_deref(
args,
"seed",
sizeof(
"seed") - 1);
109 uint32_t _seed = (uint32_t)
Z_LVAL_P(seed);
136 uint32_t h[4] = {0, 0, 0, 0};
139 digest[0] = (
unsigned char)((h[0] >> 24) & 0xff);
140 digest[1] = (
unsigned char)((h[0] >> 16) & 0xff);
141 digest[2] = (
unsigned char)((h[0] >> 8) & 0xff);
142 digest[3] = (
unsigned char)(h[0] & 0xff);
143 digest[4] = (
unsigned char)((h[1] >> 24) & 0xff);
144 digest[5] = (
unsigned char)((h[1] >> 16) & 0xff);
145 digest[6] = (
unsigned char)((h[1] >> 8) & 0xff);
146 digest[7] = (
unsigned char)(h[1] & 0xff);
147 digest[8] = (
unsigned char)((h[2] >> 24) & 0xff);
148 digest[9] = (
unsigned char)((h[2] >> 16) & 0xff);
149 digest[10] = (
unsigned char)((h[2] >> 8) & 0xff);
150 digest[11] = (
unsigned char)(h[2] & 0xff);
151 digest[12] = (
unsigned char)((h[3] >> 24) & 0xff);
152 digest[13] = (
unsigned char)((h[3] >> 16) & 0xff);
153 digest[14] = (
unsigned char)((h[3] >> 8) & 0xff);
154 digest[15] = (
unsigned char)(h[3] & 0xff);
159 memcpy(©_context->
h, &orig_context->
h,
sizeof orig_context->
h);
161 copy_context->
len = orig_context->
len;
183 zval *seed = zend_hash_str_find_deref(
args,
"seed",
sizeof(
"seed") - 1);
188 uint64_t _seed = (uint64_t)
Z_LVAL_P(seed);
213 uint64_t h[2] = {0, 0};
216 digest[0] = (
unsigned char)((h[0] >> 56) & 0xff);
217 digest[1] = (
unsigned char)((h[0] >> 48) & 0xff);
218 digest[2] = (
unsigned char)((h[0] >> 40) & 0xff);
219 digest[3] = (
unsigned char)((h[0] >> 32) & 0xff);
220 digest[4] = (
unsigned char)((h[0] >> 24) & 0xff);
221 digest[5] = (
unsigned char)((h[0] >> 16) & 0xff);
222 digest[6] = (
unsigned char)((h[0] >> 8) & 0xff);
223 digest[7] = (
unsigned char)(h[0] & 0xff);
224 digest[8] = (
unsigned char)((h[1] >> 56) & 0xff);
225 digest[9] = (
unsigned char)((h[1] >> 48) & 0xff);
226 digest[10] = (
unsigned char)((h[1] >> 40) & 0xff);
227 digest[11] = (
unsigned char)((h[1] >> 32) & 0xff);
228 digest[12] = (
unsigned char)((h[1] >> 24) & 0xff);
229 digest[13] = (
unsigned char)((h[1] >> 16) & 0xff);
230 digest[14] = (
unsigned char)((h[1] >> 8) & 0xff);
231 digest[15] = (
unsigned char)(h[1] & 0xff);
236 memcpy(©_context->
h, &orig_context->
h,
sizeof orig_context->
h);
238 copy_context->
len = orig_context->
len;
void PMurHash128x86_Result(const uint32_t ph[4], const uint32_t pcarry[4], uint32_t total_length, uint32_t out[4])
void PMurHash128x64_Process(uint64_t ph[2], uint64_t pcarry[2], const void *const key, int len)
void PMurHash128x64_Result(const uint64_t ph[2], const uint64_t pcarry[2], const uint32_t total_length, uint64_t out[2])
void PMurHash128x86_Process(uint32_t ph[4], uint32_t pcarry[4], const void *const key, int len)
uint32_t PMurHash32_Result(uint32_t h, uint32_t carry, uint32_t total_length)
void PMurHash32_Process(uint32_t *ph1, uint32_t *pcarry, const void *key, int len)
memset(ptr, 0, type->size)
const php_stream_filter_ops * ops
PHP_HASH_API zend_result php_hash_serialize(const php_hashcontext_object *hash, zend_long *magic, zval *zv)
PHP_HASH_API int php_hash_unserialize(php_hashcontext_object *hash, zend_long magic, const zval *zv)
const php_hash_ops php_hash_murmur3c_ops
PHP_HASH_API void PHP_MURMUR3CInit(PHP_MURMUR3C_CTX *ctx, HashTable *args)
const php_hash_ops php_hash_murmur3f_ops
PHP_HASH_API void PHP_MURMUR3FFinal(unsigned char digest[16], PHP_MURMUR3F_CTX *ctx)
PHP_HASH_API void PHP_MURMUR3FInit(PHP_MURMUR3F_CTX *ctx, HashTable *args)
PHP_HASH_API void PHP_MURMUR3AFinal(unsigned char digest[4], PHP_MURMUR3A_CTX *ctx)
PHP_HASH_API void PHP_MURMUR3AInit(PHP_MURMUR3A_CTX *ctx, HashTable *args)
const php_hash_ops php_hash_murmur3a_ops
PHP_HASH_API zend_result PHP_MURMUR3CCopy(const php_hash_ops *ops, const PHP_MURMUR3C_CTX *orig_context, PHP_MURMUR3C_CTX *copy_context)
PHP_HASH_API zend_result PHP_MURMUR3ACopy(const php_hash_ops *ops, const PHP_MURMUR3A_CTX *orig_context, PHP_MURMUR3A_CTX *copy_context)
PHP_HASH_API void PHP_MURMUR3CUpdate(PHP_MURMUR3C_CTX *ctx, const unsigned char *in, size_t len)
PHP_HASH_API void PHP_MURMUR3FUpdate(PHP_MURMUR3F_CTX *ctx, const unsigned char *in, size_t len)
PHP_HASH_API void PHP_MURMUR3CFinal(unsigned char digest[16], PHP_MURMUR3C_CTX *ctx)
PHP_HASH_API zend_result PHP_MURMUR3FCopy(const php_hash_ops *ops, const PHP_MURMUR3F_CTX *orig_context, PHP_MURMUR3F_CTX *copy_context)
PHP_HASH_API void PHP_MURMUR3AUpdate(PHP_MURMUR3A_CTX *ctx, const unsigned char *in, size_t len)
PHPAPI ZEND_COLD void php_error_docref(const char *docref, int type, const char *format,...)
void(* php_hash_final_func_t)(unsigned char *digest, void *context)
zend_result(* php_hash_copy_func_t)(const void *ops, const void *orig_context, void *dest_context)
void(* php_hash_init_func_t)(void *context, HashTable *args)
void(* php_hash_update_func_t)(void *context, const unsigned char *buf, size_t count)
struct _php_hash_ops php_hash_ops
#define PHP_MURMUR3C_SPEC
#define PHP_MURMUR3A_SPEC
#define PHP_MURMUR3F_SPEC
struct _zend_array HashTable
ZEND_RESULT_CODE zend_result