亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lock_stat.c

?? File system using stacked.
?? C
字號:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 1996-2002 *	Sleepycat Software.  All rights reserved. */#include "db_config.h"#ifndef lintstatic const char revid[] = "$Id: lock_stat.c,v 1.1.1.1 2004/08/19 23:53:56 gopalan Exp $";#endif /* not lint */#ifndef __KERNEL__# ifndef NO_SYSTEM_INCLUDES#  include <sys/types.h>#  include <string.h># endif# if TIME_WITH_SYS_TIME#  include <sys/time.h>#  include <time.h># else#  if HAVE_SYS_TIME_H#   include <sys/time.h>#  else#   include <time.h>#  endif# endif#else # include <linux/types.h># include <linux/string.h>#endif#include "db_int.h"#include "dbinc/db_shash.h"#include "dbinc/db_page.h"#include "dbinc/lock.h"#include "dbinc/log.h"#include "dbinc/db_am.h"#ifndef __KERNEL__static void __lock_dump_locker __P((DB_LOCKTAB *, DB_LOCKER *, FILE *));static void __lock_dump_object __P((DB_LOCKTAB *, DB_LOCKOBJ *, FILE *));static void __lock_printheader __P((void));#endif/* * __lock_stat -- *	Return LOCK statistics. * * PUBLIC: int __lock_stat __P((DB_ENV *, DB_LOCK_STAT **, u_int32_t)); */int__lock_stat(dbenv, statp, flags)	DB_ENV *dbenv;	DB_LOCK_STAT **statp;	u_int32_t flags;{	DB_LOCKREGION *region;	DB_LOCKTAB *lt;	DB_LOCK_STAT *stats, tmp;	int ret;	PANIC_CHECK(dbenv);	ENV_REQUIRES_CONFIG(dbenv,	    dbenv->lk_handle, "DB_ENV->lock_stat", DB_INIT_LOCK);	*statp = NULL;	if ((ret = __db_fchk(dbenv,	    "DB_ENV->lock_stat", flags, DB_STAT_CLEAR)) != 0)		return (ret);	lt = dbenv->lk_handle;	if ((ret = __os_umalloc(dbenv, sizeof(*stats), &stats)) != 0)		return (ret);	/* Copy out the global statistics. */	R_LOCK(dbenv, &lt->reginfo);	region = lt->reginfo.primary;	memcpy(stats, &region->stat, sizeof(*stats));	stats->st_locktimeout = region->lk_timeout;	stats->st_txntimeout = region->tx_timeout;	stats->st_region_wait = lt->reginfo.rp->mutex.mutex_set_wait;	stats->st_region_nowait = lt->reginfo.rp->mutex.mutex_set_nowait;	stats->st_regsize = lt->reginfo.rp->size;	if (LF_ISSET(DB_STAT_CLEAR)) {		tmp = region->stat;		memset(&region->stat, 0, sizeof(region->stat));		lt->reginfo.rp->mutex.mutex_set_wait = 0;		lt->reginfo.rp->mutex.mutex_set_nowait = 0;		region->stat.st_id = tmp.st_id;		region->stat.st_cur_maxid = tmp.st_cur_maxid;		region->stat.st_maxlocks = tmp.st_maxlocks;		region->stat.st_maxlockers = tmp.st_maxlockers;		region->stat.st_maxobjects = tmp.st_maxobjects;		region->stat.st_nlocks =		    region->stat.st_maxnlocks = tmp.st_nlocks;		region->stat.st_nlockers =		    region->stat.st_maxnlockers = tmp.st_nlockers;		region->stat.st_nobjects =		    region->stat.st_maxnobjects = tmp.st_nobjects;		region->stat.st_nmodes = tmp.st_nmodes;	}	R_UNLOCK(dbenv, &lt->reginfo);	*statp = stats;	return (0);}#define	LOCK_DUMP_CONF		0x001		/* Conflict matrix. */#define	LOCK_DUMP_LOCKERS	0x002		/* Display lockers. */#define	LOCK_DUMP_MEM		0x004		/* Display region memory. */#define	LOCK_DUMP_OBJECTS	0x008		/* Display objects. */#define	LOCK_DUMP_PARAMS	0x010		/* Display params. */#define	LOCK_DUMP_ALL				/* All */		\	(LOCK_DUMP_CONF | LOCK_DUMP_LOCKERS | LOCK_DUMP_MEM |		\	LOCK_DUMP_OBJECTS | LOCK_DUMP_PARAMS)/* * __lock_dump_region -- * * PUBLIC: int __lock_dump_region __P((DB_ENV *, char *, FILE *)); */int__lock_dump_region(dbenv, area, fp)	DB_ENV *dbenv;	char *area;	FILE *fp;{#ifndef __KERNEL__	DB_LOCKER *lip;	DB_LOCKOBJ *op;#endif	DB_LOCKREGION *lrp;	DB_LOCKTAB *lt;	u_int32_t flags;#ifndef __KERNEL__	u_int32_t i, j;#endif	PANIC_CHECK(dbenv);	ENV_REQUIRES_CONFIG(dbenv,	    dbenv->lk_handle, "lock_dump_region", DB_INIT_LOCK);	/* Make it easy to call from the debugger. */#ifndef __KERNEL__	if (fp == NULL)		fp = stderr;#endif	for (flags = 0; *area != '\0'; ++area)		switch (*area) {		case 'A':			LF_SET(LOCK_DUMP_ALL);			break;		case 'c':			LF_SET(LOCK_DUMP_CONF);			break;		case 'l':			LF_SET(LOCK_DUMP_LOCKERS);			break;		case 'm':			LF_SET(LOCK_DUMP_MEM);			break;		case 'o':			LF_SET(LOCK_DUMP_OBJECTS);			break;		case 'p':			LF_SET(LOCK_DUMP_PARAMS);			break;		}	lt = dbenv->lk_handle;	lrp = lt->reginfo.primary;	LOCKREGION(dbenv, lt);	if (LF_ISSET(LOCK_DUMP_PARAMS)) {#ifndef __KERNEL__		fprintf(fp, "%s\nLock region parameters\n", DB_LINE);		fprintf(fp,	    "%s: %lu, %s: %lu, %s: %lu,\n%s: %lu, %s: %lu, %s: %lu, %s: %lu\n",		    "locker table size", (u_long)lrp->locker_t_size,		    "object table size", (u_long)lrp->object_t_size,		    "obj_off", (u_long)lrp->obj_off,		    "osynch_off", (u_long)lrp->osynch_off,		    "locker_off", (u_long)lrp->locker_off,		    "lsynch_off", (u_long)lrp->lsynch_off,		    "need_dd", (u_long)lrp->need_dd);#endif	}	if (LF_ISSET(LOCK_DUMP_CONF)) {#ifndef __KERNEL__		fprintf(fp, "\n%s\nConflict matrix\n", DB_LINE);		for (i = 0; i < lrp->stat.st_nmodes; i++) {			for (j = 0; j < lrp->stat.st_nmodes; j++)				fprintf(fp, "%lu\t", (u_long)				    lt->conflicts[i * lrp->stat.st_nmodes + j]);			fprintf(fp, "\n");		}#endif	}	if (LF_ISSET(LOCK_DUMP_LOCKERS)) {#ifndef __KERNEL__		fprintf(fp, "%s\nLocks grouped by lockers\n", DB_LINE);		__lock_printheader();		for (i = 0; i < lrp->locker_t_size; i++)			for (lip =			    SH_TAILQ_FIRST(&lt->locker_tab[i], __db_locker);			    lip != NULL;			    lip = SH_TAILQ_NEXT(lip, links, __db_locker)) {				__lock_dump_locker(lt, lip, fp);			}#endif	}	if (LF_ISSET(LOCK_DUMP_OBJECTS)) {#ifndef __KERNEL__		fprintf(fp, "%s\nLocks grouped by object\n", DB_LINE);		__lock_printheader();		for (i = 0; i < lrp->object_t_size; i++) {			for (op = SH_TAILQ_FIRST(&lt->obj_tab[i], __db_lockobj);			    op != NULL;			    op = SH_TAILQ_NEXT(op, links, __db_lockobj))				__lock_dump_object(lt, op, fp);		}#endif	}	if (LF_ISSET(LOCK_DUMP_MEM))		__db_shalloc_dump(lt->reginfo.addr, fp);	UNLOCKREGION(dbenv, lt);	return (0);}#ifndef __KERNEL__static void__lock_dump_locker(lt, lip, fp)	DB_LOCKTAB *lt;	DB_LOCKER *lip;	FILE *fp;{	struct __db_lock *lp;	time_t s;	char buf[64];	fprintf(fp, "%8lx dd=%2ld locks held %-4d write locks %-4d",	    (u_long)lip->id, (long)lip->dd_id, lip->nlocks, lip->nwrites);	fprintf(fp, " %s ", F_ISSET(lip, DB_LOCKER_DELETED) ? "(D)" : "   ");	if (LOCK_TIME_ISVALID(&lip->tx_expire)) {		s = lip->tx_expire.tv_sec;		strftime(buf, sizeof(buf), "%m-%d-%H:%M:%S", localtime(&s));		fprintf(fp,		    " expires %s.%lu", buf, (u_long)lip->tx_expire.tv_usec);	}	if (F_ISSET(lip, DB_LOCKER_TIMEOUT))		fprintf(fp, " lk timeout %u", lip->lk_timeout);	if (LOCK_TIME_ISVALID(&lip->lk_expire)) {		s = lip->lk_expire.tv_sec;		strftime(buf, sizeof(buf), "%m-%d-%H:%M:%S", localtime(&s));		fprintf(fp,		    " lk expires %s.%lu", buf, (u_long)lip->lk_expire.tv_usec);	}	fprintf(fp, "\n");	lp = SH_LIST_FIRST(&lip->heldby, __db_lock);	if (lp != NULL) {		for (; lp != NULL;		    lp = SH_LIST_NEXT(lp, locker_links, __db_lock))			__lock_printlock(lt, lp, 1);		fprintf(fp, "\n");	}}#endif#ifndef __KERNEL__static void__lock_dump_object(lt, op, fp)	DB_LOCKTAB *lt;	DB_LOCKOBJ *op;	FILE *fp;{	struct __db_lock *lp;	for (lp =	    SH_TAILQ_FIRST(&op->holders, __db_lock);	    lp != NULL;	    lp = SH_TAILQ_NEXT(lp, links, __db_lock))		__lock_printlock(lt, lp, 1);	for (lp =	    SH_TAILQ_FIRST(&op->waiters, __db_lock);	    lp != NULL;	    lp = SH_TAILQ_NEXT(lp, links, __db_lock))		__lock_printlock(lt, lp, 1);	fprintf(fp, "\n");}#endif#ifndef __KERNEL__/* * __lock_printheader -- */static void__lock_printheader(){	printf("%-8s  %-6s  %-6s  %-10s  %s\n",	    "Locker", "Mode",	    "Count", "Status", "----------- Object ----------");}#endif/* * __lock_printlock -- * * PUBLIC: void __lock_printlock __P((DB_LOCKTAB *, struct __db_lock *, int)); */void__lock_printlock(lt, lp, ispgno)	DB_LOCKTAB *lt;	struct __db_lock *lp;	int ispgno;{	DB_LOCKOBJ *lockobj;	db_pgno_t pgno;	u_int32_t *fidp, type;	u_int8_t *ptr;	char *namep;	const char *mode, *status;	switch (lp->mode) {	case DB_LOCK_DIRTY:		mode = "DIRTY_READ";		break;	case DB_LOCK_IREAD:		mode = "IREAD";		break;	case DB_LOCK_IWR:		mode = "IWR";		break;	case DB_LOCK_IWRITE:		mode = "IWRITE";		break;	case DB_LOCK_NG:		mode = "NG";		break;	case DB_LOCK_READ:		mode = "READ";		break;	case DB_LOCK_WRITE:		mode = "WRITE";		break;	case DB_LOCK_WWRITE:		mode = "WAS_WRITE";		break;	case DB_LOCK_WAIT:		mode = "WAIT";		break;	default:		mode = "UNKNOWN";		break;	}	switch (lp->status) {	case DB_LSTAT_ABORTED:		status = "ABORT";		break;	case DB_LSTAT_ERR:		status = "ERROR";		break;	case DB_LSTAT_FREE:		status = "FREE";		break;	case DB_LSTAT_HELD:		status = "HELD";		break;	case DB_LSTAT_WAITING:		status = "WAIT";		break;	case DB_LSTAT_PENDING:		status = "PENDING";		break;	case DB_LSTAT_EXPIRED:		status = "EXPIRED";		break;	default:		status = "UNKNOWN";		break;	}#ifndef __KERNEL__	printf("%8lx  %-6s  %6lu  %-10s  ",	    (u_long)lp->holder, mode, (u_long)lp->refcount, status);#endif	lockobj = (DB_LOCKOBJ *)((u_int8_t *)lp + lp->obj);	ptr = SH_DBT_PTR(&lockobj->lockobj);	if (ispgno && lockobj->lockobj.size == sizeof(struct __db_ilock)) {		/* Assume this is a DBT lock. */		memcpy(&pgno, ptr, sizeof(db_pgno_t));		fidp = (u_int32_t *)(ptr + sizeof(db_pgno_t));		type = *(u_int32_t *)(ptr + sizeof(db_pgno_t) + DB_FILE_ID_LEN);		if (__dbreg_get_name(lt->dbenv, (u_int8_t *)fidp, &namep) != 0)			namep = NULL;#ifndef __KERNEL__		if (namep == NULL)			printf("(%lx %lx %lx %lx %lx)",			(u_long)fidp[0], (u_long)fidp[1], (u_long)fidp[2],			(u_long)fidp[3], (u_long)fidp[4]);		else			printf("%-20s", namep);		printf("%-7s  %lu\n",			type == DB_PAGE_LOCK ? "page" :			type == DB_RECORD_LOCK ? "record" : "handle",			(u_long)pgno);#endif	} else {#ifndef __KERNEL__		printf("0x%lx ", (u_long)R_OFFSET(&lt->reginfo, lockobj));		__db_pr(ptr, lockobj->lockobj.size, stdout);		printf("\n");#endif	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
这里只有精品免费| 久久精品99国产精品日本| 成人理论电影网| 亚洲国产成人午夜在线一区| 国产精品一品二品| 中文字幕一区二区三区不卡 | 精品成人在线观看| 激情文学综合丁香| 国产精品传媒入口麻豆| 91麻豆自制传媒国产之光| 亚洲一区在线播放| 日韩视频一区二区在线观看| 国产精品一级片在线观看| 国产精品久久久久aaaa| 91久久国产最好的精华液| 亚洲va国产天堂va久久en| 精品国产乱码久久久久久浪潮| 国内偷窥港台综合视频在线播放| 日本一区二区三区视频视频| 97精品国产露脸对白| 亚洲成av人片在线观看无码| 日韩欧美国产综合一区| 成+人+亚洲+综合天堂| 亚洲国产精品综合小说图片区| 日韩午夜av一区| 99久久久免费精品国产一区二区 | 欧美日韩国产精品自在自线| 青椒成人免费视频| 国产精品三级视频| 欧美三级乱人伦电影| 久久爱www久久做| 国产精品久久福利| 91精品国产欧美一区二区18| 懂色av中文一区二区三区| 亚洲动漫第一页| 国产婷婷色一区二区三区四区| 色综合色综合色综合 | 韩国成人在线视频| 一区二区三区影院| 久久久久久久久久久黄色| 欧美四级电影在线观看| 国产成人精品免费看| 亚洲电影你懂得| 国产精品欧美一区二区三区| 91精品国产91久久久久久最新毛片 | 久久综合综合久久综合| 亚洲情趣在线观看| 久久精品亚洲精品国产欧美| 欧美精品久久99久久在免费线| 成人av资源下载| 精品午夜久久福利影院| 亚洲国产中文字幕在线视频综合| 26uuu精品一区二区三区四区在线| av不卡免费在线观看| 国产一区二区三区av电影| 午夜一区二区三区在线观看| 亚洲欧洲在线观看av| 久久影院午夜片一区| 337p亚洲精品色噜噜噜| 欧美午夜精品理论片a级按摩| 成人国产精品免费观看视频| 精品一区二区久久久| 日日骚欧美日韩| 亚洲国产精品天堂| 亚洲图片欧美激情| 中文字幕一区二区三区在线观看 | 国产99久久久精品| 国产呦精品一区二区三区网站| 五月婷婷综合在线| 亚洲亚洲人成综合网络| 一区二区三区在线影院| 亚洲欧洲成人自拍| 国产精品久久久久久久久免费桃花 | 99re成人精品视频| 成人黄色一级视频| 国产91精品在线观看| 国产精品12区| 成人一区二区三区视频| 国产福利视频一区二区三区| 国产精品一二一区| 大美女一区二区三区| 国产·精品毛片| 成人免费高清视频在线观看| 成人av在线播放网址| av色综合久久天堂av综合| av在线不卡观看免费观看| 99视频一区二区三区| 91美女片黄在线观看91美女| 色天使久久综合网天天| 91久久精品一区二区二区| 欧美私人免费视频| 欧美一二三在线| 久久嫩草精品久久久精品| 国产区在线观看成人精品| 国产精品成人一区二区艾草| 亚洲老妇xxxxxx| 亚洲3atv精品一区二区三区| 免费成人在线影院| 国产精品亚洲成人| 93久久精品日日躁夜夜躁欧美| 色婷婷精品久久二区二区蜜臀av| 欧美视频一二三区| 精品日韩在线一区| 久久精品人人做人人爽97| 亚洲成人综合视频| 青青草原综合久久大伊人精品| 免费观看在线色综合| 国产河南妇女毛片精品久久久 | 亚洲黄色尤物视频| 午夜精品一区二区三区三上悠亚| 秋霞午夜av一区二区三区| 粉嫩蜜臀av国产精品网站| 欧美在线免费观看亚洲| 日韩午夜电影av| 亚洲视频图片小说| 免费在线看成人av| 国产一区二区三区免费看| 色综合天天做天天爱| 91精品国产欧美一区二区18| 中文字幕欧美三区| 日本aⅴ精品一区二区三区| 成人午夜视频福利| 欧美精品aⅴ在线视频| 国产亚洲欧美日韩在线一区| 亚洲一区av在线| 国产不卡视频一区| 91麻豆精品国产91久久久使用方法 | 国产精品资源在线| 欧美色窝79yyyycom| 国产欧美日产一区| 视频一区视频二区在线观看| www.爱久久.com| 久久先锋影音av| 婷婷亚洲久悠悠色悠在线播放| 国产大陆a不卡| 7777精品伊人久久久大香线蕉的 | 国产精品自在欧美一区| 欧美日韩国产精品成人| 一区二区在线观看免费| 国产美女精品一区二区三区| 91精品国产一区二区三区| 一区二区三区精密机械公司| 国产成人精品亚洲777人妖| 日韩精品一区二区在线| 亚洲一区二区三区视频在线播放| 成人激情免费视频| 亚洲精品在线观| 免费看欧美女人艹b| 制服视频三区第一页精品| 亚洲一区二区四区蜜桃| 成人av在线一区二区三区| 国产欧美精品一区二区色综合| 久久99精品久久只有精品| 欧美一区二区三区爱爱| 亚洲永久免费av| 色狠狠色狠狠综合| 国产精品国产三级国产普通话99| 国产一区二区福利| 欧美大片免费久久精品三p| 秋霞成人午夜伦在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 成人av资源站| 亚洲国产精华液网站w| 国产一区二区精品久久99| ww久久中文字幕| 国产在线观看一区二区| 精品国产制服丝袜高跟| 精品一区二区免费在线观看| 欧美一区二区精品| 老司机午夜精品| 欧美刺激午夜性久久久久久久| 强制捆绑调教一区二区| 日韩欧美精品在线视频| 青草国产精品久久久久久| 日韩午夜在线观看视频| 麻豆精品一区二区三区| 26uuu欧美日本| 丁香啪啪综合成人亚洲小说 | 91豆麻精品91久久久久久| 亚洲欧美国产毛片在线| 在线视频国内一区二区| 亚洲第一会所有码转帖| 日韩天堂在线观看| 国产真实乱偷精品视频免| 欧美国产成人精品| 91久久精品一区二区二区| 亚洲电影中文字幕在线观看| 欧美一区二区福利在线| 韩国三级电影一区二区| 国产精品视频yy9299一区| 在线影视一区二区三区| 午夜视频在线观看一区二区三区| 欧美一区二区三区视频免费 | 亚洲一区在线免费观看| 91精品国产入口| 国产成人亚洲精品青草天美 | 日本一二三四高清不卡| 91蜜桃免费观看视频| 五月天一区二区三区| 久久影音资源网|