SILENT KILLERPanel

Current Path: > > usr > include > bind9 > isc >


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //usr/include/bind9/isc/

NameTypeSizeLast ModifiedActions
aes.h File 1080 bytes February 20 2025 09:05:24.
app.h File 10478 bytes February 20 2025 09:05:24.
assertions.h File 2907 bytes February 20 2025 09:05:24.
atomic.h File 4168 bytes February 20 2025 09:05:24.
backtrace.h File 3891 bytes February 20 2025 09:05:24.
base32.h File 4453 bytes February 20 2025 09:05:24.
base64.h File 2866 bytes February 20 2025 09:05:24.
bind9.h File 830 bytes February 20 2025 09:05:24.
boolean.h File 594 bytes February 20 2025 09:05:24.
buffer.h File 26268 bytes February 20 2025 09:05:24.
bufferlist.h File 1452 bytes February 20 2025 09:05:24.
cmocka.h File 1383 bytes February 20 2025 09:05:24.
commandline.h File 1713 bytes February 20 2025 09:05:24.
condition.h File 1478 bytes February 20 2025 09:05:24.
counter.h File 1926 bytes February 20 2025 09:05:24.
crc64.h File 998 bytes February 20 2025 09:05:24.
deprecated.h File 623 bytes February 20 2025 09:05:24.
dir.h File 1598 bytes February 20 2025 09:05:24.
endian.h File 4778 bytes February 20 2025 09:05:24.
entropy.h File 10373 bytes February 20 2025 09:05:24.
errno.h File 659 bytes February 20 2025 09:05:24.
errno2result.h File 902 bytes February 20 2025 09:05:37.
error.h File 1430 bytes February 20 2025 09:05:24.
event.h File 3053 bytes February 20 2025 09:05:24.
eventclass.h File 1381 bytes February 20 2025 09:05:24.
file.h File 11667 bytes February 20 2025 09:05:24.
formatcheck.h File 893 bytes February 20 2025 09:05:24.
fsaccess.h File 7442 bytes February 20 2025 09:05:24.
hash.h File 7662 bytes February 20 2025 09:05:24.
heap.h File 5264 bytes February 20 2025 09:05:24.
hex.h File 2806 bytes February 20 2025 09:05:24.
hmacmd5.h File 1787 bytes February 20 2025 09:05:24.
hmacsha.h File 4511 bytes February 20 2025 09:05:24.
ht.h File 4396 bytes February 20 2025 09:05:24.
httpd.h File 2318 bytes February 20 2025 09:05:24.
int.h File 1088 bytes February 20 2025 09:05:24.
interfaceiter.h File 3120 bytes February 20 2025 09:05:24.
iterated_hash.h File 1046 bytes February 20 2025 09:05:24.
json.h File 1459 bytes February 20 2025 09:05:24.
keyboard.h File 989 bytes February 20 2025 09:05:24.
lang.h File 637 bytes February 20 2025 09:05:24.
lex.h File 9771 bytes February 20 2025 09:05:24.
lfsr.h File 2958 bytes February 20 2025 09:05:24.
lib.h File 1068 bytes February 20 2025 09:05:24.
likely.h File 818 bytes February 20 2025 09:05:24.
list.h File 5751 bytes February 20 2025 09:05:24.
log.h File 28734 bytes February 20 2025 09:05:24.
magic.h File 994 bytes February 20 2025 09:05:24.
md5.h File 2380 bytes February 20 2025 09:05:24.
mem.h File 21110 bytes February 20 2025 09:05:24.
meminfo.h File 710 bytes February 20 2025 09:05:24.
msgcat.h File 2726 bytes February 20 2025 09:05:24.
msgs.h File 8422 bytes February 20 2025 09:05:24.
mutex.h File 3524 bytes February 20 2025 09:05:24.
mutexblock.h File 1375 bytes February 20 2025 09:05:24.
net.h File 10534 bytes February 20 2025 09:05:24.
netaddr.h File 4590 bytes February 20 2025 09:05:24.
netdb.h File 863 bytes February 20 2025 09:05:24.
netscope.h File 967 bytes February 20 2025 09:05:24.
offset.h File 700 bytes February 20 2025 09:05:24.
once.h File 983 bytes February 20 2025 09:05:24.
ondestroy.h File 2799 bytes February 20 2025 09:05:24.
os.h File 671 bytes February 20 2025 09:05:24.
parseint.h File 1542 bytes February 20 2025 09:05:24.
platform.h File 9717 bytes February 20 2025 09:05:24.
pool.h File 3502 bytes February 20 2025 09:05:24.
portset.h File 3295 bytes February 20 2025 09:05:24.
print.h File 2475 bytes February 20 2025 09:05:24.
queue.h File 5204 bytes February 20 2025 09:05:24.
quota.h File 2440 bytes February 20 2025 09:05:24.
radix.h File 6491 bytes February 20 2025 09:05:24.
random.h File 3582 bytes February 20 2025 09:05:24.
ratelimiter.h File 3497 bytes February 20 2025 09:05:24.
refcount.h File 8193 bytes February 20 2025 09:05:24.
regex.h File 767 bytes February 20 2025 09:05:24.
region.h File 2034 bytes February 20 2025 09:05:24.
resource.h File 2862 bytes February 20 2025 09:05:24.
result.h File 4982 bytes February 20 2025 09:05:24.
resultclass.h File 1599 bytes February 20 2025 09:05:24.
rwlock.h File 3807 bytes February 20 2025 09:05:24.
safe.h File 1352 bytes February 20 2025 09:05:24.
serial.h File 1368 bytes February 20 2025 09:05:24.
sha1.h File 1556 bytes February 20 2025 09:05:24.
sha2.h File 5733 bytes February 20 2025 09:05:24.
siphash.h File 734 bytes February 20 2025 09:05:24.
sockaddr.h File 6039 bytes February 20 2025 09:05:24.
socket.h File 36655 bytes February 20 2025 09:05:24.
stat.h File 806 bytes February 20 2025 09:05:24.
stats.h File 3709 bytes February 20 2025 09:05:24.
stdatomic.h File 5250 bytes February 20 2025 09:05:24.
stdio.h File 1787 bytes February 20 2025 09:05:24.
stdlib.h File 704 bytes February 20 2025 09:05:24.
stdtime.h File 1065 bytes February 20 2025 09:05:24.
strerror.h File 777 bytes February 20 2025 09:05:24.
string.h File 6019 bytes February 20 2025 09:05:24.
symtab.h File 4326 bytes February 20 2025 09:05:24.
syslog.h File 844 bytes February 20 2025 09:05:24.
task.h File 21544 bytes February 20 2025 09:05:24.
taskpool.h File 3709 bytes February 20 2025 09:05:24.
thread.h File 1506 bytes February 20 2025 09:05:24.
time.h File 8876 bytes February 20 2025 09:05:24.
timer.h File 10795 bytes February 20 2025 09:05:24.
tm.h File 895 bytes February 20 2025 09:05:24.
types.h File 5780 bytes February 20 2025 09:05:24.
utf8.h File 928 bytes February 20 2025 09:05:24.
util.h File 10537 bytes February 20 2025 09:05:24.
version.h File 689 bytes February 20 2025 09:05:24.
xml.h File 1094 bytes February 20 2025 09:05:24.

Reading File: //usr/include/bind9/isc//atomic.h

/*
 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
 */


#ifndef ISC_ATOMIC_H
#define ISC_ATOMIC_H 1

#include <inttypes.h>

#include <isc/platform.h>
#include <isc/types.h>

#ifdef ISC_PLATFORM_USEGCCASM
/*
 * This routine atomically increments the value stored in 'p' by 'val', and
 * returns the previous value.
 */
static __inline__ int32_t
isc_atomic_xadd(int32_t *p, int32_t val) {
	int32_t prev = val;

	__asm__ volatile(
#ifdef ISC_PLATFORM_USETHREADS
		"lock;"
#endif
		"xadd %0, %1"
		:"=q"(prev)
		:"m"(*p), "0"(prev)
		:"memory", "cc");

	return (prev);
}

#ifdef ISC_PLATFORM_HAVEXADDQ
static __inline__ int64_t
isc_atomic_xaddq(int64_t *p, int64_t val) {
	int64_t prev = val;

	__asm__ volatile(
#ifdef ISC_PLATFORM_USETHREADS
	    "lock;"
#endif
	    "xaddq %0, %1"
	    :"=q"(prev)
	    :"m"(*p), "0"(prev)
	    :"memory", "cc");

	return (prev);
}
#endif /* ISC_PLATFORM_HAVEXADDQ */

/*
 * This routine atomically stores the value 'val' in 'p' (32-bit version).
 */
static __inline__ void
isc_atomic_store(int32_t *p, int32_t val) {
	__asm__ volatile(
#ifdef ISC_PLATFORM_USETHREADS
		/*
		 * xchg should automatically lock memory, but we add it
		 * explicitly just in case (it at least doesn't harm)
		 */
		"lock;"
#endif

		"xchgl %1, %0"
		:
		: "r"(val), "m"(*p)
		: "memory");
}

#ifdef ISC_PLATFORM_HAVEATOMICSTOREQ
/*
 * This routine atomically stores the value 'val' in 'p' (64-bit version).
 */
static __inline__ void
isc_atomic_storeq(int64_t *p, int64_t val) {
	__asm__ volatile(
#ifdef ISC_PLATFORM_USETHREADS
		/*
		 * xchg should automatically lock memory, but we add it
		 * explicitly just in case (it at least doesn't harm)
		 */
		"lock;"
#endif

		"xchgq %1, %0"
		:
		: "r"(val), "m"(*p)
		: "memory");
}
#endif /* ISC_PLATFORM_HAVEATOMICSTOREQ */

/*
 * This routine atomically replaces the value in 'p' with 'val', if the
 * original value is equal to 'cmpval'.  The original value is returned in any
 * case.
 */
static __inline__ int32_t
isc_atomic_cmpxchg(int32_t *p, int32_t cmpval, int32_t val) {
	__asm__ volatile(
#ifdef ISC_PLATFORM_USETHREADS
		"lock;"
#endif
		"cmpxchgl %1, %2"
		: "=a"(cmpval)
		: "r"(val), "m"(*p), "a"(cmpval)
		: "memory");

	return (cmpval);
}

#elif defined(ISC_PLATFORM_USESTDASM)
/*
 * The following are "generic" assembly code which implements the same
 * functionality in case the gcc extension cannot be used.  It should be
 * better to avoid inlining below, since we directly refer to specific
 * positions of the stack frame, which would not actually point to the
 * intended address in the embedded mnemonic.
 */
static int32_t
isc_atomic_xadd(int32_t *p, int32_t val) {
	(void)(p);
	(void)(val);

	__asm (
		"movl 8(%ebp), %ecx\n"
		"movl 12(%ebp), %edx\n"
#ifdef ISC_PLATFORM_USETHREADS
		"lock;"
#endif
		"xadd %edx, (%ecx)\n"

		/*
		 * set the return value directly in the register so that we
		 * can avoid guessing the correct position in the stack for a
		 * local variable.
		 */
		"movl %edx, %eax"
		);
}

static void
isc_atomic_store(int32_t *p, int32_t val) {
	(void)(p);
	(void)(val);

	__asm (
		"movl 8(%ebp), %ecx\n"
		"movl 12(%ebp), %edx\n"
#ifdef ISC_PLATFORM_USETHREADS
		"lock;"
#endif
		"xchgl (%ecx), %edx\n"
		);
}

static int32_t
isc_atomic_cmpxchg(int32_t *p, int32_t cmpval, int32_t val) {
	(void)(p);
	(void)(cmpval);
	(void)(val);

	__asm (
		"movl 8(%ebp), %ecx\n"
		"movl 12(%ebp), %eax\n"	/* must be %eax for cmpxchgl */
		"movl 16(%ebp), %edx\n"
#ifdef ISC_PLATFORM_USETHREADS
		"lock;"
#endif

		/*
		 * If (%ecx) == %eax then (%ecx) := %edx.
		 % %eax is set to old (%ecx), which will be the return value.
		 */
		"cmpxchgl %edx, (%ecx)"
		);
}
#else /* !ISC_PLATFORM_USEGCCASM && !ISC_PLATFORM_USESTDASM */

#error "unsupported compiler.  disable atomic ops by --disable-atomic"

#endif
#endif /* ISC_ATOMIC_H */

SILENT KILLER Tool