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

📄 env_method.c

📁 这是国外的resip协议栈
💻 C
📖 第 1 页 / 共 2 页
字号:
			LF_SET(env_flags[i]);	}	/* Some flags are persisted in the regions. */	if (dbenv->reginfo != NULL &&	    ((REGENV *)((REGINFO *)dbenv->reginfo)->primary)->envpanic != 0) {		LF_SET(DB_PANIC_ENVIRONMENT);	}	__log_get_flags(dbenv, &flags);	*flagsp = flags;	return (0);}/* * __dbenv_set_flags -- *	DB_ENV->set_flags. * * PUBLIC: int  __dbenv_set_flags __P((DB_ENV *, u_int32_t, int)); */int__dbenv_set_flags(dbenv, flags, on)	DB_ENV *dbenv;	u_int32_t flags;	int on;{	u_int32_t mapped_flags;	int ret;#define	OK_FLAGS							\	(DB_AUTO_COMMIT | DB_CDB_ALLDB | DB_DIRECT_DB | DB_DIRECT_LOG |	\	    DB_DSYNC_LOG | DB_LOG_AUTOREMOVE | DB_LOG_INMEMORY | \	    DB_NOLOCKING | DB_NOMMAP | DB_NOPANIC | DB_OVERWRITE | \	    DB_PANIC_ENVIRONMENT | DB_REGION_INIT | DB_TIME_NOTGRANTED | \	    DB_TXN_NOSYNC | DB_TXN_WRITE_NOSYNC | DB_YIELDCPU)	if (LF_ISSET(~OK_FLAGS))		return (__db_ferr(dbenv, "DB_ENV->set_flags", 0));	if (on) {		if ((ret = __db_fcchk(dbenv, "DB_ENV->set_flags",		    flags, DB_LOG_INMEMORY, DB_TXN_NOSYNC)) != 0)			return (ret);		if ((ret = __db_fcchk(dbenv, "DB_ENV->set_flags",		    flags, DB_LOG_INMEMORY, DB_TXN_WRITE_NOSYNC)) != 0)			return (ret);		if ((ret = __db_fcchk(dbenv, "DB_ENV->set_flags",		    flags, DB_TXN_NOSYNC, DB_TXN_WRITE_NOSYNC)) != 0)			return (ret);		if (LF_ISSET(DB_DIRECT_DB |		    DB_DIRECT_LOG) && __os_have_direct() == 0) {			__db_err(dbenv,	"DB_ENV->set_flags: direct I/O either not configured or not supported");			return (EINVAL);		}	}	if (LF_ISSET(DB_CDB_ALLDB))		ENV_ILLEGAL_AFTER_OPEN(dbenv,		    "DB_ENV->set_flags: DB_CDB_ALLDB");	if (LF_ISSET(DB_PANIC_ENVIRONMENT)) {		ENV_ILLEGAL_BEFORE_OPEN(dbenv,		    "DB_ENV->set_flags: DB_PANIC_ENVIRONMENT");		PANIC_SET(dbenv, on);	}	if (LF_ISSET(DB_REGION_INIT))		ENV_ILLEGAL_AFTER_OPEN(dbenv,		    "DB_ENV->set_flags: DB_REGION_INIT");	/*	 * DB_LOG_INMEMORY, DB_TXN_NOSYNC and DB_TXN_WRITE_NOSYNC are	 * mutually incompatible.  If we're setting one of them, clear all	 * current settings.	 */	if (LF_ISSET(	    DB_LOG_INMEMORY | DB_TXN_NOSYNC | DB_TXN_WRITE_NOSYNC))		F_CLR(dbenv,		    DB_ENV_LOG_INMEMORY |		    DB_ENV_TXN_NOSYNC | DB_ENV_TXN_WRITE_NOSYNC);	/* Some flags are persisted in the regions. */	__log_set_flags(dbenv, flags, on);	mapped_flags = 0;	__dbenv_map_flags(dbenv, &flags, &mapped_flags);	if (on)		F_SET(dbenv, mapped_flags);	else		F_CLR(dbenv, mapped_flags);	return (0);}static int__dbenv_get_data_dirs(dbenv, dirpp)	DB_ENV *dbenv;	const char ***dirpp;{	*dirpp = (const char **)dbenv->db_data_dir;	return (0);}/* * __dbenv_set_data_dir -- *	DB_ENV->set_data_dir. * * PUBLIC: int  __dbenv_set_data_dir __P((DB_ENV *, const char *)); */int__dbenv_set_data_dir(dbenv, dir)	DB_ENV *dbenv;	const char *dir;{	int ret;	/*	 * The array is NULL-terminated so it can be returned by get_data_dirs	 * without a length.	 */#define	DATA_INIT_CNT	20			/* Start with 20 data slots. */	if (dbenv->db_data_dir == NULL) {		if ((ret = __os_calloc(dbenv, DATA_INIT_CNT,		    sizeof(char **), &dbenv->db_data_dir)) != 0)			return (ret);		dbenv->data_cnt = DATA_INIT_CNT;	} else if (dbenv->data_next == dbenv->data_cnt - 2) {		dbenv->data_cnt *= 2;		if ((ret = __os_realloc(dbenv,		    (u_int)dbenv->data_cnt * sizeof(char **),		    &dbenv->db_data_dir)) != 0)			return (ret);	}	ret = __os_strdup(dbenv,	    dir, &dbenv->db_data_dir[dbenv->data_next++]);	dbenv->db_data_dir[dbenv->data_next] = NULL;	return (ret);}/* * __dbenv_set_intermediate_dir -- *	DB_ENV->set_intermediate_dir. * * !!! * Undocumented routine allowing applications to configure Berkeley DB to * create intermediate directories. * * PUBLIC: int  __dbenv_set_intermediate_dir __P((DB_ENV *, int, u_int32_t)); */int__dbenv_set_intermediate_dir(dbenv, mode, flags)	DB_ENV *dbenv;	int mode;	u_int32_t flags;{	if (flags != 0)		return (__db_ferr(dbenv, "DB_ENV->set_intermediate_dir", 0));	if (mode == 0) {		__db_err(dbenv,		    "DB_ENV->set_intermediate_dir: mode may not be set to 0");		return (EINVAL);	}	dbenv->dir_mode = mode;	return (0);}/* * __dbenv_set_errcall -- *	{DB_ENV,DB}->set_errcall. * * PUBLIC: void __dbenv_set_errcall __P((DB_ENV *, * PUBLIC:		void (*)(const DB_ENV *, const char *, const char *))); */void__dbenv_set_errcall(dbenv, errcall)	DB_ENV *dbenv;	void (*errcall) __P((const DB_ENV *, const char *, const char *));{	dbenv->db_errcall = errcall;}/* * __dbenv_get_errfile -- *	{DB_ENV,DB}->get_errfile. * * PUBLIC: void __dbenv_get_errfile __P((DB_ENV *, FILE **)); */void__dbenv_get_errfile(dbenv, errfilep)	DB_ENV *dbenv;	FILE **errfilep;{	*errfilep = dbenv->db_errfile;}/* * __dbenv_set_errfile -- *	{DB_ENV,DB}->set_errfile. * * PUBLIC: void __dbenv_set_errfile __P((DB_ENV *, FILE *)); */void__dbenv_set_errfile(dbenv, errfile)	DB_ENV *dbenv;	FILE *errfile;{	dbenv->db_errfile = errfile;}/* * __dbenv_get_errpfx -- *	{DB_ENV,DB}->get_errpfx. * * PUBLIC: void __dbenv_get_errpfx __P((DB_ENV *, const char **)); */void__dbenv_get_errpfx(dbenv, errpfxp)	DB_ENV *dbenv;	const char **errpfxp;{	*errpfxp = dbenv->db_errpfx;}/* * __dbenv_set_errpfx -- *	{DB_ENV,DB}->set_errpfx. * * PUBLIC: void __dbenv_set_errpfx __P((DB_ENV *, const char *)); */void__dbenv_set_errpfx(dbenv, errpfx)	DB_ENV *dbenv;	const char *errpfx;{	dbenv->db_errpfx = errpfx;}static int__dbenv_set_feedback(dbenv, feedback)	DB_ENV *dbenv;	void (*feedback) __P((DB_ENV *, int, int));{	dbenv->db_feedback = feedback;	return (0);}/* * __dbenv_set_msgcall -- *	{DB_ENV,DB}->set_msgcall. * * PUBLIC: void __dbenv_set_msgcall * PUBLIC:     __P((DB_ENV *, void (*)(const DB_ENV *, const char *))); */void__dbenv_set_msgcall(dbenv, msgcall)	DB_ENV *dbenv;	void (*msgcall) __P((const DB_ENV *, const char *));{	dbenv->db_msgcall = msgcall;}/* * __dbenv_get_msgfile -- *	{DB_ENV,DB}->get_msgfile. * * PUBLIC: void __dbenv_get_msgfile __P((DB_ENV *, FILE **)); */void__dbenv_get_msgfile(dbenv, msgfilep)	DB_ENV *dbenv;	FILE **msgfilep;{	*msgfilep = dbenv->db_msgfile;}/* * __dbenv_set_msgfile -- *	{DB_ENV,DB}->set_msgfile. * * PUBLIC: void __dbenv_set_msgfile __P((DB_ENV *, FILE *)); */void__dbenv_set_msgfile(dbenv, msgfile)	DB_ENV *dbenv;	FILE *msgfile;{	dbenv->db_msgfile = msgfile;}/* * __dbenv_set_paniccall -- *	{DB_ENV,DB}->set_paniccall. * * PUBLIC: int  __dbenv_set_paniccall __P((DB_ENV *, void (*)(DB_ENV *, int))); */int__dbenv_set_paniccall(dbenv, paniccall)	DB_ENV *dbenv;	void (*paniccall) __P((DB_ENV *, int));{	dbenv->db_paniccall = paniccall;	return (0);}static int__dbenv_get_shm_key(dbenv, shm_keyp)	DB_ENV *dbenv;	long *shm_keyp;			/* !!!: really a key_t *. */{	*shm_keyp = dbenv->shm_key;	return (0);}/* * __dbenv_set_shm_key -- *	DB_ENV->set_shm_key. * * PUBLIC: int  __dbenv_set_shm_key __P((DB_ENV *, long)); */int__dbenv_set_shm_key(dbenv, shm_key)	DB_ENV *dbenv;	long shm_key;			/* !!!: really a key_t. */{	ENV_ILLEGAL_AFTER_OPEN(dbenv, "DB_ENV->set_shm_key");	dbenv->shm_key = shm_key;	return (0);}static int__dbenv_get_tas_spins(dbenv, tas_spinsp)	DB_ENV *dbenv;	u_int32_t *tas_spinsp;{	*tas_spinsp = dbenv->tas_spins;	return (0);}/* * __dbenv_set_tas_spins -- *	DB_ENV->set_tas_spins. * * PUBLIC: int  __dbenv_set_tas_spins __P((DB_ENV *, u_int32_t)); */int__dbenv_set_tas_spins(dbenv, tas_spins)	DB_ENV *dbenv;	u_int32_t tas_spins;{	dbenv->tas_spins = tas_spins;	return (0);}static int__dbenv_get_tmp_dir(dbenv, dirp)	DB_ENV *dbenv;	const char **dirp;{	*dirp = dbenv->db_tmp_dir;	return (0);}/* * __dbenv_set_tmp_dir -- *	DB_ENV->set_tmp_dir. * * PUBLIC: int  __dbenv_set_tmp_dir __P((DB_ENV *, const char *)); */int__dbenv_set_tmp_dir(dbenv, dir)	DB_ENV *dbenv;	const char *dir;{	if (dbenv->db_tmp_dir != NULL)		__os_free(dbenv, dbenv->db_tmp_dir);	return (__os_strdup(dbenv, dir, &dbenv->db_tmp_dir));}static int__dbenv_get_verbose(dbenv, which, onoffp)	DB_ENV *dbenv;	u_int32_t which;	int *onoffp;{	switch (which) {	case DB_VERB_DEADLOCK:	case DB_VERB_RECOVERY:	case DB_VERB_REPLICATION:	case DB_VERB_WAITSFOR:		*onoffp = FLD_ISSET(dbenv->verbose, which) ? 1 : 0;		break;	default:		return (EINVAL);	}	return (0);}/* * __dbenv_set_verbose -- *	DB_ENV->set_verbose. * * PUBLIC: int  __dbenv_set_verbose __P((DB_ENV *, u_int32_t, int)); */int__dbenv_set_verbose(dbenv, which, on)	DB_ENV *dbenv;	u_int32_t which;	int on;{	switch (which) {	case DB_VERB_DEADLOCK:	case DB_VERB_RECOVERY:	case DB_VERB_REPLICATION:	case DB_VERB_WAITSFOR:		if (on)			FLD_SET(dbenv->verbose, which);		else			FLD_CLR(dbenv->verbose, which);		break;	default:		return (EINVAL);	}	return (0);}/* * __db_mi_env -- *	Method illegally called with public environment. * * PUBLIC: int __db_mi_env __P((DB_ENV *, const char *)); */int__db_mi_env(dbenv, name)	DB_ENV *dbenv;	const char *name;{	__db_err(dbenv, "%s: method not permitted when environment specified",	    name);	return (EINVAL);}/* * __db_mi_open -- *	Method illegally called after open. * * PUBLIC: int __db_mi_open __P((DB_ENV *, const char *, int)); */int__db_mi_open(dbenv, name, after)	DB_ENV *dbenv;	const char *name;	int after;{	__db_err(dbenv, "%s: method not permitted %s handle's open method",	    name, after ? "after" : "before");	return (EINVAL);}/* * __db_env_config -- *	Method or function called without required configuration. * * PUBLIC: int __db_env_config __P((DB_ENV *, char *, u_int32_t)); */int__db_env_config(dbenv, i, flags)	DB_ENV *dbenv;	char *i;	u_int32_t flags;{	char *sub;	switch (flags) {	case DB_INIT_LOCK:		sub = "locking";		break;	case DB_INIT_LOG:		sub = "logging";		break;	case DB_INIT_MPOOL:		sub = "memory pool";		break;	case DB_INIT_REP:		sub = "replication";		break;	case DB_INIT_TXN:		sub = "transaction";		break;	default:		sub = "<unspecified>";		break;	}	__db_err(dbenv,    "%s interface requires an environment configured for the %s subsystem",	    i, sub);	return (EINVAL);}static int__dbenv_set_rpc_server_noclnt(dbenv, cl, host, tsec, ssec, flags)	DB_ENV *dbenv;	void *cl;	const char *host;	long tsec, ssec;	u_int32_t flags;{	COMPQUIET(host, NULL);	COMPQUIET(cl, NULL);	COMPQUIET(tsec, 0);	COMPQUIET(ssec, 0);	COMPQUIET(flags, 0);	__db_err(dbenv,	    "set_rpc_server method not permitted in non-RPC environment");	return (DB_OPNOTSUP);}

⌨️ 快捷键说明

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