2001-02-17 13:19:19 +01:00
|
|
|
|
/******************************************************
|
|
|
|
|
The interface to the operating system file io
|
|
|
|
|
|
|
|
|
|
(c) 1995 Innobase Oy
|
|
|
|
|
|
|
|
|
|
Created 10/21/1995 Heikki Tuuri
|
|
|
|
|
*******************************************************/
|
|
|
|
|
|
|
|
|
|
#ifndef os0file_h
|
|
|
|
|
#define os0file_h
|
|
|
|
|
|
|
|
|
|
#include "univ.i"
|
|
|
|
|
|
2003-10-07 16:28:59 +02:00
|
|
|
|
#ifndef __WIN__
|
|
|
|
|
#include <dirent.h>
|
|
|
|
|
#include <sys/stat.h>
|
|
|
|
|
#endif
|
2002-03-21 17:03:09 +01:00
|
|
|
|
|
|
|
|
|
extern ibool os_do_not_call_flush_at_each_write;
|
|
|
|
|
extern ibool os_has_said_disk_full;
|
2002-06-22 19:41:14 +02:00
|
|
|
|
extern ibool os_aio_print_debug;
|
2002-03-21 17:03:09 +01:00
|
|
|
|
|
2004-03-11 09:38:37 +01:00
|
|
|
|
extern ulint os_file_n_pending_preads;
|
|
|
|
|
extern ulint os_file_n_pending_pwrites;
|
|
|
|
|
|
2001-02-17 13:19:19 +01:00
|
|
|
|
#ifdef __WIN__
|
|
|
|
|
|
2001-05-20 19:32:37 +02:00
|
|
|
|
/* We define always WIN_ASYNC_IO, and check at run-time whether
|
|
|
|
|
the OS actually supports it: Win 95 does not, NT does. */
|
2001-02-17 13:19:19 +01:00
|
|
|
|
#define WIN_ASYNC_IO
|
|
|
|
|
|
|
|
|
|
#define UNIV_NON_BUFFERED_IO
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef __WIN__
|
ut0ut.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
mem0pool.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0file.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0shm.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0sync.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0thread.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
page0page.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
que0que.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0ins.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0mysql.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0sel.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0upd.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0vers.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
srv0srv.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
srv0start.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
sync0arr.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
sync0rw.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
sync0sync.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
trx0rec.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
trx0trx.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
srv0srv.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes
sync0rw.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes
sync0sync.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes
ut0dbg.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes
lock0lock.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
log0log.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
log0recv.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
ibuf0ibuf.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
buf0buf.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes
buf0buf.ic Fixes for 64-bit Linux, bug fixes, compiler warning fixes
hash0hash.ic Fixes for 64-bit Linux, bug fixes, compiler warning fixes
mach0data.ic Fixes for 64-bit Linux, bug fixes, compiler warning fixes
mem0mem.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes
mem0pool.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes
mtr0mtr.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0file.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0sync.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0sync.ic Fixes for 64-bit Linux, bug fixes, compiler warning fixes
os0thread.h Fixes for 64-bit Linux, bug fixes, compiler warning fixes
univ.i Fixes for 64-bit Linux, bug fixes, compiler warning fixes
row0mysql.ic Fixes for 64-bit Linux, bug fixes, compiler warning fixes
com0shm.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
data0data.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
data0type.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
dict0crea.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
dict0dict.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
fil0fil.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
fsp0fsp.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
fut0lst.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
btr0sea.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
buf0buf.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
buf0flu.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
btr0btr.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
btr0cur.c Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/btr/btr0btr.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/btr/btr0cur.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/btr/btr0sea.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/buf/buf0buf.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/buf/buf0flu.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/com/com0shm.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/data/data0data.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/data/data0type.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/dict/dict0crea.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/dict/dict0dict.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/fil/fil0fil.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/fsp/fsp0fsp.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/fut/fut0lst.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/ibuf/ibuf0ibuf.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/buf0buf.h:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/buf0buf.ic:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/hash0hash.ic:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/mach0data.ic:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/mem0mem.h:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/mem0pool.h:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/mtr0mtr.h:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/os0file.h:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/os0sync.h:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/os0sync.ic:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/os0thread.h:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/row0mysql.ic:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/univ.i:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/srv0srv.h:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/sync0rw.h:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/sync0sync.h:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/include/ut0dbg.h:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/lock/lock0lock.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/log/log0log.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/log/log0recv.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/mem/mem0pool.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/os/os0file.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/os/os0shm.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/os/os0sync.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/os/os0thread.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/page/page0page.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/que/que0que.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/row/row0ins.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/row/row0mysql.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/row/row0sel.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/row/row0upd.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/row/row0vers.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/srv/srv0srv.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/srv/srv0start.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/sync/sync0arr.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/sync/sync0rw.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/sync/sync0sync.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/trx/trx0rec.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/trx/trx0trx.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
innobase/ut/ut0ut.c:
Fixes for 64-bit Linux, bug fixes, compiler warning fixes
2001-03-02 16:33:11 +01:00
|
|
|
|
#define os_file_t HANDLE
|
2001-02-17 13:19:19 +01:00
|
|
|
|
#else
|
|
|
|
|
typedef int os_file_t;
|
|
|
|
|
#endif
|
|
|
|
|
|
2002-06-22 19:41:14 +02:00
|
|
|
|
extern ulint os_innodb_umask;
|
|
|
|
|
|
2001-02-17 13:19:19 +01:00
|
|
|
|
/* If this flag is TRUE, then we will use the native aio of the
|
|
|
|
|
OS (provided we compiled Innobase with it in), otherwise we will
|
|
|
|
|
use simulated aio we build below with threads */
|
|
|
|
|
|
|
|
|
|
extern ibool os_aio_use_native_aio;
|
|
|
|
|
|
|
|
|
|
#define OS_FILE_SECTOR_SIZE 512
|
|
|
|
|
|
|
|
|
|
/* The next value should be smaller or equal to the smallest sector size used
|
|
|
|
|
on any disk. A log block is required to be a portion of disk which is written
|
|
|
|
|
so that if the start and the end of a block get written to disk, then the
|
|
|
|
|
whole block gets written. This should be true even in most cases of a crash:
|
|
|
|
|
if this fails for a log block, then it is equivalent to a media failure in the
|
|
|
|
|
log. */
|
|
|
|
|
|
|
|
|
|
#define OS_FILE_LOG_BLOCK_SIZE 512
|
|
|
|
|
|
|
|
|
|
/* Options for file_create */
|
|
|
|
|
#define OS_FILE_OPEN 51
|
|
|
|
|
#define OS_FILE_CREATE 52
|
|
|
|
|
#define OS_FILE_OVERWRITE 53
|
2003-10-07 16:28:59 +02:00
|
|
|
|
#define OS_FILE_OPEN_RAW 54
|
2004-03-16 19:55:49 +01:00
|
|
|
|
#define OS_FILE_CREATE_PATH 55
|
2001-02-17 13:19:19 +01:00
|
|
|
|
|
2002-03-21 17:03:09 +01:00
|
|
|
|
#define OS_FILE_READ_ONLY 333
|
|
|
|
|
#define OS_FILE_READ_WRITE 444
|
2003-11-03 18:11:09 +01:00
|
|
|
|
#define OS_FILE_READ_ALLOW_DELETE 555 /* for ibbackup */
|
2002-03-21 17:03:09 +01:00
|
|
|
|
|
2001-02-17 13:19:19 +01:00
|
|
|
|
/* Options for file_create */
|
|
|
|
|
#define OS_FILE_AIO 61
|
|
|
|
|
#define OS_FILE_NORMAL 62
|
|
|
|
|
|
srv0srv.h Support raw disk partitions as data files
srv0start.c Support raw disk partitions as data files
srv0srv.c Support raw disk partitions as data files
row0purge.c < 4 GB rows, doublewrite, hang fixes
row0row.c < 4 GB rows, doublewrite, hang fixes
row0sel.c < 4 GB rows, doublewrite, hang fixes
row0uins.c < 4 GB rows, doublewrite, hang fixes
row0umod.c < 4 GB rows, doublewrite, hang fixes
row0undo.c < 4 GB rows, doublewrite, hang fixes
row0upd.c < 4 GB rows, doublewrite, hang fixes
srv0srv.c < 4 GB rows, doublewrite, hang fixes
srv0start.c < 4 GB rows, doublewrite, hang fixes
sync0rw.c < 4 GB rows, doublewrite, hang fixes
sync0sync.c < 4 GB rows, doublewrite, hang fixes
trx0purge.c < 4 GB rows, doublewrite, hang fixes
trx0rec.c < 4 GB rows, doublewrite, hang fixes
trx0sys.c < 4 GB rows, doublewrite, hang fixes
btr0btr.c < 4 GB rows, doublewrite, hang fixes
btr0cur.c < 4 GB rows, doublewrite, hang fixes
buf0buf.c < 4 GB rows, doublewrite, hang fixes
buf0flu.c < 4 GB rows, doublewrite, hang fixes
buf0rea.c < 4 GB rows, doublewrite, hang fixes
data0data.c < 4 GB rows, doublewrite, hang fixes
fil0fil.c < 4 GB rows, doublewrite, hang fixes
fsp0fsp.c < 4 GB rows, doublewrite, hang fixes
ibuf0ibuf.c < 4 GB rows, doublewrite, hang fixes
lock0lock.c < 4 GB rows, doublewrite, hang fixes
log0log.c < 4 GB rows, doublewrite, hang fixes
log0recv.c < 4 GB rows, doublewrite, hang fixes
os0file.c < 4 GB rows, doublewrite, hang fixes
page0cur.c < 4 GB rows, doublewrite, hang fixes
pars0pars.c < 4 GB rows, doublewrite, hang fixes
rem0cmp.c < 4 GB rows, doublewrite, hang fixes
rem0rec.c < 4 GB rows, doublewrite, hang fixes
row0ins.c < 4 GB rows, doublewrite, hang fixes
row0mysql.c < 4 GB rows, doublewrite, hang fixes
univ.i < 4 GB rows, doublewrite, hang fixes
data0data.ic < 4 GB rows, doublewrite, hang fixes
mach0data.ic < 4 GB rows, doublewrite, hang fixes
rem0rec.ic < 4 GB rows, doublewrite, hang fixes
row0upd.ic < 4 GB rows, doublewrite, hang fixes
trx0rec.ic < 4 GB rows, doublewrite, hang fixes
rem0cmp.h < 4 GB rows, doublewrite, hang fixes
rem0rec.h < 4 GB rows, doublewrite, hang fixes
row0ins.h < 4 GB rows, doublewrite, hang fixes
row0mysql.h < 4 GB rows, doublewrite, hang fixes
row0row.h < 4 GB rows, doublewrite, hang fixes
row0upd.h < 4 GB rows, doublewrite, hang fixes
srv0srv.h < 4 GB rows, doublewrite, hang fixes
sync0sync.h < 4 GB rows, doublewrite, hang fixes
trx0rec.h < 4 GB rows, doublewrite, hang fixes
trx0sys.h < 4 GB rows, doublewrite, hang fixes
trx0types.h < 4 GB rows, doublewrite, hang fixes
trx0undo.h < 4 GB rows, doublewrite, hang fixes
ut0dbg.h < 4 GB rows, doublewrite, hang fixes
ut0ut.h < 4 GB rows, doublewrite, hang fixes
btr0btr.h < 4 GB rows, doublewrite, hang fixes
btr0cur.h < 4 GB rows, doublewrite, hang fixes
buf0buf.h < 4 GB rows, doublewrite, hang fixes
buf0flu.h < 4 GB rows, doublewrite, hang fixes
data0data.h < 4 GB rows, doublewrite, hang fixes
dict0mem.h < 4 GB rows, doublewrite, hang fixes
fil0fil.h < 4 GB rows, doublewrite, hang fixes
fsp0fsp.h < 4 GB rows, doublewrite, hang fixes
os0file.h < 4 GB rows, doublewrite, hang fixes
innobase/include/btr0btr.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/btr0cur.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/buf0buf.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/buf0flu.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/data0data.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/dict0mem.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/fil0fil.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/fsp0fsp.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/os0file.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0cmp.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0rec.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0ins.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0mysql.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0row.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0upd.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/sync0sync.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0rec.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0sys.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0types.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0undo.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/ut0dbg.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/ut0ut.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/data0data.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/mach0data.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0rec.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0upd.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0rec.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/univ.i:
< 4 GB rows, doublewrite, hang fixes
innobase/btr/btr0btr.c:
< 4 GB rows, doublewrite, hang fixes
innobase/btr/btr0cur.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0buf.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0flu.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0rea.c:
< 4 GB rows, doublewrite, hang fixes
innobase/data/data0data.c:
< 4 GB rows, doublewrite, hang fixes
innobase/fil/fil0fil.c:
< 4 GB rows, doublewrite, hang fixes
innobase/fsp/fsp0fsp.c:
< 4 GB rows, doublewrite, hang fixes
innobase/ibuf/ibuf0ibuf.c:
< 4 GB rows, doublewrite, hang fixes
innobase/lock/lock0lock.c:
< 4 GB rows, doublewrite, hang fixes
innobase/log/log0log.c:
< 4 GB rows, doublewrite, hang fixes
innobase/log/log0recv.c:
< 4 GB rows, doublewrite, hang fixes
innobase/os/os0file.c:
< 4 GB rows, doublewrite, hang fixes
innobase/page/page0cur.c:
< 4 GB rows, doublewrite, hang fixes
innobase/pars/pars0pars.c:
< 4 GB rows, doublewrite, hang fixes
innobase/rem/rem0cmp.c:
< 4 GB rows, doublewrite, hang fixes
innobase/rem/rem0rec.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0ins.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0mysql.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0purge.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0row.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0sel.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0uins.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0umod.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0undo.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0upd.c:
< 4 GB rows, doublewrite, hang fixes
innobase/sync/sync0rw.c:
< 4 GB rows, doublewrite, hang fixes
innobase/sync/sync0sync.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0purge.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0rec.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0sys.c:
< 4 GB rows, doublewrite, hang fixes
innobase/srv/srv0srv.c:
Support raw disk partitions as data files
innobase/srv/srv0start.c:
Support raw disk partitions as data files
innobase/include/srv0srv.h:
Support raw disk partitions as data files
2001-08-04 18:36:14 +02:00
|
|
|
|
/* Types for file create */
|
|
|
|
|
#define OS_DATA_FILE 100
|
|
|
|
|
#define OS_LOG_FILE 101
|
|
|
|
|
|
2001-02-17 13:19:19 +01:00
|
|
|
|
/* Error codes from os_file_get_last_error */
|
|
|
|
|
#define OS_FILE_NOT_FOUND 71
|
|
|
|
|
#define OS_FILE_DISK_FULL 72
|
|
|
|
|
#define OS_FILE_ALREADY_EXISTS 73
|
|
|
|
|
#define OS_FILE_AIO_RESOURCES_RESERVED 74 /* wait for OS aio resources
|
|
|
|
|
to become available again */
|
|
|
|
|
#define OS_FILE_ERROR_NOT_SPECIFIED 75
|
|
|
|
|
|
|
|
|
|
/* Types for aio operations */
|
|
|
|
|
#define OS_FILE_READ 10
|
|
|
|
|
#define OS_FILE_WRITE 11
|
|
|
|
|
|
|
|
|
|
#define OS_FILE_LOG 256 /* This can be ORed to type */
|
|
|
|
|
|
|
|
|
|
#define OS_AIO_N_PENDING_IOS_PER_THREAD 32 /* Win NT does not allow more
|
|
|
|
|
than 64 */
|
|
|
|
|
|
|
|
|
|
/* Modes for aio operations */
|
|
|
|
|
#define OS_AIO_NORMAL 21 /* Normal asynchronous i/o not for ibuf
|
|
|
|
|
pages or ibuf bitmap pages */
|
|
|
|
|
#define OS_AIO_IBUF 22 /* Asynchronous i/o for ibuf pages or ibuf
|
|
|
|
|
bitmap pages */
|
|
|
|
|
#define OS_AIO_LOG 23 /* Asynchronous i/o for the log */
|
|
|
|
|
#define OS_AIO_SYNC 24 /* Asynchronous i/o where the calling thread
|
|
|
|
|
will itself wait for the i/o to complete,
|
|
|
|
|
doing also the job of the i/o-handler thread;
|
|
|
|
|
can be used for any pages, ibuf or non-ibuf.
|
|
|
|
|
This is used to save CPU time, as we can do
|
|
|
|
|
with fewer thread switches. Plain synchronous
|
|
|
|
|
i/o is not as good, because it must serialize
|
|
|
|
|
the file seek and read or write, causing a
|
|
|
|
|
bottleneck for parallelism. */
|
|
|
|
|
|
|
|
|
|
#define OS_AIO_SIMULATED_WAKE_LATER 512 /* This can be ORed to mode
|
|
|
|
|
in the call of os_aio(...),
|
|
|
|
|
if the caller wants to post several i/o
|
|
|
|
|
requests in a batch, and only after that
|
|
|
|
|
wake the i/o-handler thread; this has
|
|
|
|
|
effect only in simulated aio */
|
2001-05-20 19:24:02 +02:00
|
|
|
|
#define OS_WIN31 1
|
|
|
|
|
#define OS_WIN95 2
|
|
|
|
|
#define OS_WINNT 3
|
Many files:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
mysqld.cc:
Change MySQL default isolation level to REPEATABLE READ; note that InnoDB has always had that default, and BDB and MyISAM always run at SERIALIZABLE level anyway
sql/mysqld.cc:
Change MySQL default isolation level to REPEATABLE READ; note that InnoDB has always had that default, and BDB and MyISAM always run at SERIALIZABLE level anyway
sql/ha_innodb.cc:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
sql/ha_innodb.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/buf0buf.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/dict0dict.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/fil0fil.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/lock0lock.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/os0file.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/os0proc.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/os0thread.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/page0cur.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/page0page.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/read0read.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/rem0rec.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/srv0srv.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/sync0rw.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/sync0sync.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/trx0purge.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/trx0trx.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/rem0rec.ic:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/btr/btr0btr.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/btr/btr0cur.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/btr/btr0pcur.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/buf/buf0buf.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/buf/buf0flu.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/dict/dict0dict.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/fil/fil0fil.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/fsp/fsp0fsp.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/ibuf/ibuf0ibuf.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/lock/lock0lock.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/mem/mem0dbg.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/os/os0file.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/os/os0proc.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/page/page0cur.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/page/page0page.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/pars/lexyy.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/pars/pars0grm.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/read/read0read.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0ins.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0mysql.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0purge.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0sel.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0uins.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0undo.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0upd.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/srv/srv0srv.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/srv/srv0start.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/sync/sync0rw.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/sync/sync0sync.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/trx/trx0purge.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/trx/trx0trx.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
2002-10-29 22:16:46 +01:00
|
|
|
|
#define OS_WIN2000 4
|
2001-05-20 19:24:02 +02:00
|
|
|
|
|
2001-10-30 16:38:44 +01:00
|
|
|
|
extern ulint os_n_file_reads;
|
|
|
|
|
extern ulint os_n_file_writes;
|
|
|
|
|
extern ulint os_n_fsyncs;
|
|
|
|
|
|
2003-10-07 16:28:59 +02:00
|
|
|
|
/* File types for directory entry data type */
|
|
|
|
|
|
|
|
|
|
enum os_file_type_enum{
|
|
|
|
|
OS_FILE_TYPE_UNKNOWN = 0,
|
|
|
|
|
OS_FILE_TYPE_FILE, /* regular file */
|
|
|
|
|
OS_FILE_TYPE_DIR, /* directory */
|
|
|
|
|
OS_FILE_TYPE_LINK /* symbolic link */
|
|
|
|
|
};
|
|
|
|
|
typedef enum os_file_type_enum os_file_type_t;
|
|
|
|
|
|
|
|
|
|
/* Maximum path string length in bytes when referring to tables with in the
|
|
|
|
|
'./databasename/tablename.ibd' path format; we can allocate at least 2 buffers
|
|
|
|
|
of this size from the thread stack; that is why this should not be made much
|
|
|
|
|
bigger than 4000 bytes */
|
|
|
|
|
#define OS_FILE_MAX_PATH 4000
|
|
|
|
|
|
|
|
|
|
/* Struct used in fetching information of a file in a directory */
|
|
|
|
|
typedef struct os_file_stat_struct os_file_stat_t;
|
|
|
|
|
struct os_file_stat_struct{
|
|
|
|
|
char name[OS_FILE_MAX_PATH]; /* path to a file */
|
|
|
|
|
os_file_type_t type; /* file type */
|
|
|
|
|
ib_longlong size; /* file size */
|
|
|
|
|
};
|
|
|
|
|
|
2003-10-09 07:54:15 +02:00
|
|
|
|
#ifdef __WIN__
|
2003-10-07 16:28:59 +02:00
|
|
|
|
typedef HANDLE os_file_dir_t; /* directory stream */
|
|
|
|
|
#else
|
|
|
|
|
typedef DIR* os_file_dir_t; /* directory stream */
|
|
|
|
|
#endif
|
|
|
|
|
|
2001-05-20 19:24:02 +02:00
|
|
|
|
/***************************************************************************
|
|
|
|
|
Gets the operating system version. Currently works only on Windows. */
|
|
|
|
|
|
|
|
|
|
ulint
|
|
|
|
|
os_get_os_version(void);
|
|
|
|
|
/*===================*/
|
Many files:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
mysqld.cc:
Change MySQL default isolation level to REPEATABLE READ; note that InnoDB has always had that default, and BDB and MyISAM always run at SERIALIZABLE level anyway
sql/mysqld.cc:
Change MySQL default isolation level to REPEATABLE READ; note that InnoDB has always had that default, and BDB and MyISAM always run at SERIALIZABLE level anyway
sql/ha_innodb.cc:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
sql/ha_innodb.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/buf0buf.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/dict0dict.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/fil0fil.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/lock0lock.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/os0file.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/os0proc.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/os0thread.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/page0cur.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/page0page.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/read0read.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/rem0rec.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/srv0srv.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/sync0rw.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/sync0sync.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/trx0purge.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/trx0trx.h:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/include/rem0rec.ic:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/btr/btr0btr.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/btr/btr0cur.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/btr/btr0pcur.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/buf/buf0buf.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/buf/buf0flu.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/dict/dict0dict.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/fil/fil0fil.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/fsp/fsp0fsp.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/ibuf/ibuf0ibuf.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/lock/lock0lock.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/mem/mem0dbg.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/os/os0file.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/os/os0proc.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/page/page0cur.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/page/page0page.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/pars/lexyy.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/pars/pars0grm.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/read/read0read.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0ins.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0mysql.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0purge.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0sel.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0uins.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0undo.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/row/row0upd.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/srv/srv0srv.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/srv/srv0start.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/sync/sync0rw.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/sync/sync0sync.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/trx/trx0purge.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
innobase/trx/trx0trx.c:
Merge InnoDB-4.0.5: new isolation levels READ COMMITTED and READ UNCOMMITTED now supported, selective deadlock resolution
2002-10-29 22:16:46 +01:00
|
|
|
|
/* out: OS_WIN95, OS_WIN31, OS_WINNT, or OS_WIN2000 */
|
2001-02-17 13:19:19 +01:00
|
|
|
|
/********************************************************************
|
2002-03-21 17:03:09 +01:00
|
|
|
|
Creates the seek mutexes used in positioned reads and writes. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
os_io_init_simple(void);
|
|
|
|
|
/*===================*/
|
2003-10-07 16:28:59 +02:00
|
|
|
|
/***************************************************************************
|
2004-08-10 13:17:32 +02:00
|
|
|
|
Creates a temporary file. */
|
2004-05-28 10:15:59 +02:00
|
|
|
|
|
|
|
|
|
FILE*
|
|
|
|
|
os_file_create_tmpfile(void);
|
|
|
|
|
/*========================*/
|
2004-08-18 19:57:55 +02:00
|
|
|
|
/* out: temporary file handle (never NULL) */
|
2004-06-01 23:09:14 +02:00
|
|
|
|
/***************************************************************************
|
2003-10-07 16:28:59 +02:00
|
|
|
|
The os_file_opendir() function opens a directory stream corresponding to the
|
|
|
|
|
directory named by the dirname argument. The directory stream is positioned
|
|
|
|
|
at the first entry. In both Unix and Windows we automatically skip the '.'
|
|
|
|
|
and '..' items at the start of the directory listing. */
|
|
|
|
|
|
|
|
|
|
os_file_dir_t
|
|
|
|
|
os_file_opendir(
|
|
|
|
|
/*============*/
|
2004-05-17 13:40:31 +02:00
|
|
|
|
/* out: directory stream, NULL if
|
|
|
|
|
error */
|
|
|
|
|
const char* dirname, /* in: directory name; it must not
|
|
|
|
|
contain a trailing '\' or '/' */
|
|
|
|
|
ibool error_is_fatal);/* in: TRUE if we should treat an
|
|
|
|
|
error as a fatal error; if we try to
|
|
|
|
|
open symlinks then we do not wish a
|
|
|
|
|
fatal error if it happens not to be
|
|
|
|
|
a directory */
|
2003-10-07 16:28:59 +02:00
|
|
|
|
/***************************************************************************
|
|
|
|
|
Closes a directory stream. */
|
|
|
|
|
|
|
|
|
|
int
|
|
|
|
|
os_file_closedir(
|
|
|
|
|
/*=============*/
|
|
|
|
|
/* out: 0 if success, -1 if failure */
|
|
|
|
|
os_file_dir_t dir); /* in: directory stream */
|
|
|
|
|
/***************************************************************************
|
|
|
|
|
This function returns information of the next file in the directory. We jump
|
|
|
|
|
over the '.' and '..' entries in the directory. */
|
|
|
|
|
|
|
|
|
|
int
|
|
|
|
|
os_file_readdir_next_file(
|
|
|
|
|
/*======================*/
|
|
|
|
|
/* out: 0 if ok, -1 if error, 1 if at the end
|
|
|
|
|
of the directory */
|
2004-05-17 13:40:31 +02:00
|
|
|
|
const char* dirname,/* in: directory name or path */
|
2003-10-07 16:28:59 +02:00
|
|
|
|
os_file_dir_t dir, /* in: directory stream */
|
|
|
|
|
os_file_stat_t* info); /* in/out: buffer where the info is returned */
|
2003-11-03 18:11:09 +01:00
|
|
|
|
/*********************************************************************
|
|
|
|
|
This function attempts to create a directory named pathname. The new directory
|
|
|
|
|
gets default permissions. On Unix, the permissions are (0770 & ~umask). If the
|
|
|
|
|
directory exists already, nothing is done and the call succeeds, unless the
|
|
|
|
|
fail_if_exists arguments is true. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_create_directory(
|
|
|
|
|
/*=====================*/
|
2004-05-17 13:40:31 +02:00
|
|
|
|
/* out: TRUE if call succeeds,
|
|
|
|
|
FALSE on error */
|
|
|
|
|
const char* pathname, /* in: directory name as
|
|
|
|
|
null-terminated string */
|
|
|
|
|
ibool fail_if_exists);/* in: if TRUE, pre-existing directory
|
|
|
|
|
is treated as an error. */
|
2002-03-21 17:03:09 +01:00
|
|
|
|
/********************************************************************
|
|
|
|
|
A simple function to open or create a file. */
|
|
|
|
|
|
|
|
|
|
os_file_t
|
|
|
|
|
os_file_create_simple(
|
|
|
|
|
/*==================*/
|
2004-05-17 13:40:31 +02:00
|
|
|
|
/* out, own: handle to the file, not defined
|
|
|
|
|
if error, error number can be retrieved with
|
|
|
|
|
os_file_get_last_error */
|
|
|
|
|
const char* name, /* in: name of the file or path as a
|
|
|
|
|
null-terminated string */
|
|
|
|
|
ulint create_mode,/* in: OS_FILE_OPEN if an existing file is
|
|
|
|
|
opened (if does not exist, error), or
|
|
|
|
|
OS_FILE_CREATE if a new file is created
|
|
|
|
|
(if exists, error), or
|
|
|
|
|
OS_FILE_CREATE_PATH if new file
|
|
|
|
|
(if exists, error) and subdirectories along
|
|
|
|
|
its path are created (if needed)*/
|
|
|
|
|
ulint access_type,/* in: OS_FILE_READ_ONLY or
|
|
|
|
|
OS_FILE_READ_WRITE */
|
|
|
|
|
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
2002-03-21 17:03:09 +01:00
|
|
|
|
/********************************************************************
|
2003-06-15 00:04:28 +02:00
|
|
|
|
A simple function to open or create a file. */
|
|
|
|
|
|
|
|
|
|
os_file_t
|
|
|
|
|
os_file_create_simple_no_error_handling(
|
|
|
|
|
/*====================================*/
|
2004-05-17 13:40:31 +02:00
|
|
|
|
/* out, own: handle to the file, not defined
|
|
|
|
|
if error, error number can be retrieved with
|
|
|
|
|
os_file_get_last_error */
|
|
|
|
|
const char* name, /* in: name of the file or path as a
|
|
|
|
|
null-terminated string */
|
|
|
|
|
ulint create_mode,/* in: OS_FILE_OPEN if an existing file
|
|
|
|
|
is opened (if does not exist, error), or
|
|
|
|
|
OS_FILE_CREATE if a new file is created
|
|
|
|
|
(if exists, error) */
|
|
|
|
|
ulint access_type,/* in: OS_FILE_READ_ONLY,
|
|
|
|
|
OS_FILE_READ_WRITE, or
|
|
|
|
|
OS_FILE_READ_ALLOW_DELETE; the last option is
|
|
|
|
|
used by a backup program reading the file */
|
|
|
|
|
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
2003-06-15 00:04:28 +02:00
|
|
|
|
/********************************************************************
|
2001-02-17 13:19:19 +01:00
|
|
|
|
Opens an existing file or creates a new. */
|
|
|
|
|
|
|
|
|
|
os_file_t
|
|
|
|
|
os_file_create(
|
|
|
|
|
/*===========*/
|
2004-05-17 13:40:31 +02:00
|
|
|
|
/* out, own: handle to the file, not defined
|
|
|
|
|
if error, error number can be retrieved with
|
|
|
|
|
os_file_get_last_error */
|
|
|
|
|
const char* name, /* in: name of the file or path as a
|
|
|
|
|
null-terminated string */
|
|
|
|
|
ulint create_mode,/* in: OS_FILE_OPEN if an existing file
|
|
|
|
|
is opened (if does not exist, error), or
|
|
|
|
|
OS_FILE_CREATE if a new file is created
|
|
|
|
|
(if exists, error),
|
|
|
|
|
OS_FILE_OVERWRITE if a new file is created
|
|
|
|
|
or an old overwritten;
|
|
|
|
|
OS_FILE_OPEN_RAW, if a raw device or disk
|
|
|
|
|
partition should be opened */
|
|
|
|
|
ulint purpose,/* in: OS_FILE_AIO, if asynchronous,
|
|
|
|
|
non-buffered i/o is desired,
|
|
|
|
|
OS_FILE_NORMAL, if any normal file;
|
|
|
|
|
NOTE that it also depends on type, os_aio_..
|
|
|
|
|
and srv_.. variables whether we really use
|
|
|
|
|
async i/o or unbuffered i/o: look in the
|
|
|
|
|
function source code for the exact rules */
|
|
|
|
|
ulint type, /* in: OS_DATA_FILE or OS_LOG_FILE */
|
|
|
|
|
ibool* success);/* out: TRUE if succeed, FALSE if error */
|
2001-02-17 13:19:19 +01:00
|
|
|
|
/***************************************************************************
|
2003-10-07 16:28:59 +02:00
|
|
|
|
Deletes a file. The file has to be closed before calling this. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_delete(
|
|
|
|
|
/*===========*/
|
2004-05-17 13:40:31 +02:00
|
|
|
|
/* out: TRUE if success */
|
|
|
|
|
const char* name); /* in: file path as a null-terminated string */
|
2003-11-25 19:39:06 +01:00
|
|
|
|
|
|
|
|
|
/***************************************************************************
|
|
|
|
|
Deletes a file if it exists. The file has to be closed before calling this. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_delete_if_exists(
|
|
|
|
|
/*=====================*/
|
2004-05-17 13:40:31 +02:00
|
|
|
|
/* out: TRUE if success */
|
|
|
|
|
const char* name); /* in: file path as a null-terminated string */
|
2003-10-07 16:28:59 +02:00
|
|
|
|
/***************************************************************************
|
|
|
|
|
Renames a file (can also move it to another directory). It is safest that the
|
|
|
|
|
file is closed before calling this function. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_rename(
|
|
|
|
|
/*===========*/
|
2004-05-17 13:40:31 +02:00
|
|
|
|
/* out: TRUE if success */
|
|
|
|
|
const char* oldpath, /* in: old file path as a
|
|
|
|
|
null-terminated string */
|
|
|
|
|
const char* newpath); /* in: new file path */
|
2003-10-07 16:28:59 +02:00
|
|
|
|
/***************************************************************************
|
2001-02-17 13:19:19 +01:00
|
|
|
|
Closes a file handle. In case of error, error number can be retrieved with
|
|
|
|
|
os_file_get_last_error. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_close(
|
|
|
|
|
/*==========*/
|
|
|
|
|
/* out: TRUE if success */
|
|
|
|
|
os_file_t file); /* in, own: handle to a file */
|
|
|
|
|
/***************************************************************************
|
2003-06-15 00:04:28 +02:00
|
|
|
|
Closes a file handle. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_close_no_error_handling(
|
|
|
|
|
/*============================*/
|
|
|
|
|
/* out: TRUE if success */
|
|
|
|
|
os_file_t file); /* in, own: handle to a file */
|
|
|
|
|
/***************************************************************************
|
2001-02-17 13:19:19 +01:00
|
|
|
|
Gets a file size. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_get_size(
|
|
|
|
|
/*=============*/
|
|
|
|
|
/* out: TRUE if success */
|
|
|
|
|
os_file_t file, /* in: handle to a file */
|
|
|
|
|
ulint* size, /* out: least significant 32 bits of file
|
|
|
|
|
size */
|
|
|
|
|
ulint* size_high);/* out: most significant 32 bits of size */
|
|
|
|
|
/***************************************************************************
|
2003-10-14 13:53:16 +02:00
|
|
|
|
Gets file size as a 64-bit integer ib_longlong. */
|
|
|
|
|
|
|
|
|
|
ib_longlong
|
|
|
|
|
os_file_get_size_as_iblonglong(
|
|
|
|
|
/*===========================*/
|
|
|
|
|
/* out: size in bytes, -1 if error */
|
|
|
|
|
os_file_t file); /* in: handle to a file */
|
|
|
|
|
/***************************************************************************
|
2001-02-17 13:19:19 +01:00
|
|
|
|
Sets a file size. This function can be used to extend or truncate a file. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_set_size(
|
|
|
|
|
/*=============*/
|
|
|
|
|
/* out: TRUE if success */
|
2004-05-17 13:40:31 +02:00
|
|
|
|
const char* name, /* in: name of the file or path as a
|
2001-02-17 13:19:19 +01:00
|
|
|
|
null-terminated string */
|
|
|
|
|
os_file_t file, /* in: handle to a file */
|
|
|
|
|
ulint size, /* in: least significant 32 bits of file
|
|
|
|
|
size */
|
|
|
|
|
ulint size_high);/* in: most significant 32 bits of size */
|
|
|
|
|
/***************************************************************************
|
2004-05-05 14:54:28 +02:00
|
|
|
|
Truncates a file at its current position. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_set_eof(
|
|
|
|
|
/*============*/
|
|
|
|
|
/* out: TRUE if success */
|
|
|
|
|
FILE* file); /* in: file to be truncated */
|
|
|
|
|
/***************************************************************************
|
2001-02-17 13:19:19 +01:00
|
|
|
|
Flushes the write buffers of a given file to the disk. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_flush(
|
|
|
|
|
/*==========*/
|
|
|
|
|
/* out: TRUE if success */
|
|
|
|
|
os_file_t file); /* in, own: handle to a file */
|
|
|
|
|
/***************************************************************************
|
|
|
|
|
Retrieves the last error number if an error occurs in a file io function.
|
|
|
|
|
The number should be retrieved before any other OS calls (because they may
|
|
|
|
|
overwrite the error number). If the number is not known to this program,
|
|
|
|
|
the OS error number + 100 is returned. */
|
|
|
|
|
|
|
|
|
|
ulint
|
2003-10-07 16:28:59 +02:00
|
|
|
|
os_file_get_last_error(
|
|
|
|
|
/*===================*/
|
|
|
|
|
/* out: error number, or OS error
|
|
|
|
|
number + 100 */
|
|
|
|
|
ibool report_all_errors); /* in: TRUE if we want an error message
|
|
|
|
|
printed of all errors */
|
2001-02-17 13:19:19 +01:00
|
|
|
|
/***********************************************************************
|
|
|
|
|
Requests a synchronous read operation. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_read(
|
|
|
|
|
/*=========*/
|
|
|
|
|
/* out: TRUE if request was
|
|
|
|
|
successful, FALSE if fail */
|
|
|
|
|
os_file_t file, /* in: handle to a file */
|
|
|
|
|
void* buf, /* in: buffer where to read */
|
|
|
|
|
ulint offset, /* in: least significant 32 bits of file
|
|
|
|
|
offset where to read */
|
|
|
|
|
ulint offset_high,/* in: most significant 32 bits of
|
|
|
|
|
offset */
|
|
|
|
|
ulint n); /* in: number of bytes to read */
|
|
|
|
|
/***********************************************************************
|
2003-11-25 19:39:06 +01:00
|
|
|
|
Requests a synchronous positioned read operation. This function does not do
|
|
|
|
|
any error handling. In case of error it returns FALSE. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_read_no_error_handling(
|
|
|
|
|
/*===========================*/
|
|
|
|
|
/* out: TRUE if request was
|
|
|
|
|
successful, FALSE if fail */
|
|
|
|
|
os_file_t file, /* in: handle to a file */
|
|
|
|
|
void* buf, /* in: buffer where to read */
|
|
|
|
|
ulint offset, /* in: least significant 32 bits of file
|
|
|
|
|
offset where to read */
|
|
|
|
|
ulint offset_high,/* in: most significant 32 bits of
|
|
|
|
|
offset */
|
|
|
|
|
ulint n); /* in: number of bytes to read */
|
|
|
|
|
|
|
|
|
|
/***********************************************************************
|
2001-02-17 13:19:19 +01:00
|
|
|
|
Requests a synchronous write operation. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_write(
|
|
|
|
|
/*==========*/
|
|
|
|
|
/* out: TRUE if request was
|
|
|
|
|
successful, FALSE if fail */
|
2004-05-17 13:40:31 +02:00
|
|
|
|
const char* name, /* in: name of the file or path as a
|
2001-02-17 13:19:19 +01:00
|
|
|
|
null-terminated string */
|
|
|
|
|
os_file_t file, /* in: handle to a file */
|
2004-05-17 13:40:31 +02:00
|
|
|
|
const void* buf, /* in: buffer from which to write */
|
2001-02-17 13:19:19 +01:00
|
|
|
|
ulint offset, /* in: least significant 32 bits of file
|
|
|
|
|
offset where to write */
|
|
|
|
|
ulint offset_high,/* in: most significant 32 bits of
|
|
|
|
|
offset */
|
|
|
|
|
ulint n); /* in: number of bytes to write */
|
2004-03-16 19:55:49 +01:00
|
|
|
|
/***********************************************************************
|
|
|
|
|
Check the existence and type of the given file. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_status(
|
|
|
|
|
/*===========*/
|
|
|
|
|
/* out: TRUE if call succeeded */
|
2004-05-17 13:40:31 +02:00
|
|
|
|
const char* path, /* in: pathname of the file */
|
|
|
|
|
ibool* exists, /* out: TRUE if file exists */
|
2004-03-16 19:55:49 +01:00
|
|
|
|
os_file_type_t* type); /* out: type of the file (if it exists) */
|
|
|
|
|
/********************************************************************
|
|
|
|
|
The function os_file_dirname returns a directory component of a
|
|
|
|
|
null-terminated pathname string. In the usual case, dirname returns
|
|
|
|
|
the string up to, but not including, the final '/', and basename
|
|
|
|
|
is the component following the final '/'. Trailing '/' charac<EFBFBD>
|
|
|
|
|
ters are not counted as part of the pathname.
|
|
|
|
|
|
|
|
|
|
If path does not contain a slash, dirname returns the string ".".
|
|
|
|
|
|
|
|
|
|
Concatenating the string returned by dirname, a "/", and the basename
|
|
|
|
|
yields a complete pathname.
|
|
|
|
|
|
|
|
|
|
The return value is a copy of the directory component of the pathname.
|
|
|
|
|
The copy is allocated from heap. It is the caller responsibility
|
|
|
|
|
to free it after it is no longer needed.
|
|
|
|
|
|
|
|
|
|
The following list of examples (taken from SUSv2) shows the strings
|
|
|
|
|
returned by dirname and basename for different paths:
|
|
|
|
|
|
|
|
|
|
path dirname basename
|
|
|
|
|
"/usr/lib" "/usr" "lib"
|
|
|
|
|
"/usr/" "/" "usr"
|
|
|
|
|
"usr" "." "usr"
|
|
|
|
|
"/" "/" "/"
|
|
|
|
|
"." "." "."
|
|
|
|
|
".." "." ".."
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
char*
|
|
|
|
|
os_file_dirname(
|
|
|
|
|
/*============*/
|
|
|
|
|
/* out, own: directory component of the
|
|
|
|
|
pathname */
|
2004-05-17 13:40:31 +02:00
|
|
|
|
const char* path); /* in: pathname */
|
2004-03-16 19:55:49 +01:00
|
|
|
|
/********************************************************************
|
|
|
|
|
Creates all missing subdirectories along the given path. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_file_create_subdirs_if_needed(
|
|
|
|
|
/*=============================*/
|
|
|
|
|
/* out: TRUE if call succeeded
|
|
|
|
|
FALSE otherwise */
|
2004-05-17 13:40:31 +02:00
|
|
|
|
const char* path); /* in: path name */
|
2001-02-17 13:19:19 +01:00
|
|
|
|
/****************************************************************************
|
|
|
|
|
Initializes the asynchronous io system. Creates separate aio array for
|
|
|
|
|
non-ibuf read and write, a third aio array for the ibuf i/o, with just one
|
|
|
|
|
segment, two aio arrays for log reads and writes with one segment, and a
|
|
|
|
|
synchronous aio array of the specified size. The combined number of segments
|
|
|
|
|
in the three first aio arrays is the parameter n_segments given to the
|
|
|
|
|
function. The caller must create an i/o handler thread for each segment in
|
|
|
|
|
the four first arrays, but not for the sync aio array. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
os_aio_init(
|
|
|
|
|
/*========*/
|
|
|
|
|
ulint n, /* in: maximum number of pending aio operations
|
|
|
|
|
allowed; n must be divisible by n_segments */
|
|
|
|
|
ulint n_segments, /* in: combined number of segments in the four
|
|
|
|
|
first aio arrays; must be >= 4 */
|
|
|
|
|
ulint n_slots_sync); /* in: number of slots in the sync aio array */
|
|
|
|
|
/***********************************************************************
|
|
|
|
|
Requests an asynchronous i/o operation. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_aio(
|
|
|
|
|
/*===*/
|
|
|
|
|
/* out: TRUE if request was queued
|
|
|
|
|
successfully, FALSE if fail */
|
|
|
|
|
ulint type, /* in: OS_FILE_READ or OS_FILE_WRITE */
|
|
|
|
|
ulint mode, /* in: OS_AIO_NORMAL, ..., possibly ORed
|
|
|
|
|
to OS_AIO_SIMULATED_WAKE_LATER: the
|
|
|
|
|
last flag advises this function not to wake
|
|
|
|
|
i/o-handler threads, but the caller will
|
|
|
|
|
do the waking explicitly later, in this
|
|
|
|
|
way the caller can post several requests in
|
|
|
|
|
a batch; NOTE that the batch must not be
|
|
|
|
|
so big that it exhausts the slots in aio
|
|
|
|
|
arrays! NOTE that a simulated batch
|
|
|
|
|
may introduce hidden chances of deadlocks,
|
|
|
|
|
because i/os are not actually handled until
|
|
|
|
|
all have been posted: use with great
|
|
|
|
|
caution! */
|
2004-05-17 13:40:31 +02:00
|
|
|
|
const char* name, /* in: name of the file or path as a
|
2001-02-17 13:19:19 +01:00
|
|
|
|
null-terminated string */
|
|
|
|
|
os_file_t file, /* in: handle to a file */
|
|
|
|
|
void* buf, /* in: buffer where to read or from which
|
|
|
|
|
to write */
|
|
|
|
|
ulint offset, /* in: least significant 32 bits of file
|
|
|
|
|
offset where to read or write */
|
|
|
|
|
ulint offset_high, /* in: most significant 32 bits of
|
|
|
|
|
offset */
|
|
|
|
|
ulint n, /* in: number of bytes to read or write */
|
|
|
|
|
void* message1,/* in: messages for the aio handler (these
|
|
|
|
|
can be used to identify a completed aio
|
|
|
|
|
operation); if mode is OS_AIO_SYNC, these
|
|
|
|
|
are ignored */
|
|
|
|
|
void* message2);
|
srv0srv.h Support raw disk partitions as data files
srv0start.c Support raw disk partitions as data files
srv0srv.c Support raw disk partitions as data files
row0purge.c < 4 GB rows, doublewrite, hang fixes
row0row.c < 4 GB rows, doublewrite, hang fixes
row0sel.c < 4 GB rows, doublewrite, hang fixes
row0uins.c < 4 GB rows, doublewrite, hang fixes
row0umod.c < 4 GB rows, doublewrite, hang fixes
row0undo.c < 4 GB rows, doublewrite, hang fixes
row0upd.c < 4 GB rows, doublewrite, hang fixes
srv0srv.c < 4 GB rows, doublewrite, hang fixes
srv0start.c < 4 GB rows, doublewrite, hang fixes
sync0rw.c < 4 GB rows, doublewrite, hang fixes
sync0sync.c < 4 GB rows, doublewrite, hang fixes
trx0purge.c < 4 GB rows, doublewrite, hang fixes
trx0rec.c < 4 GB rows, doublewrite, hang fixes
trx0sys.c < 4 GB rows, doublewrite, hang fixes
btr0btr.c < 4 GB rows, doublewrite, hang fixes
btr0cur.c < 4 GB rows, doublewrite, hang fixes
buf0buf.c < 4 GB rows, doublewrite, hang fixes
buf0flu.c < 4 GB rows, doublewrite, hang fixes
buf0rea.c < 4 GB rows, doublewrite, hang fixes
data0data.c < 4 GB rows, doublewrite, hang fixes
fil0fil.c < 4 GB rows, doublewrite, hang fixes
fsp0fsp.c < 4 GB rows, doublewrite, hang fixes
ibuf0ibuf.c < 4 GB rows, doublewrite, hang fixes
lock0lock.c < 4 GB rows, doublewrite, hang fixes
log0log.c < 4 GB rows, doublewrite, hang fixes
log0recv.c < 4 GB rows, doublewrite, hang fixes
os0file.c < 4 GB rows, doublewrite, hang fixes
page0cur.c < 4 GB rows, doublewrite, hang fixes
pars0pars.c < 4 GB rows, doublewrite, hang fixes
rem0cmp.c < 4 GB rows, doublewrite, hang fixes
rem0rec.c < 4 GB rows, doublewrite, hang fixes
row0ins.c < 4 GB rows, doublewrite, hang fixes
row0mysql.c < 4 GB rows, doublewrite, hang fixes
univ.i < 4 GB rows, doublewrite, hang fixes
data0data.ic < 4 GB rows, doublewrite, hang fixes
mach0data.ic < 4 GB rows, doublewrite, hang fixes
rem0rec.ic < 4 GB rows, doublewrite, hang fixes
row0upd.ic < 4 GB rows, doublewrite, hang fixes
trx0rec.ic < 4 GB rows, doublewrite, hang fixes
rem0cmp.h < 4 GB rows, doublewrite, hang fixes
rem0rec.h < 4 GB rows, doublewrite, hang fixes
row0ins.h < 4 GB rows, doublewrite, hang fixes
row0mysql.h < 4 GB rows, doublewrite, hang fixes
row0row.h < 4 GB rows, doublewrite, hang fixes
row0upd.h < 4 GB rows, doublewrite, hang fixes
srv0srv.h < 4 GB rows, doublewrite, hang fixes
sync0sync.h < 4 GB rows, doublewrite, hang fixes
trx0rec.h < 4 GB rows, doublewrite, hang fixes
trx0sys.h < 4 GB rows, doublewrite, hang fixes
trx0types.h < 4 GB rows, doublewrite, hang fixes
trx0undo.h < 4 GB rows, doublewrite, hang fixes
ut0dbg.h < 4 GB rows, doublewrite, hang fixes
ut0ut.h < 4 GB rows, doublewrite, hang fixes
btr0btr.h < 4 GB rows, doublewrite, hang fixes
btr0cur.h < 4 GB rows, doublewrite, hang fixes
buf0buf.h < 4 GB rows, doublewrite, hang fixes
buf0flu.h < 4 GB rows, doublewrite, hang fixes
data0data.h < 4 GB rows, doublewrite, hang fixes
dict0mem.h < 4 GB rows, doublewrite, hang fixes
fil0fil.h < 4 GB rows, doublewrite, hang fixes
fsp0fsp.h < 4 GB rows, doublewrite, hang fixes
os0file.h < 4 GB rows, doublewrite, hang fixes
innobase/include/btr0btr.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/btr0cur.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/buf0buf.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/buf0flu.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/data0data.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/dict0mem.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/fil0fil.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/fsp0fsp.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/os0file.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0cmp.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0rec.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0ins.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0mysql.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0row.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0upd.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/sync0sync.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0rec.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0sys.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0types.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0undo.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/ut0dbg.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/ut0ut.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/data0data.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/mach0data.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0rec.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0upd.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0rec.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/univ.i:
< 4 GB rows, doublewrite, hang fixes
innobase/btr/btr0btr.c:
< 4 GB rows, doublewrite, hang fixes
innobase/btr/btr0cur.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0buf.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0flu.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0rea.c:
< 4 GB rows, doublewrite, hang fixes
innobase/data/data0data.c:
< 4 GB rows, doublewrite, hang fixes
innobase/fil/fil0fil.c:
< 4 GB rows, doublewrite, hang fixes
innobase/fsp/fsp0fsp.c:
< 4 GB rows, doublewrite, hang fixes
innobase/ibuf/ibuf0ibuf.c:
< 4 GB rows, doublewrite, hang fixes
innobase/lock/lock0lock.c:
< 4 GB rows, doublewrite, hang fixes
innobase/log/log0log.c:
< 4 GB rows, doublewrite, hang fixes
innobase/log/log0recv.c:
< 4 GB rows, doublewrite, hang fixes
innobase/os/os0file.c:
< 4 GB rows, doublewrite, hang fixes
innobase/page/page0cur.c:
< 4 GB rows, doublewrite, hang fixes
innobase/pars/pars0pars.c:
< 4 GB rows, doublewrite, hang fixes
innobase/rem/rem0cmp.c:
< 4 GB rows, doublewrite, hang fixes
innobase/rem/rem0rec.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0ins.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0mysql.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0purge.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0row.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0sel.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0uins.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0umod.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0undo.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0upd.c:
< 4 GB rows, doublewrite, hang fixes
innobase/sync/sync0rw.c:
< 4 GB rows, doublewrite, hang fixes
innobase/sync/sync0sync.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0purge.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0rec.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0sys.c:
< 4 GB rows, doublewrite, hang fixes
innobase/srv/srv0srv.c:
Support raw disk partitions as data files
innobase/srv/srv0start.c:
Support raw disk partitions as data files
innobase/include/srv0srv.h:
Support raw disk partitions as data files
2001-08-04 18:36:14 +02:00
|
|
|
|
/****************************************************************************
|
2003-05-30 21:44:37 +02:00
|
|
|
|
Wakes up all async i/o threads so that they know to exit themselves in
|
|
|
|
|
shutdown. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
os_aio_wake_all_threads_at_shutdown(void);
|
|
|
|
|
/*=====================================*/
|
|
|
|
|
/****************************************************************************
|
srv0srv.h Support raw disk partitions as data files
srv0start.c Support raw disk partitions as data files
srv0srv.c Support raw disk partitions as data files
row0purge.c < 4 GB rows, doublewrite, hang fixes
row0row.c < 4 GB rows, doublewrite, hang fixes
row0sel.c < 4 GB rows, doublewrite, hang fixes
row0uins.c < 4 GB rows, doublewrite, hang fixes
row0umod.c < 4 GB rows, doublewrite, hang fixes
row0undo.c < 4 GB rows, doublewrite, hang fixes
row0upd.c < 4 GB rows, doublewrite, hang fixes
srv0srv.c < 4 GB rows, doublewrite, hang fixes
srv0start.c < 4 GB rows, doublewrite, hang fixes
sync0rw.c < 4 GB rows, doublewrite, hang fixes
sync0sync.c < 4 GB rows, doublewrite, hang fixes
trx0purge.c < 4 GB rows, doublewrite, hang fixes
trx0rec.c < 4 GB rows, doublewrite, hang fixes
trx0sys.c < 4 GB rows, doublewrite, hang fixes
btr0btr.c < 4 GB rows, doublewrite, hang fixes
btr0cur.c < 4 GB rows, doublewrite, hang fixes
buf0buf.c < 4 GB rows, doublewrite, hang fixes
buf0flu.c < 4 GB rows, doublewrite, hang fixes
buf0rea.c < 4 GB rows, doublewrite, hang fixes
data0data.c < 4 GB rows, doublewrite, hang fixes
fil0fil.c < 4 GB rows, doublewrite, hang fixes
fsp0fsp.c < 4 GB rows, doublewrite, hang fixes
ibuf0ibuf.c < 4 GB rows, doublewrite, hang fixes
lock0lock.c < 4 GB rows, doublewrite, hang fixes
log0log.c < 4 GB rows, doublewrite, hang fixes
log0recv.c < 4 GB rows, doublewrite, hang fixes
os0file.c < 4 GB rows, doublewrite, hang fixes
page0cur.c < 4 GB rows, doublewrite, hang fixes
pars0pars.c < 4 GB rows, doublewrite, hang fixes
rem0cmp.c < 4 GB rows, doublewrite, hang fixes
rem0rec.c < 4 GB rows, doublewrite, hang fixes
row0ins.c < 4 GB rows, doublewrite, hang fixes
row0mysql.c < 4 GB rows, doublewrite, hang fixes
univ.i < 4 GB rows, doublewrite, hang fixes
data0data.ic < 4 GB rows, doublewrite, hang fixes
mach0data.ic < 4 GB rows, doublewrite, hang fixes
rem0rec.ic < 4 GB rows, doublewrite, hang fixes
row0upd.ic < 4 GB rows, doublewrite, hang fixes
trx0rec.ic < 4 GB rows, doublewrite, hang fixes
rem0cmp.h < 4 GB rows, doublewrite, hang fixes
rem0rec.h < 4 GB rows, doublewrite, hang fixes
row0ins.h < 4 GB rows, doublewrite, hang fixes
row0mysql.h < 4 GB rows, doublewrite, hang fixes
row0row.h < 4 GB rows, doublewrite, hang fixes
row0upd.h < 4 GB rows, doublewrite, hang fixes
srv0srv.h < 4 GB rows, doublewrite, hang fixes
sync0sync.h < 4 GB rows, doublewrite, hang fixes
trx0rec.h < 4 GB rows, doublewrite, hang fixes
trx0sys.h < 4 GB rows, doublewrite, hang fixes
trx0types.h < 4 GB rows, doublewrite, hang fixes
trx0undo.h < 4 GB rows, doublewrite, hang fixes
ut0dbg.h < 4 GB rows, doublewrite, hang fixes
ut0ut.h < 4 GB rows, doublewrite, hang fixes
btr0btr.h < 4 GB rows, doublewrite, hang fixes
btr0cur.h < 4 GB rows, doublewrite, hang fixes
buf0buf.h < 4 GB rows, doublewrite, hang fixes
buf0flu.h < 4 GB rows, doublewrite, hang fixes
data0data.h < 4 GB rows, doublewrite, hang fixes
dict0mem.h < 4 GB rows, doublewrite, hang fixes
fil0fil.h < 4 GB rows, doublewrite, hang fixes
fsp0fsp.h < 4 GB rows, doublewrite, hang fixes
os0file.h < 4 GB rows, doublewrite, hang fixes
innobase/include/btr0btr.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/btr0cur.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/buf0buf.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/buf0flu.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/data0data.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/dict0mem.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/fil0fil.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/fsp0fsp.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/os0file.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0cmp.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0rec.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0ins.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0mysql.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0row.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0upd.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/sync0sync.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0rec.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0sys.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0types.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0undo.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/ut0dbg.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/ut0ut.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/data0data.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/mach0data.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0rec.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0upd.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0rec.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/univ.i:
< 4 GB rows, doublewrite, hang fixes
innobase/btr/btr0btr.c:
< 4 GB rows, doublewrite, hang fixes
innobase/btr/btr0cur.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0buf.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0flu.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0rea.c:
< 4 GB rows, doublewrite, hang fixes
innobase/data/data0data.c:
< 4 GB rows, doublewrite, hang fixes
innobase/fil/fil0fil.c:
< 4 GB rows, doublewrite, hang fixes
innobase/fsp/fsp0fsp.c:
< 4 GB rows, doublewrite, hang fixes
innobase/ibuf/ibuf0ibuf.c:
< 4 GB rows, doublewrite, hang fixes
innobase/lock/lock0lock.c:
< 4 GB rows, doublewrite, hang fixes
innobase/log/log0log.c:
< 4 GB rows, doublewrite, hang fixes
innobase/log/log0recv.c:
< 4 GB rows, doublewrite, hang fixes
innobase/os/os0file.c:
< 4 GB rows, doublewrite, hang fixes
innobase/page/page0cur.c:
< 4 GB rows, doublewrite, hang fixes
innobase/pars/pars0pars.c:
< 4 GB rows, doublewrite, hang fixes
innobase/rem/rem0cmp.c:
< 4 GB rows, doublewrite, hang fixes
innobase/rem/rem0rec.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0ins.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0mysql.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0purge.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0row.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0sel.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0uins.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0umod.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0undo.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0upd.c:
< 4 GB rows, doublewrite, hang fixes
innobase/sync/sync0rw.c:
< 4 GB rows, doublewrite, hang fixes
innobase/sync/sync0sync.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0purge.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0rec.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0sys.c:
< 4 GB rows, doublewrite, hang fixes
innobase/srv/srv0srv.c:
Support raw disk partitions as data files
innobase/srv/srv0start.c:
Support raw disk partitions as data files
innobase/include/srv0srv.h:
Support raw disk partitions as data files
2001-08-04 18:36:14 +02:00
|
|
|
|
Waits until there are no pending writes in os_aio_write_array. There can
|
|
|
|
|
be other, synchronous, pending writes. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
os_aio_wait_until_no_pending_writes(void);
|
|
|
|
|
/*=====================================*/
|
2001-02-17 13:19:19 +01:00
|
|
|
|
/**************************************************************************
|
|
|
|
|
Wakes up simulated aio i/o-handler threads if they have something to do. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
os_aio_simulated_wake_handler_threads(void);
|
|
|
|
|
/*=======================================*/
|
2002-06-22 19:41:14 +02:00
|
|
|
|
/**************************************************************************
|
|
|
|
|
This function can be called if one wants to post a batch of reads and
|
|
|
|
|
prefers an i/o-handler thread to handle them all at once later. You must
|
|
|
|
|
call os_aio_simulated_wake_handler_threads later to ensure the threads
|
|
|
|
|
are not left sleeping! */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
os_aio_simulated_put_read_threads_to_sleep(void);
|
|
|
|
|
/*============================================*/
|
2001-02-17 13:19:19 +01:00
|
|
|
|
|
|
|
|
|
#ifdef WIN_ASYNC_IO
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
This function is only used in Windows asynchronous i/o.
|
|
|
|
|
Waits for an aio operation to complete. This function is used to wait the
|
|
|
|
|
for completed requests. The aio array of pending requests is divided
|
|
|
|
|
into segments. The thread specifies which segment or slot it wants to wait
|
|
|
|
|
for. NOTE: this function will also take care of freeing the aio slot,
|
|
|
|
|
therefore no other thread is allowed to do the freeing! */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_aio_windows_handle(
|
|
|
|
|
/*==================*/
|
|
|
|
|
/* out: TRUE if the aio operation succeeded */
|
|
|
|
|
ulint segment, /* in: the number of the segment in the aio
|
|
|
|
|
arrays to wait for; segment 0 is the ibuf
|
|
|
|
|
i/o thread, segment 1 the log i/o thread,
|
|
|
|
|
then follow the non-ibuf read threads, and as
|
|
|
|
|
the last are the non-ibuf write threads; if
|
|
|
|
|
this is ULINT_UNDEFINED, then it means that
|
|
|
|
|
sync aio is used, and this parameter is
|
|
|
|
|
ignored */
|
|
|
|
|
ulint pos, /* this parameter is used only in sync aio:
|
|
|
|
|
wait for the aio slot at this position */
|
|
|
|
|
void** message1, /* out: the messages passed with the aio
|
|
|
|
|
request; note that also in the case where
|
|
|
|
|
the aio operation failed, these output
|
|
|
|
|
parameters are valid and can be used to
|
|
|
|
|
restart the operation, for example */
|
srv0srv.h Support raw disk partitions as data files
srv0start.c Support raw disk partitions as data files
srv0srv.c Support raw disk partitions as data files
row0purge.c < 4 GB rows, doublewrite, hang fixes
row0row.c < 4 GB rows, doublewrite, hang fixes
row0sel.c < 4 GB rows, doublewrite, hang fixes
row0uins.c < 4 GB rows, doublewrite, hang fixes
row0umod.c < 4 GB rows, doublewrite, hang fixes
row0undo.c < 4 GB rows, doublewrite, hang fixes
row0upd.c < 4 GB rows, doublewrite, hang fixes
srv0srv.c < 4 GB rows, doublewrite, hang fixes
srv0start.c < 4 GB rows, doublewrite, hang fixes
sync0rw.c < 4 GB rows, doublewrite, hang fixes
sync0sync.c < 4 GB rows, doublewrite, hang fixes
trx0purge.c < 4 GB rows, doublewrite, hang fixes
trx0rec.c < 4 GB rows, doublewrite, hang fixes
trx0sys.c < 4 GB rows, doublewrite, hang fixes
btr0btr.c < 4 GB rows, doublewrite, hang fixes
btr0cur.c < 4 GB rows, doublewrite, hang fixes
buf0buf.c < 4 GB rows, doublewrite, hang fixes
buf0flu.c < 4 GB rows, doublewrite, hang fixes
buf0rea.c < 4 GB rows, doublewrite, hang fixes
data0data.c < 4 GB rows, doublewrite, hang fixes
fil0fil.c < 4 GB rows, doublewrite, hang fixes
fsp0fsp.c < 4 GB rows, doublewrite, hang fixes
ibuf0ibuf.c < 4 GB rows, doublewrite, hang fixes
lock0lock.c < 4 GB rows, doublewrite, hang fixes
log0log.c < 4 GB rows, doublewrite, hang fixes
log0recv.c < 4 GB rows, doublewrite, hang fixes
os0file.c < 4 GB rows, doublewrite, hang fixes
page0cur.c < 4 GB rows, doublewrite, hang fixes
pars0pars.c < 4 GB rows, doublewrite, hang fixes
rem0cmp.c < 4 GB rows, doublewrite, hang fixes
rem0rec.c < 4 GB rows, doublewrite, hang fixes
row0ins.c < 4 GB rows, doublewrite, hang fixes
row0mysql.c < 4 GB rows, doublewrite, hang fixes
univ.i < 4 GB rows, doublewrite, hang fixes
data0data.ic < 4 GB rows, doublewrite, hang fixes
mach0data.ic < 4 GB rows, doublewrite, hang fixes
rem0rec.ic < 4 GB rows, doublewrite, hang fixes
row0upd.ic < 4 GB rows, doublewrite, hang fixes
trx0rec.ic < 4 GB rows, doublewrite, hang fixes
rem0cmp.h < 4 GB rows, doublewrite, hang fixes
rem0rec.h < 4 GB rows, doublewrite, hang fixes
row0ins.h < 4 GB rows, doublewrite, hang fixes
row0mysql.h < 4 GB rows, doublewrite, hang fixes
row0row.h < 4 GB rows, doublewrite, hang fixes
row0upd.h < 4 GB rows, doublewrite, hang fixes
srv0srv.h < 4 GB rows, doublewrite, hang fixes
sync0sync.h < 4 GB rows, doublewrite, hang fixes
trx0rec.h < 4 GB rows, doublewrite, hang fixes
trx0sys.h < 4 GB rows, doublewrite, hang fixes
trx0types.h < 4 GB rows, doublewrite, hang fixes
trx0undo.h < 4 GB rows, doublewrite, hang fixes
ut0dbg.h < 4 GB rows, doublewrite, hang fixes
ut0ut.h < 4 GB rows, doublewrite, hang fixes
btr0btr.h < 4 GB rows, doublewrite, hang fixes
btr0cur.h < 4 GB rows, doublewrite, hang fixes
buf0buf.h < 4 GB rows, doublewrite, hang fixes
buf0flu.h < 4 GB rows, doublewrite, hang fixes
data0data.h < 4 GB rows, doublewrite, hang fixes
dict0mem.h < 4 GB rows, doublewrite, hang fixes
fil0fil.h < 4 GB rows, doublewrite, hang fixes
fsp0fsp.h < 4 GB rows, doublewrite, hang fixes
os0file.h < 4 GB rows, doublewrite, hang fixes
innobase/include/btr0btr.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/btr0cur.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/buf0buf.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/buf0flu.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/data0data.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/dict0mem.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/fil0fil.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/fsp0fsp.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/os0file.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0cmp.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0rec.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0ins.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0mysql.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0row.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0upd.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/sync0sync.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0rec.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0sys.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0types.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0undo.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/ut0dbg.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/ut0ut.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/data0data.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/mach0data.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0rec.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0upd.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0rec.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/univ.i:
< 4 GB rows, doublewrite, hang fixes
innobase/btr/btr0btr.c:
< 4 GB rows, doublewrite, hang fixes
innobase/btr/btr0cur.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0buf.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0flu.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0rea.c:
< 4 GB rows, doublewrite, hang fixes
innobase/data/data0data.c:
< 4 GB rows, doublewrite, hang fixes
innobase/fil/fil0fil.c:
< 4 GB rows, doublewrite, hang fixes
innobase/fsp/fsp0fsp.c:
< 4 GB rows, doublewrite, hang fixes
innobase/ibuf/ibuf0ibuf.c:
< 4 GB rows, doublewrite, hang fixes
innobase/lock/lock0lock.c:
< 4 GB rows, doublewrite, hang fixes
innobase/log/log0log.c:
< 4 GB rows, doublewrite, hang fixes
innobase/log/log0recv.c:
< 4 GB rows, doublewrite, hang fixes
innobase/os/os0file.c:
< 4 GB rows, doublewrite, hang fixes
innobase/page/page0cur.c:
< 4 GB rows, doublewrite, hang fixes
innobase/pars/pars0pars.c:
< 4 GB rows, doublewrite, hang fixes
innobase/rem/rem0cmp.c:
< 4 GB rows, doublewrite, hang fixes
innobase/rem/rem0rec.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0ins.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0mysql.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0purge.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0row.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0sel.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0uins.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0umod.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0undo.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0upd.c:
< 4 GB rows, doublewrite, hang fixes
innobase/sync/sync0rw.c:
< 4 GB rows, doublewrite, hang fixes
innobase/sync/sync0sync.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0purge.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0rec.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0sys.c:
< 4 GB rows, doublewrite, hang fixes
innobase/srv/srv0srv.c:
Support raw disk partitions as data files
innobase/srv/srv0start.c:
Support raw disk partitions as data files
innobase/include/srv0srv.h:
Support raw disk partitions as data files
2001-08-04 18:36:14 +02:00
|
|
|
|
void** message2,
|
|
|
|
|
ulint* type); /* out: OS_FILE_WRITE or ..._READ */
|
2001-02-17 13:19:19 +01:00
|
|
|
|
#endif
|
2002-04-18 09:40:32 +02:00
|
|
|
|
|
|
|
|
|
/* Currently we do not use Posix async i/o */
|
2001-02-17 13:19:19 +01:00
|
|
|
|
#ifdef POSIX_ASYNC_IO
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
This function is only used in Posix asynchronous i/o. Waits for an aio
|
|
|
|
|
operation to complete. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_aio_posix_handle(
|
|
|
|
|
/*================*/
|
|
|
|
|
/* out: TRUE if the aio operation succeeded */
|
|
|
|
|
ulint array_no, /* in: array number 0 - 3 */
|
|
|
|
|
void** message1, /* out: the messages passed with the aio
|
|
|
|
|
request; note that also in the case where
|
|
|
|
|
the aio operation failed, these output
|
|
|
|
|
parameters are valid and can be used to
|
|
|
|
|
restart the operation, for example */
|
|
|
|
|
void** message2);
|
|
|
|
|
#endif
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
Does simulated aio. This function should be called by an i/o-handler
|
|
|
|
|
thread. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_aio_simulated_handle(
|
|
|
|
|
/*====================*/
|
|
|
|
|
/* out: TRUE if the aio operation succeeded */
|
|
|
|
|
ulint segment, /* in: the number of the segment in the aio
|
|
|
|
|
arrays to wait for; segment 0 is the ibuf
|
|
|
|
|
i/o thread, segment 1 the log i/o thread,
|
|
|
|
|
then follow the non-ibuf read threads, and as
|
|
|
|
|
the last are the non-ibuf write threads */
|
|
|
|
|
void** message1, /* out: the messages passed with the aio
|
|
|
|
|
request; note that also in the case where
|
|
|
|
|
the aio operation failed, these output
|
|
|
|
|
parameters are valid and can be used to
|
|
|
|
|
restart the operation, for example */
|
srv0srv.h Support raw disk partitions as data files
srv0start.c Support raw disk partitions as data files
srv0srv.c Support raw disk partitions as data files
row0purge.c < 4 GB rows, doublewrite, hang fixes
row0row.c < 4 GB rows, doublewrite, hang fixes
row0sel.c < 4 GB rows, doublewrite, hang fixes
row0uins.c < 4 GB rows, doublewrite, hang fixes
row0umod.c < 4 GB rows, doublewrite, hang fixes
row0undo.c < 4 GB rows, doublewrite, hang fixes
row0upd.c < 4 GB rows, doublewrite, hang fixes
srv0srv.c < 4 GB rows, doublewrite, hang fixes
srv0start.c < 4 GB rows, doublewrite, hang fixes
sync0rw.c < 4 GB rows, doublewrite, hang fixes
sync0sync.c < 4 GB rows, doublewrite, hang fixes
trx0purge.c < 4 GB rows, doublewrite, hang fixes
trx0rec.c < 4 GB rows, doublewrite, hang fixes
trx0sys.c < 4 GB rows, doublewrite, hang fixes
btr0btr.c < 4 GB rows, doublewrite, hang fixes
btr0cur.c < 4 GB rows, doublewrite, hang fixes
buf0buf.c < 4 GB rows, doublewrite, hang fixes
buf0flu.c < 4 GB rows, doublewrite, hang fixes
buf0rea.c < 4 GB rows, doublewrite, hang fixes
data0data.c < 4 GB rows, doublewrite, hang fixes
fil0fil.c < 4 GB rows, doublewrite, hang fixes
fsp0fsp.c < 4 GB rows, doublewrite, hang fixes
ibuf0ibuf.c < 4 GB rows, doublewrite, hang fixes
lock0lock.c < 4 GB rows, doublewrite, hang fixes
log0log.c < 4 GB rows, doublewrite, hang fixes
log0recv.c < 4 GB rows, doublewrite, hang fixes
os0file.c < 4 GB rows, doublewrite, hang fixes
page0cur.c < 4 GB rows, doublewrite, hang fixes
pars0pars.c < 4 GB rows, doublewrite, hang fixes
rem0cmp.c < 4 GB rows, doublewrite, hang fixes
rem0rec.c < 4 GB rows, doublewrite, hang fixes
row0ins.c < 4 GB rows, doublewrite, hang fixes
row0mysql.c < 4 GB rows, doublewrite, hang fixes
univ.i < 4 GB rows, doublewrite, hang fixes
data0data.ic < 4 GB rows, doublewrite, hang fixes
mach0data.ic < 4 GB rows, doublewrite, hang fixes
rem0rec.ic < 4 GB rows, doublewrite, hang fixes
row0upd.ic < 4 GB rows, doublewrite, hang fixes
trx0rec.ic < 4 GB rows, doublewrite, hang fixes
rem0cmp.h < 4 GB rows, doublewrite, hang fixes
rem0rec.h < 4 GB rows, doublewrite, hang fixes
row0ins.h < 4 GB rows, doublewrite, hang fixes
row0mysql.h < 4 GB rows, doublewrite, hang fixes
row0row.h < 4 GB rows, doublewrite, hang fixes
row0upd.h < 4 GB rows, doublewrite, hang fixes
srv0srv.h < 4 GB rows, doublewrite, hang fixes
sync0sync.h < 4 GB rows, doublewrite, hang fixes
trx0rec.h < 4 GB rows, doublewrite, hang fixes
trx0sys.h < 4 GB rows, doublewrite, hang fixes
trx0types.h < 4 GB rows, doublewrite, hang fixes
trx0undo.h < 4 GB rows, doublewrite, hang fixes
ut0dbg.h < 4 GB rows, doublewrite, hang fixes
ut0ut.h < 4 GB rows, doublewrite, hang fixes
btr0btr.h < 4 GB rows, doublewrite, hang fixes
btr0cur.h < 4 GB rows, doublewrite, hang fixes
buf0buf.h < 4 GB rows, doublewrite, hang fixes
buf0flu.h < 4 GB rows, doublewrite, hang fixes
data0data.h < 4 GB rows, doublewrite, hang fixes
dict0mem.h < 4 GB rows, doublewrite, hang fixes
fil0fil.h < 4 GB rows, doublewrite, hang fixes
fsp0fsp.h < 4 GB rows, doublewrite, hang fixes
os0file.h < 4 GB rows, doublewrite, hang fixes
innobase/include/btr0btr.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/btr0cur.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/buf0buf.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/buf0flu.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/data0data.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/dict0mem.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/fil0fil.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/fsp0fsp.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/os0file.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0cmp.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0rec.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0ins.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0mysql.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0row.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0upd.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/sync0sync.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0rec.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0sys.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0types.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0undo.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/ut0dbg.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/ut0ut.h:
< 4 GB rows, doublewrite, hang fixes
innobase/include/data0data.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/mach0data.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/rem0rec.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/row0upd.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/trx0rec.ic:
< 4 GB rows, doublewrite, hang fixes
innobase/include/univ.i:
< 4 GB rows, doublewrite, hang fixes
innobase/btr/btr0btr.c:
< 4 GB rows, doublewrite, hang fixes
innobase/btr/btr0cur.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0buf.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0flu.c:
< 4 GB rows, doublewrite, hang fixes
innobase/buf/buf0rea.c:
< 4 GB rows, doublewrite, hang fixes
innobase/data/data0data.c:
< 4 GB rows, doublewrite, hang fixes
innobase/fil/fil0fil.c:
< 4 GB rows, doublewrite, hang fixes
innobase/fsp/fsp0fsp.c:
< 4 GB rows, doublewrite, hang fixes
innobase/ibuf/ibuf0ibuf.c:
< 4 GB rows, doublewrite, hang fixes
innobase/lock/lock0lock.c:
< 4 GB rows, doublewrite, hang fixes
innobase/log/log0log.c:
< 4 GB rows, doublewrite, hang fixes
innobase/log/log0recv.c:
< 4 GB rows, doublewrite, hang fixes
innobase/os/os0file.c:
< 4 GB rows, doublewrite, hang fixes
innobase/page/page0cur.c:
< 4 GB rows, doublewrite, hang fixes
innobase/pars/pars0pars.c:
< 4 GB rows, doublewrite, hang fixes
innobase/rem/rem0cmp.c:
< 4 GB rows, doublewrite, hang fixes
innobase/rem/rem0rec.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0ins.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0mysql.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0purge.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0row.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0sel.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0uins.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0umod.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0undo.c:
< 4 GB rows, doublewrite, hang fixes
innobase/row/row0upd.c:
< 4 GB rows, doublewrite, hang fixes
innobase/sync/sync0rw.c:
< 4 GB rows, doublewrite, hang fixes
innobase/sync/sync0sync.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0purge.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0rec.c:
< 4 GB rows, doublewrite, hang fixes
innobase/trx/trx0sys.c:
< 4 GB rows, doublewrite, hang fixes
innobase/srv/srv0srv.c:
Support raw disk partitions as data files
innobase/srv/srv0start.c:
Support raw disk partitions as data files
innobase/include/srv0srv.h:
Support raw disk partitions as data files
2001-08-04 18:36:14 +02:00
|
|
|
|
void** message2,
|
|
|
|
|
ulint* type); /* out: OS_FILE_WRITE or ..._READ */
|
2001-02-17 13:19:19 +01:00
|
|
|
|
/**************************************************************************
|
|
|
|
|
Validates the consistency of the aio system. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_aio_validate(void);
|
|
|
|
|
/*=================*/
|
|
|
|
|
/* out: TRUE if ok */
|
|
|
|
|
/**************************************************************************
|
|
|
|
|
Prints info of the aio arrays. */
|
|
|
|
|
|
|
|
|
|
void
|
2002-07-08 18:34:49 +02:00
|
|
|
|
os_aio_print(
|
|
|
|
|
/*=========*/
|
InnoDB: send diagnostic output to stderr or files
instead of stdout or fixed-size memory buffers
innobase/btr/btr0btr.c:
Output to stderr; quote table and index names
innobase/btr/btr0cur.c:
Output to stderr; quote table and index names
innobase/btr/btr0sea.c:
Output to stderr
innobase/buf/buf0buf.c:
Output to stderr; quote table and index names
innobase/buf/buf0flu.c:
Output to stderr
innobase/buf/buf0lru.c:
Output to stderr
innobase/buf/buf0rea.c:
Output to stderr
innobase/data/data0data.c:
Remove dtuple_validate() unless #ifdef UNIV_DEBUG
Remove unnecessary sprintf() calls
Output to stderr
innobase/data/data0type.c:
Output to stderr
innobase/dict/dict0boot.c:
Remove dummy call to printf()
innobase/dict/dict0crea.c:
Output diagnostic information to stream, not to memory
innobase/dict/dict0dict.c:
Output diagnostics to a file, not to a memory buffer
innobase/dict/dict0load.c:
Output to stderr; quote table and index names
innobase/eval/eval0eval.c:
Output to stderr
innobase/fil/fil0fil.c:
Output to stderr
innobase/fsp/fsp0fsp.c:
Output to stderr
Avoid sprintf()
innobase/fut/fut0lst.c:
Output to stderr
innobase/ha/ha0ha.c:
Output to stream, not to memory buffer
innobase/ibuf/ibuf0ibuf.c:
Output to stderr
Avoid sprintf()
innobase/include/buf0buf.h:
Output to stream, not to memory buffer
innobase/include/buf0buf.ic:
Use %p for displaying pointers
innobase/include/data0data.h:
Remove dtuple_sprintf()
innobase/include/dict0dict.h:
Output to stream, not to memory buffer
innobase/include/ha0ha.h:
Output to stream, not to memory buffer
innobase/include/ibuf0ibuf.h:
Output to stream, not to memory buffer
innobase/include/lock0lock.h:
Output to stream, not to memory buffer
innobase/include/log0log.h:
Output to stream, not to memory buffer
innobase/include/mtr0log.ic:
Output to stderr
Display pointers with %p
innobase/include/os0file.h:
Output to stream, not to memory buffer
innobase/include/rem0rec.h:
Remove rec_sprintf()
innobase/include/rem0rec.ic:
Output to stderr
innobase/include/row0sel.ic:
Output to stderr
innobase/include/row0upd.ic:
Quote table and index names
innobase/include/srv0srv.h:
Remove srv_sprintf_innodb_monitor()
innobase/include/sync0arr.h:
Output to stream, not to memory buffer
innobase/include/sync0sync.h:
Output to stream, not to memory buffer
innobase/include/trx0sys.h:
Output to stderr
innobase/include/trx0trx.h:
Output to stream, not to memory buffer
innobase/include/ut0ut.h:
Remove ut_sprintf_buf()
Add ut_print_name(), ut_print_namel() and ut_copy_file()
innobase/lock/lock0lock.c:
Output to stream, not to memory buffer
innobase/log/log0log.c:
Output to stderr
innobase/log/log0recv.c:
Output to stderr
innobase/mem/mem0dbg.c:
Output to stderr
innobase/mtr/mtr0log.c:
Display pointers with %p
innobase/mtr/mtr0mtr.c:
Output to stderr
innobase/os/os0file.c:
Output to stream, not to memory buffer
innobase/os/os0proc.c:
Output to stderr
innobase/os/os0thread.c:
Output to stderr
innobase/page/page0cur.c:
Output to stderr
innobase/page/page0page.c:
Avoid sprintf()
Output to stderr instead of stdout
innobase/pars/pars0opt.c:
Output to stderr instead of stdout
innobase/rem/rem0rec.c:
Remove rec_sprintf()
Output to stderr instead of stdout
innobase/row/row0ins.c:
Output diagnostics to stream instead of memory buffer
innobase/row/row0mysql.c:
Output to stderr instead of stdout
Quote table and index names
innobase/row/row0purge.c:
Output to stderr instead of stdout
innobase/row/row0row.c:
Quote table and index names
innobase/row/row0sel.c:
Output to stderr instead of stdout
Quote table and index names
innobase/row/row0umod.c:
Avoid sprintf()
Quote table and index names
innobase/row/row0undo.c:
Output to stderr instead of stdout
innobase/row/row0upd.c:
Avoid sprintf()
innobase/srv/srv0srv.c:
Output to stderr instead of stdout
innobase/srv/srv0start.c:
Handle srv_monitor_file
Make some global variables static
innobase/sync/sync0arr.c:
Output to stderr instead of stdout
Output to stream instead of memory buffer
innobase/sync/sync0rw.c:
Output to stderr instead of stdout
innobase/sync/sync0sync.c:
Output to stderr instead of stdout
Output to stream instead of memory buffer
innobase/trx/trx0purge.c:
Output to stderr instead of stdout
innobase/trx/trx0rec.c:
Quote index and table names
Avoid sprintf()
innobase/trx/trx0roll.c:
Quote identifier names
Output to stderr instead of stdout
innobase/trx/trx0sys.c:
Output to stderr instead of stdout
innobase/trx/trx0trx.c:
Output to stream instead of memory buffer
innobase/trx/trx0undo.c:
Output to stderr instead of stdout
innobase/ut/ut0ut.c:
Declare mysql_get_identifier_quote_char()
Remove ut_sprintf_buf()
Add ut_print_name() and ut_print_namel()
Add ut_copy_file()
sql/ha_innodb.cc:
innobase_mysql_print_thd(): output to stream, not to memory buffer
Add mysql_get_identifier_quote_char()
Remove unused function innobase_print_error()
Display pointers with %p
Buffer InnoDB output via files, not via statically allocated memory
2004-04-06 15:14:43 +02:00
|
|
|
|
FILE* file); /* in: file where to print */
|
2001-02-17 13:19:19 +01:00
|
|
|
|
/**************************************************************************
|
2002-08-06 21:59:13 +02:00
|
|
|
|
Refreshes the statistics used to print per-second averages. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
os_aio_refresh_stats(void);
|
|
|
|
|
/*======================*/
|
|
|
|
|
/**************************************************************************
|
2001-02-17 13:19:19 +01:00
|
|
|
|
Checks that all slots in the system have been freed, that is, there are
|
|
|
|
|
no pending io operations. */
|
|
|
|
|
|
|
|
|
|
ibool
|
|
|
|
|
os_aio_all_slots_free(void);
|
|
|
|
|
/*=======================*/
|
|
|
|
|
/* out: TRUE if all free */
|
|
|
|
|
#endif
|