diff options
Diffstat (limited to 'storage/xtradb/include/os0file.ic')
-rw-r--r-- | storage/xtradb/include/os0file.ic | 120 |
1 files changed, 75 insertions, 45 deletions
diff --git a/storage/xtradb/include/os0file.ic b/storage/xtradb/include/os0file.ic index 137ce59b62d..25a1397147e 100644 --- a/storage/xtradb/include/os0file.ic +++ b/storage/xtradb/include/os0file.ic @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2010, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2010, 2011, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -11,8 +11,8 @@ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with -this program; if not, write to the Free Software Foundation, Inc., -51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA *****************************************************************************/ @@ -40,13 +40,7 @@ pfs_os_file_create_simple_func( mysql_pfs_key_t key, /*!< in: Performance Schema Key */ 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 create_mode,/*!< in: create mode */ ulint access_type,/*!< in: OS_FILE_READ_ONLY or OS_FILE_READ_WRITE */ ibool* success,/*!< out: TRUE if succeed, FALSE if error */ @@ -88,10 +82,7 @@ pfs_os_file_create_simple_no_error_handling_func( mysql_pfs_key_t key, /*!< in: Performance Schema Key */ 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 create_mode, /*!< in: file create mode */ ulint access_type,/*!< in: OS_FILE_READ_ONLY, OS_FILE_READ_WRITE, or OS_FILE_READ_ALLOW_DELETE; the last option is @@ -133,14 +124,7 @@ pfs_os_file_create_func( mysql_pfs_key_t key, /*!< in: Performance Schema Key */ 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 create_mode,/*!< in: file create mode */ ulint purpose,/*!< in: OS_FILE_AIO, if asynchronous, non-buffered i/o is desired, OS_FILE_NORMAL, if any normal file; @@ -216,10 +200,7 @@ pfs_os_aio_func( 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 */ + os_offset_t offset, /*!< in: file offset where to read or write */ ulint n, /*!< in: number of bytes to read or write */ fil_node_t* message1,/*!< in: message for the aio handler (can be used to identify a completed @@ -245,7 +226,7 @@ pfs_os_aio_func( : PSI_FILE_READ, src_file, src_line); - result = os_aio_func(type, mode, name, file, buf, offset, offset_high, + result = os_aio_func(type, mode, name, file, buf, offset, n, message1, message2, space_id, trx); register_pfs_file_io_end(locker, n); @@ -265,10 +246,7 @@ pfs_os_file_read_func( /*==================*/ 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 */ + os_offset_t offset, /*!< in: file offset where to read */ ulint n, /*!< in: number of bytes to read */ trx_t* trx, const char* src_file,/*!< in: file name where func invoked */ @@ -281,7 +259,7 @@ pfs_os_file_read_func( register_pfs_file_io_begin(&state, locker, file, n, PSI_FILE_READ, src_file, src_line); - result = os_file_read_func(file, buf, offset, offset_high, n, trx); + result = os_file_read_func(file, buf, offset, n, trx); register_pfs_file_io_end(locker, n); @@ -302,10 +280,7 @@ pfs_os_file_read_no_error_handling_func( /*====================================*/ 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 */ + os_offset_t offset, /*!< in: file offset where to read */ ulint n, /*!< in: number of bytes to read */ const char* src_file,/*!< in: file name where func invoked */ ulint src_line)/*!< in: line where the func invoked */ @@ -317,8 +292,7 @@ pfs_os_file_read_no_error_handling_func( register_pfs_file_io_begin(&state, locker, file, n, PSI_FILE_READ, src_file, src_line); - result = os_file_read_no_error_handling_func(file, buf, offset, - offset_high, n); + result = os_file_read_no_error_handling_func(file, buf, offset, n); register_pfs_file_io_end(locker, n); @@ -339,10 +313,7 @@ pfs_os_file_write_func( null-terminated string */ os_file_t file, /*!< in: handle to a file */ const void* buf, /*!< in: buffer from which to write */ - ulint offset, /*!< in: least significant 32 bits of file - offset where to write */ - ulint offset_high,/*!< in: most significant 32 bits of - offset */ + os_offset_t offset, /*!< in: file offset where to write */ ulint n, /*!< in: number of bytes to write */ const char* src_file,/*!< in: file name where func invoked */ ulint src_line)/*!< in: line where the func invoked */ @@ -354,7 +325,7 @@ pfs_os_file_write_func( register_pfs_file_io_begin(&state, locker, file, n, PSI_FILE_WRITE, src_file, src_line); - result = os_file_write_func(name, file, buf, offset, offset_high, n); + result = os_file_write_func(name, file, buf, offset, n); register_pfs_file_io_end(locker, n); @@ -372,7 +343,6 @@ ibool pfs_os_file_flush_func( /*===================*/ os_file_t file, /*!< in, own: handle to a file */ - ibool metadata, const char* src_file,/*!< in: file name where func invoked */ ulint src_line)/*!< in: line where the func invoked */ { @@ -382,7 +352,7 @@ pfs_os_file_flush_func( register_pfs_file_io_begin(&state, locker, file, 0, PSI_FILE_SYNC, src_file, src_line); - result = os_file_flush_func(file, metadata); + result = os_file_flush_func(file); register_pfs_file_io_end(locker, 0); @@ -419,4 +389,64 @@ pfs_os_file_rename_func( return(result); } + +/***********************************************************************//** +NOTE! Please use the corresponding macro os_file_delete(), not directly +this function! +This is the performance schema instrumented wrapper function for +os_file_delete() +@return TRUE if success */ +UNIV_INLINE +bool +pfs_os_file_delete_func( +/*====================*/ + mysql_pfs_key_t key, /*!< in: Performance Schema Key */ + const char* name, /*!< in: file path as a null-terminated + string */ + const char* src_file, /*!< in: file name where func invoked */ + ulint src_line) /*!< in: line where the func invoked */ +{ + bool result; + struct PSI_file_locker* locker = NULL; + PSI_file_locker_state state; + + register_pfs_file_close_begin(&state, locker, key, PSI_FILE_DELETE, + name, src_file, src_line); + + result = os_file_delete_func(name); + + register_pfs_file_close_end(locker, 0); + + return(result); +} + +/***********************************************************************//** +NOTE! Please use the corresponding macro os_file_delete_if_exists(), not +directly this function! +This is the performance schema instrumented wrapper function for +os_file_delete_if_exists() +@return TRUE if success */ +UNIV_INLINE +bool +pfs_os_file_delete_if_exists_func( +/*==============================*/ + mysql_pfs_key_t key, /*!< in: Performance Schema Key */ + const char* name, /*!< in: file path as a null-terminated + string */ + const char* src_file, /*!< in: file name where func invoked */ + ulint src_line) /*!< in: line where the func invoked */ +{ + bool result; + struct PSI_file_locker* locker = NULL; + PSI_file_locker_state state; + + register_pfs_file_close_begin(&state, locker, key, PSI_FILE_DELETE, + name, src_file, src_line); + + result = os_file_delete_if_exists_func(name); + + register_pfs_file_close_end(locker, 0); + + return(result); +} #endif /* UNIV_PFS_IO */ |