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(), lock_rec_insert_check_and_lock(), row_merge_drop_temp_indexes(), and row_merge_rename_indexes().
#define TEMP_INDEX_PREFIX_STR "\377" |
Index name prefix in fast index creation, as a string constant
Definition at line 53 of file ut0ut.h.
Referenced by row_merge_drop_index(), and row_merge_rename_indexes().
#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(), 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(), fsp_validate(), ha_create_func(), hash_create_mutexes_func(), ibuf_insert(), ibuf_merge_or_delete_for_page(), 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 573 of file ut0ut.cc.
Referenced by lock_print_info_summary(), and srv_printf_innodb_monitor().
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 419 of file ut0ut.cc.
Referenced by rw_lock_x_lock_func().
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 235 of file ut0ut.cc.
Referenced by srv_lock_timeout_thread(), and srv_suspend_mysql_thread().
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 |
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(), 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 444 of file ut0ut.cc.
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(), and trx_undo_prev_version_build().
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 499 of file ut0ut.cc.
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(), and fil_space_for_table_exists_in_mem().
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 528 of file ut0ut.cc.
References ut_print_namel().
Referenced by ha_innobase::check(), dict_index_name_print(), dict_print_info_on_foreign_key_in_create_format(), 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(), and trx_undo_update_rec_get_update().
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 546 of file ut0ut.cc.
References innobase_convert_name(), and trx_struct::mysql_thd.
Referenced by ut_print_name().
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 247 of file ut0ut.cc.
Referenced by btr_search_drop_page_hash_index(), buf_flush_init_for_writing(), buf_flush_ready_for_replace(), buf_LRU_file_restore(), 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_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(), ibuf_merge_or_delete_for_page(), ha_innobase::innobase_initialize_autoinc(), ha_innobase::innobase_peek_autoinc(), innobase_start_or_create_for_mysql(), 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_merge_rename_tables(), 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_test_malloc(), and ut_usectime().
UNIV_INTERN void ut_sprintf_timestamp | ( | char * | buf | ) |
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 644 of file ut0ut.cc.
References DB_SUCCESS_LOCKED_REC, and ut_error.
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 138 of file ut0ut.cc.
Referenced by buf_refresh_io_stats(), srv_lock_timeout_thread(), srv_monitor_thread(), and srv_suspend_mysql_thread().
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 219 of file ut0ut.cc.
Referenced by buf_page_create(), buf_page_get_known_nowait(), srv_master_thread(), and srv_purge_thread().
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 194 of file ut0ut.cc.
Referenced by trx_i_s_cache_end_read().
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 153 of file ut0ut.cc.
References os_thread_sleep(), and ut_print_timestamp().
Referenced by os_event_wait_time_low(), and srv_suspend_mysql_thread().