404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.147.195.28: ~ $
/*
   +----------------------------------------------------------------------+
   | Zend OPcache JIT                                                     |
   +----------------------------------------------------------------------+
   | Copyright (c) 1998-2014 The PHP Group                                |
   +----------------------------------------------------------------------+
   | This source file is subject to version 3.01 of the PHP license,      |
   | that is bundled with this package in the file LICENSE, and is        |
   | available through the world-wide-web at the following url:           |
   | http://www.php.net/license/3_01.txt                                  |
   | If you did not receive a copy of the PHP license and are unable to   |
   | obtain it through the world-wide-web, please send a note to          |
   | license@php.net so we can mail you a copy immediately.               |
   +----------------------------------------------------------------------+
   | Authors: Dmitry Stogov <dmitry@zend.com>                             |
   +----------------------------------------------------------------------+
*/

/* $Id:$ */

#ifndef _ZEND_BITSET_H_
#define _ZEND_BITSET_H_

typedef zend_ulong *zend_bitset;

#define ZEND_BITSET_ELM_SIZE sizeof(zend_ulong)

#if SIZEOF_ZEND_LONG == 4
# define ZEND_BITSET_ELM_NUM(n)		((n) >> 5)
# define ZEND_BITSET_BIT_NUM(n)		((zend_ulong)(n) & Z_UL(0x1f))
#elif SIZEOF_ZEND_LONG == 8
# define ZEND_BITSET_ELM_NUM(n)		((n) >> 6)
# define ZEND_BITSET_BIT_NUM(n)		((zend_ulong)(n) & Z_UL(0x3f))
#else
# define ZEND_BITSET_ELM_NUM(n)		((n) / (sizeof(zend_long) * 8))
# define ZEND_BITSET_BIT_NUM(n)		((n) % (sizeof(zend_long) * 8))
#endif

/* Returns the number of zend_ulong words needed to store a bitset that is N
   bits long.  */
static inline uint32_t zend_bitset_len(uint32_t n)
{
	return (n + ((sizeof(zend_long) * 8) - 1)) / (sizeof(zend_long) * 8);
}

#define ZEND_BITSET_ALLOCA(n, use_heap) \
	(zend_bitset)do_alloca((n) * ZEND_BITSET_ELM_SIZE, use_heap)

static inline zend_bool zend_bitset_in(zend_bitset set, uint32_t n)
{
	return (set[ZEND_BITSET_ELM_NUM(n)] & (Z_UL(1) << ZEND_BITSET_BIT_NUM(n))) != Z_UL(0);
}

static inline void zend_bitset_incl(zend_bitset set, uint32_t n)
{
	set[ZEND_BITSET_ELM_NUM(n)] |= Z_UL(1) << ZEND_BITSET_BIT_NUM(n);
}

static inline void zend_bitset_excl(zend_bitset set, uint32_t n)
{
	set[ZEND_BITSET_ELM_NUM(n)] &= ~(Z_UL(1) << ZEND_BITSET_BIT_NUM(n));
}

static inline void zend_bitset_clear(zend_bitset set, uint32_t len)
{
	memset(set, 0, len * ZEND_BITSET_ELM_SIZE);
}

static inline int zend_bitset_empty(zend_bitset set, uint32_t len)
{
	uint32_t i;
	for (i = 0; i < len; i++) {
		if (set[i]) {
			return 0;
		}
	}
	return 1;
}

static inline void zend_bitset_fill(zend_bitset set, uint32_t len)
{
	memset(set, 0xff, len * ZEND_BITSET_ELM_SIZE);
}

static inline zend_bool zend_bitset_equal(zend_bitset set1, zend_bitset set2, uint32_t len)
{
    return memcmp(set1, set2, len * ZEND_BITSET_ELM_SIZE) == 0;
}

static inline void zend_bitset_copy(zend_bitset set1, zend_bitset set2, uint32_t len)
{
    memcpy(set1, set2, len * ZEND_BITSET_ELM_SIZE);
}

static inline void zend_bitset_intersection(zend_bitset set1, zend_bitset set2, uint32_t len)
{
    uint32_t i;

    for (i = 0; i < len; i++) {
		set1[i] &= set2[i];
	}
}

static inline void zend_bitset_union(zend_bitset set1, zend_bitset set2, uint32_t len)
{
	uint32_t i;

	for (i = 0; i < len; i++) {
		set1[i] |= set2[i];
	}
}

static inline void zend_bitset_difference(zend_bitset set1, zend_bitset set2, uint32_t len)
{
	uint32_t i;

	for (i = 0; i < len; i++) {
		set1[i] = set1[i] & ~set2[i];
	}
}

static inline void zend_bitset_union_with_intersection(zend_bitset set1, zend_bitset set2, zend_bitset set3, zend_bitset set4, uint32_t len)
{
	uint32_t i;

	for (i = 0; i < len; i++) {
		set1[i] = set2[i] | (set3[i] & set4[i]);
	}
}

static inline void zend_bitset_union_with_difference(zend_bitset set1, zend_bitset set2, zend_bitset set3, zend_bitset set4, uint32_t len)
{
	uint32_t i;

	for (i = 0; i < len; i++) {
		set1[i] = set2[i] | (set3[i] & ~set4[i]);
	}
}

static inline int zend_bitset_first(zend_bitset set, uint32_t len)
{
	uint32_t i;

	for (i = 0; i < len; i++) {
		if (set[i]) {
			int j = ZEND_BITSET_ELM_SIZE * 8 * i;
			zend_ulong x = set[i];
			while ((x & Z_UL(1)) == 0) {
				x = x >> Z_UL(1);
				j++;
			}
			return j;
		}
	}
	return -1; /* empty set */
}

static inline int zend_bitset_last(zend_bitset set, uint32_t len)
{
	uint32_t i = len;

	while (i > 0) {
		i--;
		if (set[i]) {
			int j = ZEND_BITSET_ELM_SIZE * 8 * i - 1;
			zend_ulong x = set[i];
			while (x != Z_UL(0)) {
				x = x >> Z_UL(1);
				j++;
			}
			return j;
		}
	}
	return -1; /* empty set */
}

#endif /* _ZEND_BITSET_H_ */

/*
 * Local variables:
 * tab-width: 4
 * c-basic-offset: 4
 * indent-tabs-mode: t
 * End:
 */

Filemanager

Name Type Size Permission Actions
zend.h File 12.49 KB 0644
zend_API.h File 54.41 KB 0644
zend_alloc.h File 18.72 KB 0644
zend_alloc_sizes.h File 2.57 KB 0644
zend_arena.h File 3.65 KB 0644
zend_ast.h File 7.92 KB 0644
zend_bitset.h File 4.79 KB 0644
zend_build.h File 1.59 KB 0644
zend_builtin_functions.h File 1.58 KB 0644
zend_closures.h File 1.96 KB 0644
zend_compile.h File 32.01 KB 0644
zend_config.h File 107 B 0644
zend_config.nw.h File 2.44 KB 0644
zend_config.w32.h File 2.72 KB 0644
zend_constants.h File 5.79 KB 0644
zend_dtrace.h File 1.91 KB 0644
zend_errors.h File 2.11 KB 0644
zend_exceptions.h File 3.68 KB 0644
zend_execute.h File 13.86 KB 0644
zend_extensions.h File 5.21 KB 0644
zend_float.h File 15.19 KB 0644
zend_gc.h File 4.77 KB 0644
zend_generators.h File 7.19 KB 0644
zend_globals.h File 6.92 KB 0644
zend_globals_macros.h File 3.14 KB 0644
zend_hash.h File 31.41 KB 0644
zend_highlight.h File 2.32 KB 0644
zend_inheritance.h File 1.91 KB 0644
zend_ini.h File 9.4 KB 0644
zend_ini_parser.h File 2.69 KB 0644
zend_ini_scanner.h File 1.93 KB 0644
zend_ini_scanner_defs.h File 224 B 0644
zend_interfaces.h File 4.22 KB 0644
zend_istdiostream.h File 1.61 KB 0644
zend_iterators.h File 3.5 KB 0644
zend_language_parser.h File 7.96 KB 0644
zend_language_scanner.h File 2.68 KB 0644
zend_language_scanner_defs.h File 296 B 0644
zend_list.h File 3.17 KB 0644
zend_llist.h File 3.81 KB 0644
zend_long.h File 4.03 KB 0644
zend_modules.h File 4.78 KB 0644
zend_multibyte.h File 4.83 KB 0644
zend_multiply.h File 8.27 KB 0644
zend_object_handlers.h File 9.06 KB 0644
zend_objects.h File 1.83 KB 0644
zend_objects_API.h File 3.54 KB 0644
zend_operators.h File 27.88 KB 0644
zend_portability.h File 13.38 KB 0644
zend_ptr_stack.h File 4.22 KB 0644
zend_range_check.h File 3.02 KB 0644
zend_signal.h File 3.92 KB 0644
zend_smart_str.h File 4.41 KB 0644
zend_smart_str_public.h File 1.25 KB 0644
zend_sort.h File 1.7 KB 0644
zend_stack.h File 2.41 KB 0644
zend_stream.h File 3.23 KB 0644
zend_string.h File 11.81 KB 0644
zend_strtod.h File 1.82 KB 0644
zend_strtod_int.h File 3.42 KB 0644
zend_ts_hash.h File 6.5 KB 0644
zend_types.h File 30.54 KB 0644
zend_variables.h File 5.8 KB 0644
zend_virtual_cwd.h File 11.87 KB 0644
zend_vm.h File 1.45 KB 0644
zend_vm_def.h File 231.79 KB 0644
zend_vm_execute.h File 1.53 MB 0644
zend_vm_opcodes.h File 9.63 KB 0644