In os_unix.c, use "IS_VXWORKS" instead of "defined(__RTP__) || defined(_WRS_KERNEL)". Purely because it's easier on the eyes. (CVS 5925)

FossilOrigin-Name: 92c91a6cd7bcbe79206bdf7708fe9049a7b7fdd6
This commit is contained in:
danielk1977 2008-11-19 13:52:30 +00:00
parent 1aa690c87c
commit c70dfc477f
3 changed files with 55 additions and 64 deletions

View File

@ -1,5 +1,5 @@
C Version\snumber\sto\s3.6.6.\s(CVS\s5924) C In\sos_unix.c,\suse\s"IS_VXWORKS"\sinstead\sof\s"defined(__RTP__)\s||\sdefined(_WRS_KERNEL)".\sPurely\sbecause\sit's\seasier\son\sthe\seyes.\s(CVS\s5925)
D 2008-11-19T12:43:20 D 2008-11-19T13:52:30
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 0aa7bbe3be6acc4045706e3bb3fd0b8f38f4a3b5 F Makefile.in 0aa7bbe3be6acc4045706e3bb3fd0b8f38f4a3b5
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@ -137,7 +137,7 @@ F src/os.c 0b411644b87ad689d7250bbfd1834d99b81a3df4
F src/os.h ef8abeb9afc694b82dbd169a91c9b7e26db3c892 F src/os.h ef8abeb9afc694b82dbd169a91c9b7e26db3c892
F src/os_common.h 24525d8b7bce66c374dfc1810a6c9043f3359b60 F src/os_common.h 24525d8b7bce66c374dfc1810a6c9043f3359b60
F src/os_os2.c d12285d66df674c42f6f544a6f7c21bf1a954ee1 F src/os_os2.c d12285d66df674c42f6f544a6f7c21bf1a954ee1
F src/os_unix.c d8555013e65f0e7ba110823b4b9e7a18080185f5 F src/os_unix.c 88cfaa018b62a708bee91a984a48a59e56df2bc4
F src/os_win.c 08d0b059ac01f32e8813bb96fc573486592b83f5 F src/os_win.c 08d0b059ac01f32e8813bb96fc573486592b83f5
F src/pager.c ae5da38b6415bdd88e56a2a484f29282c4ea09f5 F src/pager.c ae5da38b6415bdd88e56a2a484f29282c4ea09f5
F src/pager.h a02ef8e6cc7e78b54874166e5ce786c9d4c489bf F src/pager.h a02ef8e6cc7e78b54874166e5ce786c9d4c489bf
@ -659,7 +659,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
P 2f5aaad90b7e3bbb31866c43db3e24a1be26f03b P 8cc120fb3aed835a2cd081963317b7f1b1ac4b73
R 92f5f81cc0445e7671c6a514671bce05 R a60912d7c8bf8ef16c32d0eefce892ef
U drh U danielk1977
Z c9990c6e561404196bd0633fad69f3ee Z 773ef59016ee6ed7937cc42866024e39

View File

@ -1 +1 @@
8cc120fb3aed835a2cd081963317b7f1b1ac4b73 92c91a6cd7bcbe79206bdf7708fe9049a7b7fdd6

View File

@ -12,7 +12,7 @@
** **
** This file contains code that is specific to Unix systems. ** This file contains code that is specific to Unix systems.
** **
** $Id: os_unix.c,v 1.213 2008/11/19 11:35:40 danielk1977 Exp $ ** $Id: os_unix.c,v 1.214 2008/11/19 13:52:30 danielk1977 Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
#if SQLITE_OS_UNIX /* This file is used on unix only */ #if SQLITE_OS_UNIX /* This file is used on unix only */
@ -82,15 +82,15 @@
#include <errno.h> #include <errno.h>
#if SQLITE_ENABLE_LOCKING_STYLE #if SQLITE_ENABLE_LOCKING_STYLE
#include <sys/ioctl.h> # include <sys/ioctl.h>
#if defined(__RTP__) || defined(_WRS_KERNEL) # if IS_VXWORKS
#define lstat stat # define lstat stat
#include <semaphore.h> # include <semaphore.h>
#include <limits.h> # include <limits.h>
#else # else
#include <sys/param.h> # include <sys/param.h>
#include <sys/mount.h> # include <sys/mount.h>
#endif # endif
#endif /* SQLITE_ENABLE_LOCKING_STYLE */ #endif /* SQLITE_ENABLE_LOCKING_STYLE */
/* /*
@ -140,7 +140,7 @@ struct unixFile {
pthread_t tid; /* The thread that "owns" this unixFile */ pthread_t tid; /* The thread that "owns" this unixFile */
#endif #endif
int lastErrno; /* The unix errno from the last I/O error */ int lastErrno; /* The unix errno from the last I/O error */
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
int isDelete; /* Delete on close if true */ int isDelete; /* Delete on close if true */
char *zRealpath; char *zRealpath;
#endif #endif
@ -322,7 +322,7 @@ struct unixFile {
*/ */
struct lockKey { struct lockKey {
dev_t dev; /* Device number */ dev_t dev; /* Device number */
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
void *rnam; /* Realname since inode unusable */ void *rnam; /* Realname since inode unusable */
#else #else
ino_t ino; /* Inode number */ ino_t ino; /* Inode number */
@ -356,7 +356,7 @@ struct lockInfo {
*/ */
struct openKey { struct openKey {
dev_t dev; /* Device number */ dev_t dev; /* Device number */
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
void *rnam; /* Realname since inode unusable */ void *rnam; /* Realname since inode unusable */
#else #else
ino_t ino; /* Inode number */ ino_t ino; /* Inode number */
@ -376,7 +376,7 @@ struct openCnt {
int nLock; /* Number of outstanding locks */ int nLock; /* Number of outstanding locks */
int nPending; /* Number of pending close() operations */ int nPending; /* Number of pending close() operations */
int *aPending; /* Malloced space holding fd's awaiting a close() */ int *aPending; /* Malloced space holding fd's awaiting a close() */
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
sem_t *pSem; /* Named POSIX semaphore */ sem_t *pSem; /* Named POSIX semaphore */
char aSemName[MAX_PATHNAME+1]; /* Name of that semaphore */ char aSemName[MAX_PATHNAME+1]; /* Name of that semaphore */
#endif #endif
@ -392,7 +392,7 @@ struct openCnt {
static struct lockInfo *lockList = 0; static struct lockInfo *lockList = 0;
static struct openCnt *openList = 0; static struct openCnt *openList = 0;
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
/* /*
** This hash table is used to bind the canonical file name to a ** This hash table is used to bind the canonical file name to a
** unixFile structure and use the hash key (= canonical name) ** unixFile structure and use the hash key (= canonical name)
@ -646,7 +646,7 @@ static void releaseOpenCnt(struct openCnt *pOpen){
} }
} }
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
/* /*
** Implementation of a realpath() like function for vxWorks ** Implementation of a realpath() like function for vxWorks
** to determine canonical path name from given name. It does ** to determine canonical path name from given name. It does
@ -759,13 +759,10 @@ static int testLockingStyle(int fd){
} }
/* Testing for flock() can give false positives. So if if the above /* Testing for flock() can give false positives. So if if the above
** test fails, then we fall back to using dot-file style locking. ** test fails, then we fall back to using dot-file style locking (or
** named-semaphore locking on vxworks).
*/ */
#if defined(__RTP__) || defined(_WRS_KERNEL) return (IS_VXWORKS ? LOCKING_STYLE_NAMEDSEM : LOCKING_STYLE_DOTFILE);
return LOCKING_STYLE_NAMEDSEM;
#else
return LOCKING_STYLE_DOTFILE;
#endif
} }
#endif #endif
@ -786,7 +783,7 @@ static int detectLockingStyle(
const char *filePath, const char *filePath,
int fd int fd
){ ){
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
if( !filePath ){ if( !filePath ){
return LOCKING_STYLE_NONE; return LOCKING_STYLE_NONE;
} }
@ -836,7 +833,7 @@ static int detectLockingStyle(
/* Default case. Handles, amongst others, "nfs". */ /* Default case. Handles, amongst others, "nfs". */
return testLockingStyle(fd); return testLockingStyle(fd);
#endif /* if defined(__RTP__) || defined(_WRS_KERNEL) */ #endif /* if IS_VXWORKS */
return LOCKING_STYLE_POSIX; return LOCKING_STYLE_POSIX;
} }
#else #else
@ -852,7 +849,7 @@ static int detectLockingStyle(
*/ */
static int findLockInfo( static int findLockInfo(
int fd, /* The file descriptor used in the key */ int fd, /* The file descriptor used in the key */
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
void *rnam, /* vxWorks realname */ void *rnam, /* vxWorks realname */
#endif #endif
struct lockInfo **ppLock, /* Return the lockInfo structure here */ struct lockInfo **ppLock, /* Return the lockInfo structure here */
@ -892,7 +889,7 @@ static int findLockInfo(
memset(&key1, 0, sizeof(key1)); memset(&key1, 0, sizeof(key1));
key1.dev = statbuf.st_dev; key1.dev = statbuf.st_dev;
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
key1.rnam = rnam; key1.rnam = rnam;
#else #else
key1.ino = statbuf.st_ino; key1.ino = statbuf.st_ino;
@ -905,7 +902,7 @@ static int findLockInfo(
#endif #endif
memset(&key2, 0, sizeof(key2)); memset(&key2, 0, sizeof(key2));
key2.dev = statbuf.st_dev; key2.dev = statbuf.st_dev;
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
key2.rnam = rnam; key2.rnam = rnam;
#else #else
key2.ino = statbuf.st_ino; key2.ino = statbuf.st_ino;
@ -953,7 +950,7 @@ static int findLockInfo(
pOpen->pPrev = 0; pOpen->pPrev = 0;
if( openList ) openList->pPrev = pOpen; if( openList ) openList->pPrev = pOpen;
openList = pOpen; openList = pOpen;
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
pOpen->pSem = NULL; pOpen->pSem = NULL;
pOpen->aSemName[0] = '\0'; pOpen->aSemName[0] = '\0';
#endif #endif
@ -1021,7 +1018,7 @@ static int transferOwnership(unixFile *pFile){
pFile->tid = hSelf; pFile->tid = hSelf;
if (pFile->pLock != NULL) { if (pFile->pLock != NULL) {
releaseLockInfo(pFile->pLock); releaseLockInfo(pFile->pLock);
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
rc = findLockInfo(pFile->h, pFile->zRealpath, &pFile->pLock, 0); rc = findLockInfo(pFile->h, pFile->zRealpath, &pFile->pLock, 0);
#else #else
rc = findLockInfo(pFile->h, &pFile->pLock, 0); rc = findLockInfo(pFile->h, &pFile->pLock, 0);
@ -1841,7 +1838,7 @@ static int closeUnixFile(sqlite3_file *id){
if( pFile->h>=0 ){ if( pFile->h>=0 ){
close(pFile->h); close(pFile->h);
} }
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
if( pFile->isDelete && pFile->zRealpath ){ if( pFile->isDelete && pFile->zRealpath ){
unlink(pFile->zRealpath); unlink(pFile->zRealpath);
} }
@ -1904,7 +1901,7 @@ static int unixClose(sqlite3_file *id){
#if SQLITE_ENABLE_LOCKING_STYLE #if SQLITE_ENABLE_LOCKING_STYLE
#if !defined(__RTP__) && !defined(_WRS_KERNEL) #if !IS_VXWORKS
#pragma mark AFP Support #pragma mark AFP Support
/* /*
@ -2352,7 +2349,7 @@ static int flockClose(sqlite3_file *id) {
return closeUnixFile(id); return closeUnixFile(id);
} }
#endif /* !defined(__RTP__) && !defined(_WRS_KERNEL) */ #endif /* !IS_VXWORKS */
#pragma mark Old-School .lock file based locking #pragma mark Old-School .lock file based locking
@ -2405,7 +2402,7 @@ static int dotlockLock(sqlite3_file *id, int locktype) {
** Just adjust level and punt on outta here. */ ** Just adjust level and punt on outta here. */
if (pFile->locktype > NO_LOCK) { if (pFile->locktype > NO_LOCK) {
pFile->locktype = locktype; pFile->locktype = locktype;
#if !defined(__RTP__) && !defined(_WRS_KERNEL) #if !IS_VXWORKS
/* Always update the timestamp on the old file */ /* Always update the timestamp on the old file */
utimes(zLockFile, NULL); utimes(zLockFile, NULL);
#endif #endif
@ -2483,25 +2480,19 @@ static int dotlockUnlock(sqlite3_file *id, int locktype) {
** Close a file. ** Close a file.
*/ */
static int dotlockClose(sqlite3_file *id) { static int dotlockClose(sqlite3_file *id) {
#if defined(__RTP__) || defined(_WRS_KERNEL)
int rc; int rc;
#endif
if( id ){ if( id ){
unixFile *pFile = (unixFile*)id; unixFile *pFile = (unixFile*)id;
dotlockUnlock(id, NO_LOCK); dotlockUnlock(id, NO_LOCK);
sqlite3_free(pFile->lockingContext); sqlite3_free(pFile->lockingContext);
} }
#if defined(__RTP__) || defined(_WRS_KERNEL) if( IS_VXWORKS ) enterMutex();
enterMutex();
rc = closeUnixFile(id); rc = closeUnixFile(id);
leaveMutex(); if( IS_VXWORKS ) leaveMutex();
return rc; return rc;
#else
return closeUnixFile(id);
#endif
} }
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
#pragma mark POSIX/vxWorks named semaphore based locking #pragma mark POSIX/vxWorks named semaphore based locking
@ -2624,7 +2615,7 @@ static int namedsemClose(sqlite3_file *id) {
return SQLITE_OK; return SQLITE_OK;
} }
#endif /* defined(__RTP__) || defined(_WRS_KERNEL) */ #endif /* IS_VXWORKS */
#endif /* SQLITE_ENABLE_LOCKING_STYLE */ #endif /* SQLITE_ENABLE_LOCKING_STYLE */
@ -2743,7 +2734,7 @@ static int fillInUnixFile(
,IOMETHODS(nolockClose, nolockLock, nolockUnlock, nolockCheckReservedLock) ,IOMETHODS(nolockClose, nolockLock, nolockUnlock, nolockCheckReservedLock)
#if SQLITE_ENABLE_LOCKING_STYLE #if SQLITE_ENABLE_LOCKING_STYLE
,IOMETHODS(dotlockClose, dotlockLock, dotlockUnlock,dotlockCheckReservedLock) ,IOMETHODS(dotlockClose, dotlockLock, dotlockUnlock,dotlockCheckReservedLock)
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
,IOMETHODS(nolockClose, nolockLock, nolockUnlock, nolockCheckReservedLock) ,IOMETHODS(nolockClose, nolockLock, nolockUnlock, nolockCheckReservedLock)
,IOMETHODS(nolockClose, nolockLock, nolockUnlock, nolockCheckReservedLock) ,IOMETHODS(nolockClose, nolockLock, nolockUnlock, nolockCheckReservedLock)
,IOMETHODS(namedsemClose, namedsemLock, namedsemUnlock, namedsemCheckReservedLock) ,IOMETHODS(namedsemClose, namedsemLock, namedsemUnlock, namedsemCheckReservedLock)
@ -2772,7 +2763,7 @@ static int fillInUnixFile(
pNew->dirfd = dirfd; pNew->dirfd = dirfd;
SET_THREADID(pNew); SET_THREADID(pNew);
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
{ {
HashElem *pElem; HashElem *pElem;
char *zRealname = vxrealpath(zFilename, 1); char *zRealname = vxrealpath(zFilename, 1);
@ -2818,7 +2809,7 @@ static int fillInUnixFile(
case LOCKING_STYLE_POSIX: { case LOCKING_STYLE_POSIX: {
enterMutex(); enterMutex();
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
rc = findLockInfo(h, pNew->zRealpath, &pNew->pLock, &pNew->pOpen); rc = findLockInfo(h, pNew->zRealpath, &pNew->pLock, &pNew->pOpen);
#else #else
rc = findLockInfo(h, &pNew->pLock, &pNew->pOpen); rc = findLockInfo(h, &pNew->pLock, &pNew->pOpen);
@ -2829,7 +2820,7 @@ static int fillInUnixFile(
#if SQLITE_ENABLE_LOCKING_STYLE #if SQLITE_ENABLE_LOCKING_STYLE
#if !defined(__RTP__) && !defined(_WRS_KERNEL) #if !IS_VXWORKS
case LOCKING_STYLE_AFP: { case LOCKING_STYLE_AFP: {
/* AFP locking uses the file path so it needs to be included in /* AFP locking uses the file path so it needs to be included in
** the afpLockingContext. ** the afpLockingContext.
@ -2866,7 +2857,7 @@ static int fillInUnixFile(
break; break;
} }
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
case LOCKING_STYLE_NAMEDSEM: { case LOCKING_STYLE_NAMEDSEM: {
/* Named semaphore locking uses the file path so it needs to be /* Named semaphore locking uses the file path so it needs to be
** included in the namedsemLockingContext ** included in the namedsemLockingContext
@ -2890,7 +2881,7 @@ static int fillInUnixFile(
} }
#endif #endif
#if !defined(__RTP__) && !defined(_WRS_KERNEL) #if !IS_VXWORKS
case LOCKING_STYLE_FLOCK: case LOCKING_STYLE_FLOCK:
#endif #endif
case LOCKING_STYLE_NONE: case LOCKING_STYLE_NONE:
@ -2899,7 +2890,7 @@ static int fillInUnixFile(
} }
pNew->lastErrno = 0; pNew->lastErrno = 0;
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
if( rc!=SQLITE_OK ){ if( rc!=SQLITE_OK ){
unlink(zFilename); unlink(zFilename);
isDelete = 0; isDelete = 0;
@ -3115,7 +3106,7 @@ static int unixOpen(
return SQLITE_CANTOPEN; return SQLITE_CANTOPEN;
} }
if( isDelete ){ if( isDelete ){
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
zPath = zName; zPath = zName;
#else #else
unlink(zName); unlink(zName);
@ -3156,7 +3147,7 @@ static int unixDelete(sqlite3_vfs *NotUsed, const char *zPath, int dirSync){
int fd; int fd;
rc = openDirectory(zPath, &fd); rc = openDirectory(zPath, &fd);
if( rc==SQLITE_OK ){ if( rc==SQLITE_OK ){
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
if( fsync(fd)==-1 ) if( fsync(fd)==-1 )
#else #else
if( fsync(fd) ) if( fsync(fd) )
@ -3234,7 +3225,7 @@ static int unixFullPathname(
assert( pVfs->mxPathname==MAX_PATHNAME ); assert( pVfs->mxPathname==MAX_PATHNAME );
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
{ {
char *zRealname = vxrealpath(zPath, 0); char *zRealname = vxrealpath(zPath, 0);
zOut[0] = '\0'; zOut[0] = '\0';
@ -3382,7 +3373,7 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nBuf, char *zBuf){
** than the argument. ** than the argument.
*/ */
static int unixSleep(sqlite3_vfs *NotUsed, int microseconds){ static int unixSleep(sqlite3_vfs *NotUsed, int microseconds){
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
struct timespec sp; struct timespec sp;
sp.tv_sec = microseconds / 1000000; sp.tv_sec = microseconds / 1000000;
@ -3414,7 +3405,7 @@ int sqlite3_current_time = 0;
** return 0. Return 1 if the time and date cannot be found. ** return 0. Return 1 if the time and date cannot be found.
*/ */
static int unixCurrentTime(sqlite3_vfs *NotUsed, double *prNow){ static int unixCurrentTime(sqlite3_vfs *NotUsed, double *prNow){
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
struct timespec sNow; struct timespec sNow;
clock_gettime(CLOCK_REALTIME, &sNow); clock_gettime(CLOCK_REALTIME, &sNow);
*prNow = 2440587.5 + sNow.tv_sec/86400.0 + sNow.tv_nsec/86400000000000.0; *prNow = 2440587.5 + sNow.tv_sec/86400.0 + sNow.tv_nsec/86400000000000.0;
@ -3489,7 +3480,7 @@ int sqlite3_os_init(void){
sqlite3_vfs_register(&aVfs[i], 0); sqlite3_vfs_register(&aVfs[i], 0);
} }
#endif #endif
#if defined(__RTP__) || defined(_WRS_KERNEL) #if IS_VXWORKS
sqlite3HashInit(&nameHash, 1); sqlite3HashInit(&nameHash, 1);
#endif #endif
sqlite3_vfs_register(&unixVfs, 1); sqlite3_vfs_register(&unixVfs, 1);