Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(468)

Side by Side Diff: third_party/sqlite/src/os_common.h

Issue 3108030: Move bundled copy of sqlite one level deeper to better separate it... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « third_party/sqlite/src/os.c ('k') | third_party/sqlite/src/os_os2.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 ** 2004 May 22
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 macros and a little bit of code that is common to
14 ** all of the platform-specific files (os_*.c) and is #included into those
15 ** files.
16 **
17 ** This file should be #included by the os_*.c files only. It is not a
18 ** general purpose header file.
19 **
20 ** $Id: os_common.h,v 1.38 2009/02/24 18:40:50 danielk1977 Exp $
21 */
22 #ifndef _OS_COMMON_H_
23 #define _OS_COMMON_H_
24
25 /*
26 ** At least two bugs have slipped in because we changed the MEMORY_DEBUG
27 ** macro to SQLITE_DEBUG and some older makefiles have not yet made the
28 ** switch. The following code should catch this problem at compile-time.
29 */
30 #ifdef MEMORY_DEBUG
31 # error "The MEMORY_DEBUG macro is obsolete. Use SQLITE_DEBUG instead."
32 #endif
33
34 #ifdef SQLITE_DEBUG
35 int sqlite3OSTrace = 0;
36 #define OSTRACE1(X) if( sqlite3OSTrace ) sqlite3DebugPrintf(X)
37 #define OSTRACE2(X,Y) if( sqlite3OSTrace ) sqlite3DebugPrintf(X,Y)
38 #define OSTRACE3(X,Y,Z) if( sqlite3OSTrace ) sqlite3DebugPrintf(X,Y,Z)
39 #define OSTRACE4(X,Y,Z,A) if( sqlite3OSTrace ) sqlite3DebugPrintf(X,Y,Z,A)
40 #define OSTRACE5(X,Y,Z,A,B) if( sqlite3OSTrace ) sqlite3DebugPrintf(X,Y,Z,A,B)
41 #define OSTRACE6(X,Y,Z,A,B,C) \
42 if(sqlite3OSTrace) sqlite3DebugPrintf(X,Y,Z,A,B,C)
43 #define OSTRACE7(X,Y,Z,A,B,C,D) \
44 if(sqlite3OSTrace) sqlite3DebugPrintf(X,Y,Z,A,B,C,D)
45 #else
46 #define OSTRACE1(X)
47 #define OSTRACE2(X,Y)
48 #define OSTRACE3(X,Y,Z)
49 #define OSTRACE4(X,Y,Z,A)
50 #define OSTRACE5(X,Y,Z,A,B)
51 #define OSTRACE6(X,Y,Z,A,B,C)
52 #define OSTRACE7(X,Y,Z,A,B,C,D)
53 #endif
54
55 /*
56 ** Macros for performance tracing. Normally turned off. Only works
57 ** on i486 hardware.
58 */
59 #ifdef SQLITE_PERFORMANCE_TRACE
60
61 /*
62 ** hwtime.h contains inline assembler code for implementing
63 ** high-performance timing routines.
64 */
65 #include "hwtime.h"
66
67 static sqlite_uint64 g_start;
68 static sqlite_uint64 g_elapsed;
69 #define TIMER_START g_start=sqlite3Hwtime()
70 #define TIMER_END g_elapsed=sqlite3Hwtime()-g_start
71 #define TIMER_ELAPSED g_elapsed
72 #else
73 #define TIMER_START
74 #define TIMER_END
75 #define TIMER_ELAPSED ((sqlite_uint64)0)
76 #endif
77
78 /*
79 ** If we compile with the SQLITE_TEST macro set, then the following block
80 ** of code will give us the ability to simulate a disk I/O error. This
81 ** is used for testing the I/O recovery logic.
82 */
83 #ifdef SQLITE_TEST
84 int sqlite3_io_error_hit = 0; /* Total number of I/O Errors */
85 int sqlite3_io_error_hardhit = 0; /* Number of non-benign errors */
86 int sqlite3_io_error_pending = 0; /* Count down to first I/O error */
87 int sqlite3_io_error_persist = 0; /* True if I/O errors persist */
88 int sqlite3_io_error_benign = 0; /* True if errors are benign */
89 int sqlite3_diskfull_pending = 0;
90 int sqlite3_diskfull = 0;
91 #define SimulateIOErrorBenign(X) sqlite3_io_error_benign=(X)
92 #define SimulateIOError(CODE) \
93 if( (sqlite3_io_error_persist && sqlite3_io_error_hit) \
94 || sqlite3_io_error_pending-- == 1 ) \
95 { local_ioerr(); CODE; }
96 static void local_ioerr(){
97 IOTRACE(("IOERR\n"));
98 sqlite3_io_error_hit++;
99 if( !sqlite3_io_error_benign ) sqlite3_io_error_hardhit++;
100 }
101 #define SimulateDiskfullError(CODE) \
102 if( sqlite3_diskfull_pending ){ \
103 if( sqlite3_diskfull_pending == 1 ){ \
104 local_ioerr(); \
105 sqlite3_diskfull = 1; \
106 sqlite3_io_error_hit = 1; \
107 CODE; \
108 }else{ \
109 sqlite3_diskfull_pending--; \
110 } \
111 }
112 #else
113 #define SimulateIOErrorBenign(X)
114 #define SimulateIOError(A)
115 #define SimulateDiskfullError(A)
116 #endif
117
118 /*
119 ** When testing, keep a count of the number of open files.
120 */
121 #ifdef SQLITE_TEST
122 int sqlite3_open_file_count = 0;
123 #define OpenCounter(X) sqlite3_open_file_count+=(X)
124 #else
125 #define OpenCounter(X)
126 #endif
127
128 #endif /* !defined(_OS_COMMON_H_) */
OLDNEW
« no previous file with comments | « third_party/sqlite/src/os.c ('k') | third_party/sqlite/src/os_os2.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698