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

📄 brew_db.in

📁 linux 下的源代码分析阅读器 red hat公司新版
💻 IN
字号:
/*- * $Id: brew_db.in,v 1.5 2006/11/15 13:36:48 bostic Exp $ * * The following provides the information necessary to build Berkeley DB * on BREW. */#include <AEEAppGen.h>#include <AEEShell.h>#include <AEEFile.h>#include <AEEStdLib.h>#include "errno.h"#include "db.h"#include "clib_port.h"/* * BREW doesn't have stdio. */#define	EOF	(-1)			/* Declare stdio's EOF. */#define	stderr	((IFile *)1)		/* Flag to call DBGPRINTF. */#define	stdout	((IFile *)1)/* * POSIX time structure/function compatibility. * * !!! * This is likely wrong, we should probably move all Berkeley DB time-specific * functionality into os/. */struct tm {	int tm_sec;     /* seconds after the minute - [0,59] */	int tm_min;     /* minutes after the hour - [0,59] */	int tm_hour;    /* hours since midnight - [0,23] */	int tm_mday;    /* day of the month - [1,31] */	int tm_mon;     /* months since January - [0,11] */	int tm_year;    /* years since 1900 */	int tm_wday;    /* days since Sunday - [0,6] */	int tm_yday;    /* days since January 1 - [0,365] */	int tm_isdst;   /* daylight savings time flag */	/*	 * We don't provide tm_zone or tm_gmtoff because BREW doesn't	 * provide them.	 */};/** The ctime() function converts the time pointed to by clock, representing* time in seconds since the Epoch to local time in the form of a string.** Berkeley DB uses POSIX time values internally.** The POSIX time function returns seconds since the Epoch, which was* 1970/01/01 00:00:00 UTC.** BREW's GETUTCSECONDS() returns the number of seconds since* 1980/01/06 00:00:00 UTC.** To convert from BREW to POSIX, add the seconds between 1970 and 1980 plus* 6 more days.*/#define	BREW_EPOCH_OFFSET	(315964800L)/* * Map ANSI C library functions to BREW specific APIs. */#define	atoi(a)			ATOI(a)#define	free(a)			FREE(a)#define	malloc(a)		MALLOC(a)#define	memcmp(a, b, c)		MEMCMP(a, b, c)#define	memmove(a, b, c)	MEMMOVE(a, b, c)#define	memset(a, b, c)		MEMSET(a, b, c)#define	realloc(a, b)		REALLOC(a, b)#define	snprintf		SNPRINTF#define	sprintf			SPRINTF#define	strcat(a, b)		STRCAT(a, b)#define	strchr(a, b)		STRCHR(a, b)#define	strcmp(a, b)		STRCMP(a, b)#define	strcpy(a, b)		STRCPY(a, b)#define	strdup(a)		STRDUP(a)#define	strlen(a)		STRLEN(a)#define	strncmp(a, b, c)	STRNCMP(a, b, c)#define	strncpy(a, b, c)	STRNCPY(a, b, c)#define	strrchr(a, b)		STRRCHR(a, b)#define	strtoul(a, b, c)	STRTOUL(a, b, c)#define	vsnprintf(a, b, c, d)	VSNPRINTF(a, b, c, d)/* * !!! * Don't #define memcpy to MEMCPY, even though it exists, because that results * in a C pre-processor loop and compile failure. * * Don't #define memcpy to MEMMOVE directly, that results in failure as well. */#define	memcpy			memmove/* * BREW does not have concept of 'sync'. * * It depends on the implementation of the BREW on various platforms, but * Mobilus confirms the version of BREW that ships to North America in 3G * models has sync features guaranteeing safe physical writes whenever a * write is performed using BREW API. Therefore, the issue is not on the * applications running top of BREW, but the implementation of BREW itself * that has to be checked in order to provide durability. */#define	__os_fsync(a, b)	(0)#define	fflush(a)		(0)/* * The ANSI C library functions for which we wrote local versions. */int	   fclose(FILE *);int	   fgetc(FILE *);char	  *fgets(char *, int, FILE *);FILE	  *fopen(const char *, const char *);size_t	   fwrite(const void *, size_t, size_t, FILE *);char	  *getcwd(char *, size_t);struct tm *localtime(const time_t *);time_t	   time(time_t *);/* * FILE_MANAGER_CREATE -- *	Instantiate file manager instance. */#define	FILE_MANAGER_CREATE(dbenv, mgr, ret) do {			\	AEEApplet *__app = (AEEApplet *)GETAPPINSTANCE();		\	int __ret;							\	if ((__ret = ISHELL_CreateInstance(__app->m_pIShell,		\	    AEECLSID_FILEMGR, (void **)&(mgr))) == SUCCESS)		\		ret = 0;						\	else {								\		__db_syserr(dbenv, __ret, "ISHELL_CreateInstance");	\		ret = __os_posix_err(__ret);				\	}								\} while (0)/* * FILE_MANAGER_ERR -- *	Handle file manager method error. */#define	FILE_MANAGER_ERR(dbenv, mgr, name, op, ret) do {		\	int __ret;							\	__ret = IFILEMGR_GetLastError(mgr);				\	if ((name) == NULL)						\		__db_syserr(dbenv, __ret, "%s", op);			\	else								\		__db_syserr(dbenv, __ret, "%s: %s", name, op);		\	(ret) = __os_posix_err(__ret);					\} while (0)

⌨️ 快捷键说明

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