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//rwlock.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_RWLOCK_H
#define ISC_RWLOCK_H 1

#include <inttypes.h>

/*! \file isc/rwlock.h */

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

#if defined(ISC_PLATFORM_HAVESTDATOMIC)
#if defined(__cplusplus)
#include <isc/stdatomic.h>
#else
#include <stdatomic.h>
#endif
#endif

ISC_LANG_BEGINDECLS

typedef enum {
	isc_rwlocktype_none = 0,
	isc_rwlocktype_read,
	isc_rwlocktype_write
} isc_rwlocktype_t;

#ifdef ISC_PLATFORM_USETHREADS
# if defined(ISC_PLATFORM_HAVESTDATOMIC)
#  define ISC_RWLOCK_USEATOMIC 1
#  define ISC_RWLOCK_USESTDATOMIC 1
# else /* defined(ISC_PLATFORM_HAVESTDATOMIC) */
#  if defined(ISC_PLATFORM_HAVEXADD) && defined(ISC_PLATFORM_HAVECMPXCHG)
#   define ISC_RWLOCK_USEATOMIC 1
#  endif
# endif /* defined(ISC_PLATFORM_HAVESTDATOMIC) */

struct isc_rwlock {
	/* Unlocked. */
	unsigned int		magic;
	isc_mutex_t		lock;

#if defined(ISC_RWLOCK_USEATOMIC)
	/*
	 * When some atomic instructions with hardware assistance are
	 * available, rwlock will use those so that concurrent readers do not
	 * interfere with each other through mutex as long as no writers
	 * appear, massively reducing the lock overhead in the typical case.
	 *
	 * The basic algorithm of this approach is the "simple
	 * writer-preference lock" shown in the following URL:
	 * http://www.cs.rochester.edu/u/scott/synchronization/pseudocode/rw.html
	 * but our implementation does not rely on the spin lock unlike the
	 * original algorithm to be more portable as a user space application.
	 */

	/* Read or modified atomically. */
#if defined(ISC_RWLOCK_USESTDATOMIC)
	atomic_int_fast32_t	spins;
	atomic_int_fast32_t	write_requests;
	atomic_int_fast32_t	write_completions;
	atomic_int_fast32_t	cnt_and_flag;
	atomic_int_fast32_t	write_granted;
#else
	int32_t		spins;
	int32_t		write_requests;
	int32_t		write_completions;
	int32_t		cnt_and_flag;
	int32_t		write_granted;
#endif

	/* Locked by lock. */
	isc_condition_t		readable;
	isc_condition_t		writeable;
	unsigned int		readers_waiting;

	/* Unlocked. */
	unsigned int		write_quota;

#else  /* ISC_RWLOCK_USEATOMIC */

	/*%< Locked by lock. */
	isc_condition_t		readable;
	isc_condition_t		writeable;
	isc_rwlocktype_t	type;

	/*% The number of threads that have the lock. */
	unsigned int		active;

	/*%
	 * The number of lock grants made since the lock was last switched
	 * from reading to writing or vice versa; used in determining
	 * when the quota is reached and it is time to switch.
	 */
	unsigned int		granted;

	unsigned int		spins;
	unsigned int		readers_waiting;
	unsigned int		writers_waiting;
	unsigned int		read_quota;
	unsigned int		write_quota;
	isc_rwlocktype_t	original;
#endif  /* ISC_RWLOCK_USEATOMIC */
};
#else /* ISC_PLATFORM_USETHREADS */
struct isc_rwlock {
	unsigned int		magic;
	isc_rwlocktype_t	type;
	unsigned int		active;
};
#endif /* ISC_PLATFORM_USETHREADS */


isc_result_t
isc_rwlock_init(isc_rwlock_t *rwl, unsigned int read_quota,
		unsigned int write_quota);

isc_result_t
isc_rwlock_lock(isc_rwlock_t *rwl, isc_rwlocktype_t type);

isc_result_t
isc_rwlock_trylock(isc_rwlock_t *rwl, isc_rwlocktype_t type);

isc_result_t
isc_rwlock_unlock(isc_rwlock_t *rwl, isc_rwlocktype_t type);

isc_result_t
isc_rwlock_tryupgrade(isc_rwlock_t *rwl);

void
isc_rwlock_downgrade(isc_rwlock_t *rwl);

void
isc_rwlock_destroy(isc_rwlock_t *rwl);

ISC_LANG_ENDDECLS

#endif /* ISC_RWLOCK_H */

SILENT KILLER Tool