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:
parent
1aa690c87c
commit
c70dfc477f
14
manifest
14
manifest
@ -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
|
||||||
|
@ -1 +1 @@
|
|||||||
8cc120fb3aed835a2cd081963317b7f1b1ac4b73
|
92c91a6cd7bcbe79206bdf7708fe9049a7b7fdd6
|
103
src/os_unix.c
103
src/os_unix.c
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user