squire_sqlite3_sys/bindings/default/
mutex.rs

1use core::ffi::c_int;
2
3use super::connection::sqlite3;
4
5#[repr(C)]
6pub struct sqlite3_mutex {
7    _unused: [u8; 0],
8}
9
10pub const SQLITE_MUTEX_FAST: i32 = 0;
11pub const SQLITE_MUTEX_RECURSIVE: i32 = 1;
12pub const SQLITE_MUTEX_STATIC_MAIN: i32 = 2;
13pub const SQLITE_MUTEX_STATIC_MEM: i32 = 3;
14pub const SQLITE_MUTEX_STATIC_MEM2: i32 = 4;
15pub const SQLITE_MUTEX_STATIC_OPEN: i32 = 4;
16pub const SQLITE_MUTEX_STATIC_PRNG: i32 = 5;
17pub const SQLITE_MUTEX_STATIC_LRU: i32 = 6;
18pub const SQLITE_MUTEX_STATIC_LRU2: i32 = 7;
19pub const SQLITE_MUTEX_STATIC_PMEM: i32 = 7;
20pub const SQLITE_MUTEX_STATIC_APP1: i32 = 8;
21pub const SQLITE_MUTEX_STATIC_APP2: i32 = 9;
22pub const SQLITE_MUTEX_STATIC_APP3: i32 = 10;
23pub const SQLITE_MUTEX_STATIC_VFS1: i32 = 11;
24pub const SQLITE_MUTEX_STATIC_VFS2: i32 = 12;
25pub const SQLITE_MUTEX_STATIC_VFS3: i32 = 13;
26pub const SQLITE_MUTEX_STATIC_MASTER: i32 = 2;
27
28unsafe extern "C" {
29    pub fn sqlite3_mutex_alloc(iMode: c_int) -> *mut sqlite3_mutex;
30    pub fn sqlite3_mutex_free(pMutex: *mut sqlite3_mutex);
31    pub fn sqlite3_mutex_enter(pMutex: *mut sqlite3_mutex);
32    pub fn sqlite3_mutex_try(pMutex: *mut sqlite3_mutex) -> c_int;
33    pub fn sqlite3_mutex_leave(pMutex: *mut sqlite3_mutex);
34    pub fn sqlite3_db_mutex(pDb: *mut sqlite3) -> *mut sqlite3_mutex;
35}