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

📄 qam.h

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 H
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 1999-2002 *	Sleepycat Software.  All rights reserved. * * $Id: qam.h,v 11.38 2002/08/06 06:11:21 bostic Exp $ */#ifndef	_DB_QAM_H_#define	_DB_QAM_H_/* * QAM data elements: a status field and the data. */typedef struct _qamdata {	u_int8_t  flags;	/* 00: delete bit. */#define	QAM_VALID	0x01#define	QAM_SET		0x02	u_int8_t  data[1];	/* Record. */} QAMDATA;struct __queue;		typedef struct __queue QUEUE;struct __qcursor;	typedef struct __qcursor QUEUE_CURSOR;struct __qcursor {	/* struct __dbc_internal */	__DBC_INTERNAL	/* Queue private part */	/* Per-thread information: queue private. */	db_recno_t	 recno;		/* Current record number. */	u_int32_t	 flags;};typedef struct __mpfarray {	u_int32_t n_extent;		/* Number of extents in table. */	u_int32_t low_extent;		/* First extent open. */	u_int32_t hi_extent;		/* Last extent open. */	struct __qmpf {		int pinref;		DB_MPOOLFILE *mpf;	} *mpfarray;			 /* Array of open extents. */} MPFARRAY;/* * The in-memory, per-tree queue data structure. */struct __queue {	db_pgno_t q_meta;		/* Database meta-data page. */	db_pgno_t q_root;		/* Database root page. */	int	  re_pad;		/* Fixed-length padding byte. */	u_int32_t re_len;		/* Length for fixed-length records. */	u_int32_t rec_page;		/* records per page */	u_int32_t page_ext;		/* Pages per extent */	MPFARRAY array1, array2;	/* File arrays. */					/* Extent file configuration: */	DBT pgcookie;			/* Initialized pgcookie. */	DB_PGINFO pginfo;		/* Initialized pginfo struct. */	char *path;			/* Space allocated to file pathname. */	char *name;			/* The name of the file. */	char *dir;			/* The dir of the file. */	int mode;			/* Mode to open extents. */};/* Format for queue extent names. */#define	QUEUE_EXTENT "%s%c__dbq.%s.%d"typedef struct __qam_filelist {	DB_MPOOLFILE *mpf;	u_int32_t id;} QUEUE_FILELIST;/* * Caculate the page number of a recno * * Number of records per page = *	Divide the available space on the page by the record len + header. * * Page number for record = *	divide the physical record number by the records per page *	add the root page number *	For now the root page will always be 1, but we might want to change *	in the future (e.g. multiple fixed len queues per file). * * Index of record on page = *	physical record number, less the logical pno times records/page */#define	CALC_QAM_RECNO_PER_PAGE(dbp)					\    (((dbp)->pgsize - QPAGE_SZ(dbp)) /					\    ALIGN(((QUEUE *)(dbp)->q_internal)->re_len +			\    sizeof(QAMDATA) - SSZA(QAMDATA, data), sizeof(u_int32_t)))#define	QAM_RECNO_PER_PAGE(dbp)	(((QUEUE*)(dbp)->q_internal)->rec_page)#define	QAM_RECNO_PAGE(dbp, recno)					\    (((QUEUE *)(dbp)->q_internal)->q_root				\    + (((recno) - 1) / QAM_RECNO_PER_PAGE(dbp)))#define	QAM_RECNO_INDEX(dbp, pgno, recno)				\    (((recno) - 1) - (QAM_RECNO_PER_PAGE(dbp)				\    * (pgno - ((QUEUE *)(dbp)->q_internal)->q_root)))#define	QAM_GET_RECORD(dbp, page, index)				\    ((QAMDATA *)((u_int8_t *)(page) +					\    QPAGE_SZ(dbp) + (ALIGN(sizeof(QAMDATA) - SSZA(QAMDATA, data) +	\    ((QUEUE *)(dbp)->q_internal)->re_len, sizeof(u_int32_t)) * index)))#define	QAM_AFTER_CURRENT(meta, recno)					\    ((recno) > (meta)->cur_recno &&					\    ((meta)->first_recno <= (meta)->cur_recno || (recno) < (meta)->first_recno))#define	QAM_BEFORE_FIRST(meta, recno)					\    ((recno) < (meta)->first_recno &&					\    ((meta->first_recno <= (meta)->cur_recno || (recno) > (meta)->cur_recno)))#define	QAM_NOT_VALID(meta, recno)					\    (recno == RECNO_OOB ||						\	QAM_BEFORE_FIRST(meta, recno) || QAM_AFTER_CURRENT(meta, recno))/* * Log opcodes for the mvptr routine. */#define	QAM_SETFIRST		0x01#define	QAM_SETCUR		0x02#define	QAM_TRUNCATE		0x04/* * Parameter to __qam_position. */typedef enum {	QAM_READ,	QAM_WRITE,	QAM_CONSUME} qam_position_mode;typedef enum {	QAM_PROBE_GET,	QAM_PROBE_PUT,	QAM_PROBE_MPF} qam_probe_mode;#define	__qam_fget(dbp, pgnoaddr, flags, addrp) \	__qam_fprobe(dbp, *pgnoaddr, addrp, QAM_PROBE_GET, flags)#define	__qam_fput(dbp, pageno, addrp, flags) \	__qam_fprobe(dbp, pageno, addrp, QAM_PROBE_PUT, flags)#include "dbinc_auto/qam_auto.h"#include "dbinc_auto/qam_ext.h"#endif /* !_DB_QAM_H_ */

⌨️ 快捷键说明

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