Mercurial > audlegacy
comparison sqlite/os.c @ 1434:b6b61becdf4e trunk
[svn] - add sqlite/ directory
author | nenolod |
---|---|
date | Thu, 27 Jul 2006 22:41:31 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1433:3cbe3d14ea68 | 1434:b6b61becdf4e |
---|---|
1 /* | |
2 ** 2005 November 29 | |
3 ** | |
4 ** The author disclaims copyright to this source code. In place of | |
5 ** a legal notice, here is a blessing: | |
6 ** | |
7 ** May you do good and not evil. | |
8 ** May you find forgiveness for yourself and forgive others. | |
9 ** May you share freely, never taking more than you give. | |
10 ** | |
11 ****************************************************************************** | |
12 ** | |
13 ** This file contains OS interface code that is common to all | |
14 ** architectures. | |
15 */ | |
16 #define _SQLITE_OS_C_ 1 | |
17 #include "sqliteInt.h" | |
18 #include "os.h" | |
19 | |
20 /* | |
21 ** The following routines are convenience wrappers around methods | |
22 ** of the OsFile object. This is mostly just syntactic sugar. All | |
23 ** of this would be completely automatic if SQLite were coded using | |
24 ** C++ instead of plain old C. | |
25 */ | |
26 int sqlite3OsClose(OsFile **pId){ | |
27 OsFile *id; | |
28 if( pId!=0 && (id = *pId)!=0 ){ | |
29 return id->pMethod->xClose(pId); | |
30 }else{ | |
31 return SQLITE_OK; | |
32 } | |
33 } | |
34 int sqlite3OsOpenDirectory(OsFile *id, const char *zName){ | |
35 return id->pMethod->xOpenDirectory(id, zName); | |
36 } | |
37 int sqlite3OsRead(OsFile *id, void *pBuf, int amt){ | |
38 return id->pMethod->xRead(id, pBuf, amt); | |
39 } | |
40 int sqlite3OsWrite(OsFile *id, const void *pBuf, int amt){ | |
41 return id->pMethod->xWrite(id, pBuf, amt); | |
42 } | |
43 int sqlite3OsSeek(OsFile *id, i64 offset){ | |
44 return id->pMethod->xSeek(id, offset); | |
45 } | |
46 int sqlite3OsTruncate(OsFile *id, i64 size){ | |
47 return id->pMethod->xTruncate(id, size); | |
48 } | |
49 int sqlite3OsSync(OsFile *id, int fullsync){ | |
50 return id->pMethod->xSync(id, fullsync); | |
51 } | |
52 void sqlite3OsSetFullSync(OsFile *id, int value){ | |
53 id->pMethod->xSetFullSync(id, value); | |
54 } | |
55 #if defined(SQLITE_TEST) || defined(SQLITE_DEBUG) | |
56 /* This method is currently only used while interactively debugging the | |
57 ** pager. More specificly, it can only be used when sqlite3DebugPrintf() is | |
58 ** included in the build. */ | |
59 int sqlite3OsFileHandle(OsFile *id){ | |
60 return id->pMethod->xFileHandle(id); | |
61 } | |
62 #endif | |
63 int sqlite3OsFileSize(OsFile *id, i64 *pSize){ | |
64 return id->pMethod->xFileSize(id, pSize); | |
65 } | |
66 int sqlite3OsLock(OsFile *id, int lockType){ | |
67 return id->pMethod->xLock(id, lockType); | |
68 } | |
69 int sqlite3OsUnlock(OsFile *id, int lockType){ | |
70 return id->pMethod->xUnlock(id, lockType); | |
71 } | |
72 int sqlite3OsLockState(OsFile *id){ | |
73 return id->pMethod->xLockState(id); | |
74 } | |
75 int sqlite3OsCheckReservedLock(OsFile *id){ | |
76 return id->pMethod->xCheckReservedLock(id); | |
77 } | |
78 | |
79 #ifdef SQLITE_ENABLE_REDEF_IO | |
80 /* | |
81 ** A function to return a pointer to the virtual function table. | |
82 ** This routine really does not accomplish very much since the | |
83 ** virtual function table is a global variable and anybody who | |
84 ** can call this function can just as easily access the variable | |
85 ** for themselves. Nevertheless, we include this routine for | |
86 ** backwards compatibility with an earlier redefinable I/O | |
87 ** interface design. | |
88 */ | |
89 struct sqlite3OsVtbl *sqlite3_os_switch(void){ | |
90 return &sqlite3Os; | |
91 } | |
92 #endif |