annotate sqlite/os_os2.h @ 1621:fae6e0cfcc77 trunk

[svn] - Reapply r2161
author nhjm449
date Tue, 05 Sep 2006 19:57:18 -0700
parents b6b61becdf4e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1434
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
1 /*
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
2 ** 2004 May 22
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
3 **
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
4 ** The author disclaims copyright to this source code. In place of
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
5 ** a legal notice, here is a blessing:
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
6 **
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
7 ** May you do good and not evil.
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
8 ** May you find forgiveness for yourself and forgive others.
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
9 ** May you share freely, never taking more than you give.
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
10 **
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
11 ******************************************************************************
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
12 **
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
13 ** This header file defined OS-specific features for OS/2.
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
14 */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
15 #ifndef _SQLITE_OS_OS2_H_
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
16 #define _SQLITE_OS_OS2_H_
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
17
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
18 /*
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
19 ** standard include files.
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
20 */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
21 #include <sys/types.h>
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
22 #include <sys/stat.h>
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
23 #include <fcntl.h>
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
24 #include <unistd.h>
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
25
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
26 /*
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
27 ** Macros used to determine whether or not to use threads. The
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
28 ** SQLITE_UNIX_THREADS macro is defined if we are synchronizing for
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
29 ** Posix threads and SQLITE_W32_THREADS is defined if we are
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
30 ** synchronizing using Win32 threads.
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
31 */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
32 /* this mutex implementation only available with EMX */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
33 #if defined(THREADSAFE) && THREADSAFE
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
34 # include <sys/builtin.h>
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
35 # include <sys/smutex.h>
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
36 # define SQLITE_OS2_THREADS 1
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
37 #endif
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
38
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
39 /*
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
40 ** The OsFile structure is a operating-system independing representation
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
41 ** of an open file handle. It is defined differently for each architecture.
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
42 **
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
43 ** This is the definition for Unix.
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
44 **
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
45 ** OsFile.locktype takes one of the values SHARED_LOCK, RESERVED_LOCK,
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
46 ** PENDING_LOCK or EXCLUSIVE_LOCK.
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
47 */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
48 typedef struct OsFile OsFile;
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
49 struct OsFile {
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
50 int h; /* The file descriptor (LHANDLE) */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
51 int locked; /* True if this user holds the lock */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
52 int delOnClose; /* True if file is to be deleted on close */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
53 char *pathToDel; /* Name of file to delete on close */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
54 unsigned char locktype; /* The type of lock held on this fd */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
55 unsigned char isOpen; /* True if needs to be closed */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
56 unsigned char fullSync;
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
57 };
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
58
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
59 /*
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
60 ** Maximum number of characters in a temporary file name
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
61 */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
62 #define SQLITE_TEMPNAME_SIZE 200
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
63
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
64 /*
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
65 ** Minimum interval supported by sqlite3OsSleep().
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
66 */
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
67 #define SQLITE_MIN_SLEEP_MS 1
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
68
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
69 #ifndef SQLITE_DEFAULT_FILE_PERMISSIONS
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
70 # define SQLITE_DEFAULT_FILE_PERMISSIONS 0600
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
71 #endif
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
72
b6b61becdf4e [svn] - add sqlite/ directory
nenolod
parents:
diff changeset
73 #endif /* _SQLITE_OS_OS2_H_ */