Go to the source code of this file.
Macros | |
#define | ut0ut_h |
#define | TEMP_INDEX_PREFIX '\377' |
#define | TEMP_INDEX_PREFIX_STR "\377" |
#define | UT_RELAX_CPU() ((void)0) /* avoid warning for an empty statement */ |
#define | UT_WAIT_FOR(cond, max_wait_us) |
#define | ut_is_2pow(n) UNIV_LIKELY(!((n) & ((n) - 1))) |
#define | ut_2pow_remainder(n, m) ((n) & ((m) - 1)) |
#define | ut_2pow_round(n, m) ((n) & ~(typeof(n))((m) - 1)) |
#define | ut_calc_align_down(n, m) ut_2pow_round(n, m) |
#define | ut_calc_align(n, m) (((n) + ((m) - 1)) & ~(typeof(n))((m) - 1)) |
#define | UT_BITS_IN_BYTES(b) (((b) + 7) / 8) |
#define | ut_snprintf snprintf |
Typedefs | |
typedef time_t | ib_time_t |
Functions | |
UNIV_INTERN ulint | ut_get_high32 (ulint a) |
UNIV_INLINE ulint | ut_min (ulint n1, ulint n2) |
UNIV_INLINE ulint | ut_max (ulint n1, ulint n2) |
UNIV_INLINE void | ut_pair_min (ulint *a, ulint *b, ulint a1, ulint b1, ulint a2, ulint b2) |
UNIV_INLINE int | ut_ulint_cmp (ulint a, ulint b) |
UNIV_INLINE int | ut_pair_cmp (ulint a1, ulint a2, ulint b1, ulint b2) |
UNIV_INLINE ulint | ut_2_log (ulint n) |
UNIV_INLINE ulint | ut_2_exp (ulint n) |
UNIV_INTERN ulint | ut_2_power_up (ulint n) __attribute__((const )) |
UNIV_INTERN ib_time_t | ut_time (void) |
UNIV_INTERN int | ut_usectime (ulint *sec, ulint *ms) |
UNIV_INTERN ullint | ut_time_us (ullint *tloc) |
UNIV_INTERN ulint | ut_time_ms (void) |
UNIV_INTERN double | ut_difftime (ib_time_t time2, ib_time_t time1) |
UNIV_INTERN void | ut_print_timestamp (FILE *file) |
UNIV_INTERN void | ut_sprintf_timestamp (char *buf) |
UNIV_INTERN ulint | ut_delay (ulint delay) |
UNIV_INTERN void | ut_print_buf (FILE *file, const void *buf, ulint len) |
UNIV_INTERN void | ut_print_filename (FILE *f, const char *name) |
UNIV_INTERN void | ut_print_name (FILE *f, struct trx_struct *trx, ibool table_id, const char *name) |
UNIV_INTERN void | ut_print_namel (FILE *f, struct trx_struct *trx, ibool table_id, const char *name, ulint namelen) |
UNIV_INTERN void | ut_copy_file (FILE *dest, FILE *src) |
UNIV_INTERN const char * | ut_strerr (enum db_err num) |
#define TEMP_INDEX_PREFIX '\377' |
Index name prefix in fast index creation
Definition at line 51 of file ut0ut.h.
Referenced by innobase_convert_name(), and lock_rec_insert_check_and_lock().
#define TEMP_INDEX_PREFIX_STR "\377" |
#define ut_2pow_remainder | ( | n, | |
m | |||
) | ((n) & ((m) - 1)) |
#define ut_2pow_round | ( | n, | |
m | |||
) | ((n) & ~(typeof(n))((m) - 1)) |
Calculates the biggest multiple of m that is not bigger than n when m is a power of two. In other words, rounds n down to m * k.
n | in: number to round down |
m | in: alignment, must be a power of two |
Definition at line 175 of file ut0ut.h.
Referenced by os_mem_alloc_large().
#define UT_BITS_IN_BYTES | ( | b | ) | (((b) + 7) / 8) |
Determine how many bytes (groups of 8 bits) are needed to store the given number of bits.
b | in: bits |
Definition at line 219 of file ut0ut.h.
Referenced by dict_index_calc_min_rec_len(), ibuf_bitmap_page_init(), rec_convert_dtuple_to_rec_comp(), rec_copy_prefix_to_buf(), rec_get_converted_size_comp_prefix(), rec_get_n_extern_new(), rec_get_offsets_reverse(), and rec_init_offsets_comp_ordinary().
#define ut_calc_align | ( | n, | |
m | |||
) | (((n) + ((m) - 1)) & ~(typeof(n))((m) - 1)) |
Calculates the smallest multiple of m that is not smaller than n when m is a power of two. In other words, rounds n up to m * k.
n | in: number to round up |
m | in: alignment, must be a power of two |
Definition at line 187 of file ut0ut.h.
Referenced by log_write_up_to().
#define ut_calc_align_down | ( | n, | |
m | |||
) | ut_2pow_round(n, m) |
Align a number down to a multiple of a power of two.
n | in: number to round down |
m | in: alignment, must be a power of two |
Definition at line 180 of file ut0ut.h.
Referenced by log_write_up_to().
#define ut_is_2pow | ( | n | ) | UNIV_LIKELY(!((n) & ((n) - 1))) |
Determines if a number is zero or a power of two.
n | in: number |
Definition at line 162 of file ut0ut.h.
Referenced by buf_flush_init_for_writing(), buf_page_get_gen(), fil_io(), fil_reset_too_high_lsns(), ha_create_func(), hash_create_mutexes_func(), ibuf_bitmap_page_init(), ibuf_insert(), mem_area_free(), os_mem_alloc_large(), and row_ext_create().
#define ut_snprintf snprintf |
A wrapper for snprintf(3), formatted output conversion into a limited buffer.
Definition at line 398 of file ut0ut.h.
Referenced by row_raw_format(), and trx_i_s_create_lock_id().
#define UT_WAIT_FOR | ( | cond, | |
max_wait_us | |||
) |
Delays execution for at most max_wait_us microseconds or returns earlier if cond becomes true.
cond | in: condition to wait for; evaluated every 2 ms |
max_wait_us | in: maximum delay to wait, in microseconds |
Definition at line 86 of file ut0ut.h.
Referenced by srv_conc_enter_innodb().
UNIV_INLINE ulint ut_2_exp | ( | ulint | n | ) |
Calculates 2 to power n.
Referenced by mem_area_alloc(), mem_area_free(), mem_pool_create(), mem_pool_print_info(), and mem_pool_validate().
UNIV_INLINE ulint ut_2_log | ( | ulint | n | ) |
Calculates fast the 2-logarithm of a number, rounded upward to an integer.
Referenced by mem_area_alloc(), mem_area_free(), and mem_pool_create().
UNIV_INTERN ulint ut_2_power_up | ( | ulint | n | ) | const |
Calculates fast the number rounded up to the nearest power of 2.
n | in: number != 0 |
UNIV_INTERN void ut_copy_file | ( | FILE * | dest, |
FILE * | src | ||
) |
Catenate files. in: input file to be appended to output
Catenate files.
dest | in: output file |
src | in: input file to be appended to output |
Definition at line 580 of file ut0ut.cc.
References ut_copy_file().
Referenced by lock_print_info_summary(), srv_printf_innodb_monitor(), and ut_copy_file().
UNIV_INTERN ulint ut_delay | ( | ulint | delay | ) |
Runs an idle loop on CPU. The argument gives the desired delay in microseconds on 100 MHz Pentium + Visual C++.
Runs an idle loop on CPU. The argument gives the desired delay in microseconds on 100 MHz Pentium + Visual C++.
delay | in: delay in microseconds on 100 MHz Pentium |
Definition at line 426 of file ut0ut.cc.
References ut_delay().
Referenced by rw_lock_x_lock_func(), and ut_delay().
Returns the difference of two times in seconds.
Returns the difference of two times in seconds.
time2 | in: time |
time1 | in: time |
Definition at line 242 of file ut0ut.cc.
References ut_difftime().
Referenced by srv_lock_timeout_thread(), srv_suspend_mysql_thread(), and ut_difftime().
UNIV_INTERN ulint ut_get_high32 | ( | ulint | a | ) |
Gets the high 32 bits in a ulint. That is makes a shift >> 32, but since there seem to be compiler bugs in both gcc and Visual C++, we do this by a special conversion.
Gets the high 32 bits in a ulint. That is makes a shift >> 32, but since there seem to be compiler bugs in both gcc and Visual C++, we do this by a special conversion.
a | in: ulint |
Definition at line 126 of file ut0ut.cc.
References ut_get_high32().
Referenced by ut_get_high32().
UNIV_INLINE ulint ut_max | ( | ulint | n1, |
ulint | n2 | ||
) |
Calculates the maximum of two ulints.
n1 | in: first number |
Referenced by mem_area_alloc(), and row_create_index_for_mysql().
UNIV_INLINE ulint ut_min | ( | ulint | n1, |
ulint | n2 | ||
) |
Calculates the minimum of two ulints.
n1 | in: first number |
Referenced by buf_read_ahead_linear(), fil_extend_space_to_desired_size(), ha_create_func(), ibuf_init_at_db_start(), os_file_set_size(), row_raw_format(), srv_master_thread(), srv_purge_thread(), ut_strlcpy(), and ut_strlcpy_rev().
UNIV_INLINE int ut_pair_cmp | ( | ulint | a1, |
ulint | a2, | ||
ulint | b1, | ||
ulint | b2 | ||
) |
Compares two pairs of ulints.
a1 | in: more significant part of first pair |
a2 | in: less significant part of first pair |
b1 | in: more significant part of second pair |
UNIV_INLINE void ut_pair_min | ( | ulint * | a, |
ulint * | b, | ||
ulint | a1, | ||
ulint | b1, | ||
ulint | a2, | ||
ulint | b2 | ||
) |
Calculates minimum of two ulint-pairs. in: less significant part of second pair
a | out: more significant part of minimum |
b | out: less significant part of minimum |
a1 | in: more significant part of first pair |
b1 | in: less significant part of first pair |
a2 | in: more significant part of second pair |
Referenced by page_cur_search_with_match().
UNIV_INTERN void ut_print_buf | ( | FILE * | file, |
const void * | buf, | ||
ulint | len | ||
) |
Prints the contents of a memory buffer in hex and ascii. in: length of the buffer
Prints the contents of a memory buffer in hex and ascii.
file | in: file where to print |
buf | in: memory buffer |
len | in: length of the buffer |
Definition at line 451 of file ut0ut.cc.
References ut_print_buf().
Referenced by btr_pcur_restore_position_func(), buf_flush_init_for_writing(), buf_flush_ready_for_replace(), buf_page_print(), ha_innobase::doInsertRecord(), mem_analyze_corruption(), os_fast_mutex_free(), page_cur_parse_insert_rec(), rec_print_comp(), rec_print_old(), row_fetch_print(), row_sel_convert_mysql_key_to_innobase(), trx_free(), trx_undo_prev_version_build(), and ut_print_buf().
UNIV_INTERN void ut_print_filename | ( | FILE * | f, |
const char * | name | ||
) |
Outputs a NUL-terminated file name, quoted with apostrophes. in: name to print
Outputs a NUL-terminated file name, quoted with apostrophes.
f | in: output stream |
name | in: name to print |
Definition at line 506 of file ut0ut.cc.
References ut_print_filename().
Referenced by dict_check_tablespaces_and_store_max_id(), dict_load_table(), dict_load_table_low(), dict_table_rename_in_cache(), fil_create_new_single_table_tablespace(), fil_delete_tablespace(), fil_load_single_table_tablespaces(), fil_node_create(), fil_open_single_table_tablespace(), fil_rename_tablespace(), fil_reset_too_high_lsns(), fil_space_create(), fil_space_for_table_exists_in_mem(), and ut_print_filename().
UNIV_INTERN void ut_print_name | ( | FILE * | f, |
trx_t * | trx, | ||
ibool | table_id, | ||
const char * | name | ||
) |
Outputs a fixed-length string, quoted as an SQL identifier. If the string contains a slash '/', the string will be output as two identifiers separated by a period (.), as in SQL database_name.identifier. in: name to print
Outputs a fixed-length string, quoted as an SQL identifier. If the string contains a slash '/', the string will be output as two identifiers separated by a period (.), as in SQL database_name.identifier.
f | in: output stream |
trx | in: transaction |
table_id | in: TRUE=print a table name, FALSE=print other identifier |
name | in: name to print |
Definition at line 535 of file ut0ut.cc.
References ut_print_name(), and ut_print_namel().
Referenced by ha_innobase::check(), dict_foreign_parse_drop_constraints(), dict_index_name_print(), dict_print_info_on_foreign_key_in_create_format(), dict_print_info_on_foreign_keys(), dict_table_remove_from_cache(), dict_table_rename_in_cache(), innobase_rename_table(), lock_table_print(), row_build_row_ref_in_tuple(), row_create_index_for_mysql(), row_create_table_for_mysql(), row_discard_tablespace_for_mysql(), row_drop_database_for_mysql(), row_drop_table_for_mysql(), row_drop_tables_for_mysql_in_background(), row_import_tablespace_for_mysql(), row_ins_check_foreign_constraint(), row_insert_for_mysql(), row_prebuilt_free(), row_rename_table_for_mysql(), row_search_for_mysql(), row_truncate_table_for_mysql(), row_update_for_mysql(), row_update_prebuilt_trx(), trx_rollback_to_savepoint_for_mysql(), trx_undo_update_rec_get_update(), and ut_print_name().
UNIV_INTERN void ut_print_namel | ( | FILE * | f, |
trx_t * | trx, | ||
ibool | table_id, | ||
const char * | name, | ||
ulint | namelen | ||
) |
Outputs a fixed-length string, quoted as an SQL identifier. If the string contains a slash '/', the string will be output as two identifiers separated by a period (.), as in SQL database_name.identifier. in: length of name
Outputs a fixed-length string, quoted as an SQL identifier. If the string contains a slash '/', the string will be output as two identifiers separated by a period (.), as in SQL database_name.identifier.
f | in: output stream |
trx | in: transaction (NULL=no quotes) |
table_id | in: TRUE=print a table name, FALSE=print other identifier |
name | in: name to print |
namelen | in: length of name |
Definition at line 553 of file ut0ut.cc.
References innobase_convert_name(), trx_struct::mysql_thd, and ut_print_namel().
Referenced by ut_print_name(), and ut_print_namel().
UNIV_INTERN void ut_print_timestamp | ( | FILE * | file | ) |
Prints a timestamp to a file. in: file where to print
Prints a timestamp to a file.
file | in: file where to print |
Definition at line 254 of file ut0ut.cc.
References ut_print_timestamp().
Referenced by btr_search_drop_page_hash_index(), buf_flush_init_for_writing(), buf_flush_ready_for_replace(), buf_LRU_file_restore(), buf_LRU_get_free_block(), buf_page_io_complete(), buf_page_is_corrupted(), buf_page_print(), buf_read_ahead_linear(), buf_read_page(), buf_read_page_low(), buf_zip_decompress(), dict_check_tablespaces_and_store_max_id(), dict_foreign_parse_drop_constraints(), dict_load_table(), dict_load_table_low(), dict_print(), dict_table_rename_in_cache(), dict_truncate_index_tree(), dict_update_statistics(), fil_assign_new_space_id(), fil_create_new_single_table_tablespace(), fil_delete_tablespace(), fil_io(), fil_node_create(), fil_open_single_table_tablespace(), fil_rename_tablespace(), fil_reset_too_high_lsns(), fil_space_create(), fil_space_for_table_exists_in_mem(), ha_innobase::innobase_initialize_autoinc(), ha_innobase::innobase_peek_autoinc(), lock_check_trx_id_sanity(), lock_rec_unlock(), log_close(), logs_empty_and_mark_files_at_shutdown(), os_fast_mutex_free(), os_file_create_func(), os_file_create_tmpfile(), os_file_flush_func(), os_file_get_last_error(), os_file_set_nocache(), os_file_write_func(), page_copy_rec_list_end_no_locks(), recv_apply_hashed_log_recs(), row_check_index_for_mysql(), row_create_index_for_mysql(), row_create_table_for_mysql(), row_discard_tablespace_for_mysql(), row_drop_database_for_mysql(), row_drop_table_for_mysql(), row_drop_tables_for_mysql_in_background(), row_import_tablespace_for_mysql(), row_ins_check_foreign_constraint(), row_insert_for_mysql(), row_rename_table_for_mysql(), row_search_for_mysql(), row_sel_convert_mysql_key_to_innobase(), row_truncate_table_for_mysql(), row_update_for_mysql(), srv_conc_enter_innodb(), srv_monitor_thread(), srv_printf_innodb_monitor(), srv_suspend_mysql_thread(), trx_free(), trx_recover_for_mysql(), trx_rollback_or_clean_recovered(), trx_rollback_to_savepoint_for_mysql(), ut_dbg_assertion_failed(), ut_malloc_low(), ut_print_timestamp(), ut_test_malloc(), and ut_usectime().
UNIV_INTERN void ut_sprintf_timestamp | ( | char * | buf | ) |
Sprintfs a timestamp to a buffer, 13..14 chars plus terminating NUL. in: buffer where to sprintf
Sprintfs a timestamp to a buffer, 13..14 chars plus terminating NUL.
buf | in: buffer where to sprintf |
Definition at line 297 of file ut0ut.cc.
References ut_sprintf_timestamp().
Referenced by ut_sprintf_timestamp().
UNIV_INTERN const char* ut_strerr | ( | enum db_err | num | ) |
Convert an error number to a human readable text message. The returned string is static and should not be freed or modified.
Convert an error number to a human readable text message. The returned string is static and should not be freed or modified.
num | in: error number |
Definition at line 651 of file ut0ut.cc.
References DB_SUCCESS_LOCKED_REC, ut_error, and ut_strerr().
Referenced by ut_strerr().
UNIV_INTERN ib_time_t ut_time | ( | void | ) |
Returns system time. We do not specify the format of the time returned: the only way to manipulate it is to use the function ut_difftime.
Definition at line 145 of file ut0ut.cc.
References ut_time().
Referenced by buf_refresh_io_stats(), srv_lock_timeout_thread(), srv_monitor_thread(), srv_suspend_mysql_thread(), and ut_time().
UNIV_INTERN ulint ut_time_ms | ( | void | ) |
Returns the number of milliseconds since some epoch. The value may wrap around. It should only be used for heuristic purposes.
Definition at line 226 of file ut0ut.cc.
References ut_time_ms().
Referenced by buf_page_create(), buf_page_get_known_nowait(), srv_master_thread(), srv_purge_thread(), and ut_time_ms().
UNIV_INTERN ullint ut_time_us | ( | ullint * | tloc | ) |
Returns the number of microseconds since epoch. Similar to time(3), the return value is also stored in *tloc, provided that tloc is non-NULL.
Returns the number of microseconds since epoch. Similar to time(3), the return value is also stored in *tloc, provided that tloc is non-NULL.
tloc | out: us since epoch, if non-NULL |
Definition at line 201 of file ut0ut.cc.
References ut_time_us().
Referenced by trx_i_s_cache_end_read(), and ut_time_us().
UNIV_INLINE int ut_ulint_cmp | ( | ulint | a, |
ulint | b | ||
) |
Compares two ulints.
a | in: ulint |
Referenced by buf_read_ahead_linear().
UNIV_INTERN int ut_usectime | ( | ulint * | sec, |
ulint * | ms | ||
) |
Returns system time. Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.
Returns system time. Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.
sec | out: seconds since the Epoch |
ms | out: microseconds since the Epoch+*sec |
Definition at line 160 of file ut0ut.cc.
References os_thread_sleep(), ut_print_timestamp(), and ut_usectime().
Referenced by os_event_wait_time_low(), srv_suspend_mysql_thread(), and ut_usectime().