#include "db_config.h"
#include "db_int.h"
int
__os_exists(dbenv, path, isdirp)
DB_ENV *dbenv;
const char *path;
int *isdirp;
{
FileInfo fInfo;
IFileMgr *pIFileMgr;
int ret;
FILE_MANAGER_CREATE(dbenv, pIFileMgr, ret);
if (ret != 0)
return (ret);
ret = 0;
if (IFILEMGR_Test(pIFileMgr, path) == EFAILED) {
FILE_MANAGER_ERR(
dbenv, pIFileMgr, path, "IFILEMGR_Test", ret);
goto err;
}
if (isdirp != NULL) {
if (IFILEMGR_GetInfo(pIFileMgr, path, &fInfo) == EFAILED) {
FILE_MANAGER_ERR(
dbenv, pIFileMgr, path, "IFILEMGR_GetInfo", ret);
goto err;
}
*isdirp = fInfo.attrib == _FA_DIR ? 1 : 0;
}
err: IFILEMGR_Release(pIFileMgr);
return (ret);
}
int
__os_ioinfo(dbenv, path, fhp, mbytesp, bytesp, iosizep)
DB_ENV *dbenv;
const char *path;
DB_FH *fhp;
u_int32_t *mbytesp, *bytesp, *iosizep;
{
IFileMgr *pIFileMgr;
FileInfo fInfo;
int ret;
FILE_MANAGER_CREATE(dbenv, pIFileMgr, ret);
if (ret != 0)
return (ret);
if (IFILE_GetInfo(fhp->ifp, &fInfo) != SUCCESS) {
FILE_MANAGER_ERR(dbenv, pIFileMgr, path, "IFILE_GetInfo", ret);
goto err;
}
if (mbytesp != NULL)
*mbytesp = (u_int32_t)(fInfo.dwSize / MEGABYTE);
if (bytesp != NULL)
*bytesp = (u_int32_t)(fInfo.dwSize % MEGABYTE);
if (iosizep != NULL)
*iosizep = DB_DEF_IOSIZE;
err: IFILEMGR_Release(pIFileMgr);
return (ret);
}