mariadb/innobase/include/ut0ut.h
unknown d01f2efebf Portability fixes.
Let myisamchk generate a new checksum for compressed data.
Don't unconditionally force filenames to lower case on windows.
Update mysqltest to match 4.0 source (to get some of the new bug fixes into 3.23)


Docs/manual.texi:
  Link changes, and new comments about IA64 and about Sun workshop
client/mysqltest.c:
  Updated this to match the 4.0 source
include/config-win.h:
  Don't unconditionally force filenames to lower case on windows.
innobase/include/ut0ut.h:
  Portability fix
myisam/mi_cache.c:
  Fix problem where reported error number was -1
myisam/mi_check.c:
  Let myisamchk generate a new checksum for compressed data.
myisam/mi_packrec.c:
  Cleanup
myisam/myisamchk.c:
  Report checksum for compressed tables
mysql-test/t/bdb.test:
  Fix to match new mysqltest
mysql-test/t/err000001.test:
  Fix to match new mysqltest
mysql-test/t/fulltext.test:
  Fix to match new mysqltest
mysql-test/t/innodb.test:
  Fix to match new mysqltest
mysql-test/t/overflow.test:
  Fix to match new mysqltest
sql/ha_gemini.cc:
  Fix false -> FALSE
sql/share/estonian/errmsg.txt:
  Updated of translation
sql/share/swedish/errmsg.txt:
  Updated of translation
sql/sql_parse.cc:
  Don't unconditionally force filenames to lower case on windows.
sql/sql_table.cc:
  Don't unconditionally force filenames to lower case on windows.
sql/sql_test.cc:
  Write current directory when using 'mysqladmin debug'
strings/strto.c:
  Portability fix
strings/strtoll.c:
  Portability fix
strings/strtoul.c:
  Portability fix
strings/strtoull.c:
  Portability fix
2001-08-18 10:49:00 +03:00

181 lines
5.2 KiB
C

/**********************************************************************
Various utilities
(c) 1994, 1995 Innobase Oy
Created 1/20/1994 Heikki Tuuri
***********************************************************************/
#ifndef ut0ut_h
#define ut0ut_h
#include "univ.i"
#include <time.h>
#ifndef MYSQL_SERVER
#include <ctype.h>
#endif
typedef time_t ib_time_t;
/**********************************************************
Calculates the minimum of two ulints. */
UNIV_INLINE
ulint
ut_min(
/*===*/
/* out: minimum */
ulint n1, /* in: first number */
ulint n2); /* in: second number */
/**********************************************************
Calculates the maximum of two ulints. */
UNIV_INLINE
ulint
ut_max(
/*===*/
/* out: maximum */
ulint n1, /* in: first number */
ulint n2); /* in: second number */
/********************************************************************
Calculates minimum of two ulint-pairs. */
UNIV_INLINE
void
ut_pair_min(
/*========*/
ulint* a, /* out: more significant part of minimum */
ulint* b, /* out: less significant part of minimum */
ulint a1, /* in: more significant part of first pair */
ulint b1, /* in: less significant part of first pair */
ulint a2, /* in: more significant part of second pair */
ulint b2); /* in: less significant part of second pair */
/**********************************************************
Compares two ulints. */
UNIV_INLINE
int
ut_ulint_cmp(
/*=========*/
/* out: 1 if a > b, 0 if a == b, -1 if a < b */
ulint a, /* in: ulint */
ulint b); /* in: ulint */
/***********************************************************
Compares two pairs of ulints. */
UNIV_INLINE
int
ut_pair_cmp(
/*========*/
/* out: -1 if a < b, 0 if a == b,
1 if a > b */
ulint a1, /* in: more significant part of first pair */
ulint a2, /* in: less significant part of first pair */
ulint b1, /* in: more significant part of second pair */
ulint b2); /* in: less significant part of second pair */
/*****************************************************************
Calculates fast the remainder when divided by a power of two. */
UNIV_INLINE
ulint
ut_2pow_remainder(
/*==============*/ /* out: remainder */
ulint n, /* in: number to be divided */
ulint m); /* in: divisor; power of 2 */
/*****************************************************************
Calculates fast value rounded to a multiple of a power of 2. */
UNIV_INLINE
ulint
ut_2pow_round(
/*==========*/ /* out: value of n rounded down to nearest
multiple of m */
ulint n, /* in: number to be rounded */
ulint m); /* in: divisor; power of 2 */
/*****************************************************************
Calculates fast the 2-logarithm of a number, rounded upward to an
integer. */
UNIV_INLINE
ulint
ut_2_log(
/*=====*/
/* out: logarithm in the base 2, rounded upward */
ulint n); /* in: number */
/*****************************************************************
Calculates 2 to power n. */
UNIV_INLINE
ulint
ut_2_exp(
/*=====*/
/* out: 2 to power n */
ulint n); /* in: number */
/*****************************************************************
Calculates fast the number rounded up to the nearest power of 2. */
UNIV_INLINE
ulint
ut_2_power_up(
/*==========*/
/* out: first power of 2 which is >= n */
ulint n); /* in: number != 0 */
/****************************************************************
Sort function for ulint arrays. */
void
ut_ulint_sort(ulint* arr, ulint* aux_arr, ulint low, ulint high);
/*============================================================*/
/************************************************************
The following function returns a clock time in milliseconds. */
ulint
ut_clock(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. */
ib_time_t
ut_time(void);
/*=========*/
/**************************************************************
Returns the difference of two times in seconds. */
double
ut_difftime(
/*========*/
/* out: time2 - time1 expressed in seconds */
ib_time_t time2, /* in: time */
ib_time_t time1); /* in: time */
/**************************************************************
Prints a timestamp to a file. */
void
ut_print_timestamp(
/*===============*/
FILE* file); /* in: file where to print */
/*****************************************************************
Runs an idle loop on CPU. The argument gives the desired delay
in microseconds on 100 MHz Pentium + Visual C++. */
ulint
ut_delay(
/*=====*/
/* out: dummy value */
ulint delay); /* in: delay in microseconds on 100 MHz Pentium */
/*****************************************************************
Prints the contents of a memory buffer in hex and ascii. */
void
ut_print_buf(
/*=========*/
byte* buf, /* in: memory buffer */
ulint len); /* in: length of the buffer */
/*****************************************************************
Prints the contents of a memory buffer in hex and ascii. */
ulint
ut_sprintf_buf(
/*===========*/
/* out: printed length in bytes */
char* str, /* in: buffer to print to */
byte* buf, /* in: memory buffer */
ulint len); /* in: length of the buffer */
#ifndef UNIV_NONINL
#include "ut0ut.ic"
#endif
#endif