-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-C Add\smore\ssystem\scalls\sto\sthe\sset\sthat\scan\sbe\soverridden\sin\sos_unix.c.\nAlso\smerge\sin\srecent\sfixes\sfrom\strunk.
-D 2011-03-02T18:01:10.609
+C Add\sadditional\sVFS\smethods\sto\sretrieve\ssystem\scall\spointers\sand\sto\sget\sa\nlist\sof\sall\schangeable\ssystem\scalls.
+D 2011-03-02T19:06:42.724
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 27701a1653595a1f2187dc61c8117e00a6c1d50f
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F src/os.h 9dbed8c2b9c1f2f2ebabc09e49829d4777c26bf9
F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
F src/os_os2.c 2e452c9f2ca507623ad351c33a8a8b27849b1863
-F src/os_unix.c a13aa2394c337a51f818b33e8abb5922bcd25cbb
-F src/os_win.c c2df806a8510ec8c2c2c30fb78b3a25bc1b2f325
+F src/os_unix.c 3d38767952d504486d182dea7b77279688011896
+F src/os_win.c 24d72407a90551969744cf9bcbb1b4c72c5fa845
F src/pager.c 6aa906b60a59664ba58d3f746164bb010d407ce1
F src/pager.h 3f8c783de1d4706b40b1ac15b64f5f896bcc78d1
F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
F src/select.c d24406c45dd2442eb2eeaac413439066b149c944
F src/shell.c 649c51979812f77f97507024a4cea480c6862b8b
-F src/sqlite.h.in a2115e725e77ea1284a4df51b39f94121f020ab8
+F src/sqlite.h.in 660a7db4b052f0e390842fcaae49e3de5e10194d
F src/sqlite3ext.h c90bd5507099f62043832d73f6425d8d5c5da754
F src/sqliteInt.h 4290fff17fabc6e07fc4338233df0e39e6350ca1
F src/sqliteLimit.h a17dcd3fb775d63b64a43a55c54cb282f9726f44
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 92b5a76abc53290e1bb87b6b55bc64bb1b331dfc ec55e8c6bb4f2419b3813aa2fd1a20d8f5016159
-R 3565d6dc7b759fbd44b8dfd37d76ad07
+P 80fac2a6e07221bb67613af84ab9dda3e18b5ceb
+R 469544ed72ad6cc0fd2ce66bb41ae458
U drh
-Z d880c71a14ae5250c2798782141ecbce
+Z 4fd425550526c290567641a06db348a6
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
-iD8DBQFNboXpoxKgR168RlERAi5qAJ48oWmqxPjfRV4pFj4iAbQCs6u9fQCeNLi2
-M/sSIPhA4/GCd6qHTyrGyKQ=
-=Ttvh
+iD8DBQFNbpVGoxKgR168RlERAiVlAJ9CbY/F1l/3wLXTOWVbVMt3PK4e2wCfXCEX
+gkP0SmX/m93Upo7bU9m9XaA=
+=DBkJ
-----END PGP SIGNATURE-----
-80fac2a6e07221bb67613af84ab9dda3e18b5ceb
\ No newline at end of file
+38558363494e3a736dcb091dd859e76b7ccd78b0
\ No newline at end of file
/*
** This is the xSetSystemCall() method of sqlite3_vfs for all of the
-** "unix" VFSes.
+** "unix" VFSes. Return SQLITE_OK opon successfully updating the
+** system call pointer, or SQLITE_NOTFOUND if there is no configurable
+** system call named zName.
*/
static int unixSetSystemCall(
sqlite3_vfs *pNotUsed, /* The VFS pointer. Not used */
void *pNewFunc /* Pointer to new system call value */
){
int i;
- int rc = 0;
+ int rc = SQLITE_NOTFOUND;
if( zName==0 ){
/* If no zName is given, restore all system calls to their default
** settings and return NULL
for(i=0; i<sizeof(aSyscall)/sizeof(aSyscall[0]); i++){
if( aSyscall[i].pDefault ){
aSyscall[i].pCurrent = aSyscall[i].pDefault;
- rc = 1;
+ rc = SQLITE_OK;
}
}
}else{
if( aSyscall[i].pDefault==0 ){
aSyscall[i].pDefault = aSyscall[i].pCurrent;
}
- rc = 1;
+ rc = SQLITE_OK;
if( pNewFunc==0 ) pNewFunc = aSyscall[i].pDefault;
aSyscall[i].pCurrent = pNewFunc;
break;
return rc;
}
+/*
+** Return the value of a system call. Return NULL if zName is not a
+** recognized system call name. NULL is also returned if the system call
+** is currently undefined.
+*/
+static void *unixGetSystemCall(sqlite3_vfs *pNotUsed, const char *zName){
+ int i;
+ for(i=0; i<sizeof(aSyscall)/sizeof(aSyscall[0]); i++){
+ if( strcmp(zName, aSyscall[i].zName)==0 ) return aSyscall[i].pCurrent;
+ }
+ return 0;
+}
+
+/*
+** Return the name of the first system call after zName. If zName==NULL
+** then return the name of the first system call. Return NULL if zName
+** is the last system call or if zName is not the name of a valid
+** system call.
+*/
+static const char *unixNextSystemCall(sqlite3_vfs *p, const char *zName){
+ int i;
+ if( zName==0 ){
+ i = -1;
+ }else{
+ for(i=0; i<sizeof(aSyscall)/sizeof(aSyscall[0])-1; i++){
+ if( strcmp(zName, aSyscall[0].zName)==0 ) break;
+ }
+ }
+ for(i++; i<sizeof(aSyscall)/sizeof(aSyscall[0]); i++){
+ if( aSyscall[0].pCurrent!=0 ) return aSyscall[0].zName;
+ }
+ return 0;
+}
+
/*
** Helper functions to obtain and relinquish the global mutex. The
unixGetLastError, /* xGetLastError */ \
unixCurrentTimeInt64, /* xCurrentTimeInt64 */ \
unixSetSystemCall, /* xSetSystemCall */ \
+ unixGetSystemCall, /* xGetSystemCall */ \
+ unixNextSystemCall, /* xNextSystemCall */ \
}
/*
winGetLastError, /* xGetLastError */
winCurrentTimeInt64, /* xCurrentTimeInt64 */
0, /* xSetSystemCall */
+ 0, /* xGetSystemCall */
+ 0, /* xNextSystemCall */
};
#ifndef SQLITE_OMIT_WAL
** Those below are for version 3 and greater.
*/
int (*xSetSystemCall)(sqlite3_vfs*, const char *zName, void *pFunc);
+ void *(*xGetSystemCall)(sqlite3_vfs*, const char *zName);
+ const char *(*xNextSystemCall)(sqlite3_vfs*, const char *zName);
/*
** The methods above are in versions 1 through 3 of the sqlite_vfs object.
** New fields may be appended in figure versions. The iVersion