⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 db_int.in

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 IN
📖 第 1 页 / 共 2 页
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 1996-2002 *	Sleepycat Software.  All rights reserved. * * $Id: db_int.in,v 11.106 2002/09/10 02:48:08 bostic Exp $ */#ifndef _DB_INTERNAL_H_#define	_DB_INTERNAL_H_/******************************************************* * System includes, db.h, a few general DB includes.  The DB includes are * here because it's OK if db_int.h includes queue structure declarations. *******************************************************/#ifndef NO_SYSTEM_INCLUDES#if defined(__STDC__) || defined(__cplusplus)#include <stdarg.h>#else#include <varargs.h>#endif#include <errno.h>#endif#include "db.h"#include "dbinc/queue.h"#include "dbinc/shqueue.h"#if defined(__cplusplus)extern "C" {#endif/******************************************************* * General purpose constants and macros. *******************************************************/#define	UINT16_T_MAX	    0xffff	/* Maximum 16 bit unsigned. */#define	UINT32_T_MAX	0xffffffff	/* Maximum 32 bit unsigned. */#define	MEGABYTE	1048576#define	GIGABYTE	1073741824#define	MS_PER_SEC	1000		/* Milliseconds in a second. */#define	USEC_PER_MS	1000		/* Microseconds in a millisecond. */#define	RECNO_OOB	0		/* Illegal record number. *//* Test for a power-of-two (tests true for zero, which doesn't matter here). */#define	POWER_OF_TWO(x)	(((x) & ((x) - 1)) == 0)/* Test for valid page sizes. */#define	DB_MIN_PGSIZE	0x000200	/* Minimum page size (512). */#define	DB_MAX_PGSIZE	0x010000	/* Maximum page size (65536). */#define	IS_VALID_PAGESIZE(x)						\	(POWER_OF_TWO(x) && (x) >= DB_MIN_PGSIZE && ((x) <= DB_MAX_PGSIZE))/* Minimum number of pages cached, by default. */#define	DB_MINPAGECACHE	16/* * If we are unable to determine the underlying filesystem block size, use * 8K on the grounds that most OS's use less than 8K for a VM page size. */#define	DB_DEF_IOSIZE	(8 * 1024)/* * Aligning items to particular sizes or in pages or memory. * * db_align_t -- * Largest integral type, used to align structures in memory.  We don't store * floating point types in structures, so integral types should be sufficient * (and we don't have to worry about systems that store floats in other than * power-of-2 numbers of bytes).  Additionally this fixes compiler that rewrite * structure assignments and ANSI C memcpy calls to be in-line instructions * that happen to require alignment.  Note: this alignment isn't sufficient for * mutexes, which depend on things like cache line alignment.  Mutex alignment * is handled separately, in mutex.h. * * db_alignp_t -- * Integral type that's the same size as a pointer.  There are places where * DB modifies pointers by discarding the bottom bits to guarantee alignment. * We can't use db_align_t, it may be larger than the pointer, and compilers * get upset about that.  So far we haven't run on any machine where there * isn't an integral type the same size as a pointer -- here's hoping. */@db_align_t_decl@@db_alignp_t_decl@/* Align an integer to a specific boundary. */#undef	ALIGN#define	ALIGN(v, bound)	(((v) + (bound) - 1) & ~(((db_align_t)bound) - 1))/* * Print an address as a u_long (a u_long is the largest type we can print * portably).  Most 64-bit systems have made longs 64-bits, so this should * work. */#define	P_TO_ULONG(p)	((u_long)(db_alignp_t)(p))/* * Convert a pointer to a small integral value. * * The (u_int16_t)(db_alignp_t) cast avoids warnings: the (db_alignp_t) cast * converts the value to an integral type, and the (u_int16_t) cast converts * it to a small integral type so we don't get complaints when we assign the * final result to an integral type smaller than db_alignp_t. */#define	P_TO_UINT32(p)	((u_int32_t)(db_alignp_t)(p))#define	P_TO_UINT16(p)	((u_int16_t)(db_alignp_t)(p))/* * There are several on-page structures that are declared to have a number of * fields followed by a variable length array of items.  The structure size * without including the variable length array or the address of the first of * those elements can be found using SSZ. * * This macro can also be used to find the offset of a structure element in a * structure.  This is used in various places to copy structure elements from * unaligned memory references, e.g., pointers into a packed page. * * There are two versions because compilers object if you take the address of * an array. */#undef	SSZ#define	SSZ(name, field)  P_TO_UINT16(&(((name *)0)->field))#undef	SSZA#define	SSZA(name, field) P_TO_UINT16(&(((name *)0)->field[0]))/* Structure used to print flag values. */typedef struct __fn {	u_int32_t mask;			/* Flag value. */	const char *name;		/* Flag name. */} FN;/* Set, clear and test flags. */#define	FLD_CLR(fld, f)		(fld) &= ~(f)#define	FLD_ISSET(fld, f)	((fld) & (f))#define	FLD_SET(fld, f)		(fld) |= (f)#define	F_CLR(p, f)		(p)->flags &= ~(f)#define	F_ISSET(p, f)		((p)->flags & (f))#define	F_SET(p, f)		(p)->flags |= (f)#define	LF_CLR(f)		((flags) &= ~(f))#define	LF_ISSET(f)		((flags) & (f))#define	LF_SET(f)		((flags) |= (f))/* Display separator string. */#undef	DB_LINE#define	DB_LINE "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="/* Unused, or not-used-yet variable.  "Shut that bloody compiler up!" */#define	COMPQUIET(n, v)	(n) = (v)/******************************************************* * API return values *******************************************************/ /*  * Return values that are OK for each different call.  Most calls have  * a standard 'return of 0 is only OK value', but some, like db->get  * have DB_NOTFOUND as a return value, but it really isn't an error.  */#define	DB_RETOK_STD(ret)	((ret) == 0)#define	DB_RETOK_DBCDEL(ret)	((ret) == 0 || (ret) == DB_KEYEMPTY || \				    (ret) == DB_NOTFOUND)#define	DB_RETOK_DBCGET(ret)	DB_RETOK_DBGET(ret)#define	DB_RETOK_DBCPUT(ret)	((ret) == 0 || (ret) == DB_KEYEXIST || \				    (ret) == DB_NOTFOUND)#define	DB_RETOK_DBDEL(ret)	((ret) == 0 || (ret) == DB_NOTFOUND)#define	DB_RETOK_DBGET(ret)	((ret) == 0 || (ret) == DB_KEYEMPTY || \				    (ret) == DB_NOTFOUND)#define	DB_RETOK_DBPUT(ret)	((ret) == 0 || (ret) == DB_KEYEXIST)#define	DB_RETOK_LGGET(ret)	((ret) == 0 || (ret) == DB_NOTFOUND)#define	DB_RETOK_MPGET(ret)	((ret) == 0 || (ret) == DB_PAGE_NOTFOUND)#define	DB_RETOK_REPPMSG(ret)	((ret) == 0 || (ret) == DB_REP_NEWMASTER || \				    (ret) == DB_REP_NEWSITE)/******************************************************* * Files. *******************************************************/ /*  * We use 1024 as the maximum path length.  It's too hard to figure out what  * the real path length is, as it was traditionally stored in <sys/param.h>,  * and that file isn't always available.  */#undef	MAXPATHLEN#define	MAXPATHLEN	1024#define	PATH_DOT	"."	/* Current working directory. */#define	PATH_SEPARATOR	"/"	/* Path separator character(s). *//* * Flags understood by __os_open. */#define	DB_OSO_CREATE	0x0001		/* POSIX: O_CREAT */#define	DB_OSO_DIRECT	0x0002		/* Don't buffer the file in the OS. */#define	DB_OSO_EXCL	0x0004		/* POSIX: O_EXCL */#define	DB_OSO_LOG	0x0008		/* Opening a log file. */#define	DB_OSO_RDONLY	0x0010		/* POSIX: O_RDONLY */#define	DB_OSO_REGION	0x0020		/* Opening a region file. */#define	DB_OSO_SEQ	0x0040		/* Expected sequential access. */#define	DB_OSO_TEMP	0x0080		/* Remove after last close. */#define	DB_OSO_TRUNC	0x0100		/* POSIX: O_TRUNC *//* * Seek options understood by __os_seek. */typedef enum {	DB_OS_SEEK_CUR,			/* POSIX: SEEK_CUR */	DB_OS_SEEK_END,			/* POSIX: SEEK_END */	DB_OS_SEEK_SET			/* POSIX: SEEK_SET */} DB_OS_SEEK;/******************************************************* * Environment. *******************************************************//* Type passed to __db_appname(). */typedef enum {	DB_APP_NONE=0,			/* No type (region). */	DB_APP_DATA,			/* Data file. */	DB_APP_LOG,			/* Log file. */	DB_APP_TMP			/* Temporary file. */} APPNAME;/* * CDB_LOCKING	CDB product locking. * CRYPTO_ON	Security has been configured. * LOCKING_ON	Locking has been configured. * LOGGING_ON	Logging has been configured. * MPOOL_ON	Memory pool has been configured. * RPC_ON	RPC has been configured. * TXN_ON	Transactions have been configured. */#define	CDB_LOCKING(dbenv)	F_ISSET(dbenv, DB_ENV_CDB)#define	CRYPTO_ON(dbenv)	((dbenv)->crypto_handle != NULL)#define	LOCKING_ON(dbenv)	((dbenv)->lk_handle != NULL)#define	LOGGING_ON(dbenv)	((dbenv)->lg_handle != NULL)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -