MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mach0data.h File Reference
#include "univ.i"
#include "ut0byte.h"
#include "mach0data.ic"
Include dependency graph for mach0data.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

UNIV_INLINE void mach_write_to_1 (byte *b, ulint n)
UNIV_INLINE ulint mach_read_from_1 (const byte *b) __attribute__((nonnull
UNIV_INLINE void mach_write_to_2 (byte *b, ulint n)
UNIV_INLINE ulint mach_read_from_2 (const byte *b) __attribute__((nonnull
UNIV_INLINE uint16 mach_encode_2 (ulint n) __attribute__((const ))
UNIV_INLINE ulint mach_decode_2 (uint16 n) __attribute__((const ))
UNIV_INLINE void mach_write_to_3 (byte *b, ulint n)
UNIV_INLINE ulint mach_read_from_3 (const byte *b) __attribute__((nonnull
UNIV_INLINE void mach_write_to_4 (byte *b, ulint n)
UNIV_INLINE ulint mach_read_from_4 (const byte *b) __attribute__((nonnull
UNIV_INLINE ulint mach_write_compressed (byte *b, ulint n)
UNIV_INLINE ulint mach_get_compressed_size (ulint n) __attribute__((const ))
UNIV_INLINE ulint mach_read_compressed (const byte *b) __attribute__((nonnull
UNIV_INLINE void mach_write_to_6 (byte *b, ib_uint64_t id)
UNIV_INLINE ib_uint64_t mach_read_from_6 (const byte *b) __attribute__((nonnull
UNIV_INLINE void mach_write_to_7 (byte *b, ib_uint64_t n)
UNIV_INLINE ib_uint64_t mach_read_from_7 (const byte *b) __attribute__((nonnull
UNIV_INLINE void mach_write_to_8 (void *b, ib_uint64_t n)
UNIV_INLINE ib_uint64_t mach_read_from_8 (const byte *b) __attribute__((nonnull
UNIV_INLINE ulint mach_ull_write_compressed (byte *b, ib_uint64_t n)
UNIV_INLINE ulint mach_ull_get_compressed_size (ib_uint64_t n)
UNIV_INLINE ib_uint64_t mach_ull_read_compressed (const byte *b) __attribute__((nonnull
UNIV_INLINE ulint mach_ull_write_much_compressed (byte *b, ib_uint64_t n)
UNIV_INLINE ulint mach_ull_get_much_compressed_size (ib_uint64_t n) __attribute__((const ))
UNIV_INLINE ib_uint64_t mach_ull_read_much_compressed (const byte *b) __attribute__((nonnull
UNIV_INTERN byte * mach_parse_compressed (byte *ptr, byte *end_ptr, ulint *val)
UNIV_INLINE byte * mach_ull_parse_compressed (byte *ptr, byte *end_ptr, ib_uint64_t *val)
UNIV_INLINE double mach_double_read (const byte *b) __attribute__((nonnull
UNIV_INLINE void mach_double_write (byte *b, double d)
UNIV_INLINE float mach_float_read (const byte *b) __attribute__((nonnull
UNIV_INLINE void mach_float_write (byte *b, float d)
UNIV_INLINE ulint mach_read_from_n_little_endian (const byte *buf, ulint buf_size) __attribute__((nonnull
UNIV_INLINE void mach_write_to_n_little_endian (byte *dest, ulint dest_size, ulint n)
UNIV_INLINE ulint mach_read_from_2_little_endian (const byte *buf) __attribute__((nonnull
UNIV_INLINE void mach_write_to_2_little_endian (byte *dest, ulint n)
UNIV_INLINE ib_uint64_t mach_read_int_type (const byte *src, ulint len, ibool unsigned_type)
UNIV_INLINE void mach_write_int_type (byte *dest, const byte *src, ulint len, bool usign)
UNIV_INLINE void mach_write_ulonglong (byte *dest, ulonglong src, ulint len, bool usign)
UNIV_INLINE ulint mach_read_ulint (const byte *ptr, ulint type)

Variables

UNIV_INLINE ulint pure

Detailed Description

Utilities for converting data from the database file to the machine format.

Created 11/28/1995 Heikki Tuuri

Definition in file mach0data.h.

Function Documentation

UNIV_INLINE ulint mach_decode_2 ( uint16  n) const

The following function is used to convert a 16-bit data item from the canonical format, for fast bytewise equality test against memory.

Returns
integer in machine-dependent format
Parameters
nin: 16-bit integer in canonical format

Here is the caller graph for this function:

UNIV_INLINE double mach_double_read ( const byte *  b)

Reads a double. It is stored in a little-endian format.

Returns
double read
Parameters
bin: pointer to memory from where to read

Here is the caller graph for this function:

UNIV_INLINE void mach_double_write ( byte *  b,
double  d 
)

Writes a double. It is stored in a little-endian format. in: double

Parameters
bin: pointer to memory where to write

Here is the caller graph for this function:

UNIV_INLINE uint16 mach_encode_2 ( ulint  n) const

The following function is used to convert a 16-bit data item to the canonical format, for fast bytewise equality test against memory.

Returns
16-bit integer in canonical format
Parameters
nin: integer in machine-dependent format

Here is the caller graph for this function:

UNIV_INLINE float mach_float_read ( const byte *  b)

Reads a float. It is stored in a little-endian format.

Returns
float read
Parameters
bin: pointer to memory from where to read

Here is the caller graph for this function:

UNIV_INLINE void mach_float_write ( byte *  b,
float  d 
)

Writes a float. It is stored in a little-endian format. in: float

Parameters
bin: pointer to memory where to write

Here is the caller graph for this function:

UNIV_INLINE ulint mach_get_compressed_size ( ulint  n) const

Returns the size of an ulint when written in the compressed form.

Returns
compressed size in bytes
Parameters
nin: ulint integer to be stored

Here is the caller graph for this function:

UNIV_INTERN byte* mach_parse_compressed ( byte *  ptr,
byte *  end_ptr,
ulint *  val 
)

Reads a ulint in a compressed form if the log record fully contains it.

Returns
pointer to end of the stored field, NULL if not complete out: read value

Reads a ulint in a compressed form if the log record fully contains it.

Returns
pointer to end of the stored field, NULL if not complete
Parameters
ptrin: pointer to buffer from where to read
end_ptrin: pointer to end of the buffer
valout: read value (< 2^32)

Definition at line 38 of file mach0data.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INLINE ulint mach_read_compressed ( const byte *  b)

Reads a ulint in a compressed form.

Returns
read integer
Parameters
bin: pointer to memory from where to read

Here is the caller graph for this function:

UNIV_INLINE ulint mach_read_from_1 ( const byte *  b)

The following function is used to fetch data from one byte.

Returns
ulint integer, >= 0, < 256
Parameters
bin: pointer to byte

Here is the caller graph for this function:

UNIV_INLINE ulint mach_read_from_2 ( const byte *  b)

The following function is used to fetch data from two consecutive bytes. The most significant byte is at the lowest address.

Returns
ulint integer, >= 0, < 64k
Parameters
bin: pointer to two bytes

Here is the caller graph for this function:

UNIV_INLINE ulint mach_read_from_2_little_endian ( const byte *  buf)

Reads a ulint stored in the little-endian format.

Returns
unsigned long int
Parameters
bufin: from where to read

Here is the caller graph for this function:

UNIV_INLINE ulint mach_read_from_3 ( const byte *  b)

The following function is used to fetch data from 3 consecutive bytes. The most significant byte is at the lowest address.

Returns
ulint integer
Parameters
bin: pointer to 3 bytes

Here is the caller graph for this function:

UNIV_INLINE ulint mach_read_from_4 ( const byte *  b)

The following function is used to fetch data from 4 consecutive bytes. The most significant byte is at the lowest address.

Returns
ulint integer
Parameters
bin: pointer to four bytes

Here is the caller graph for this function:

UNIV_INLINE ib_uint64_t mach_read_from_6 ( const byte *  b)

The following function is used to fetch data from 6 consecutive bytes. The most significant byte is at the lowest address.

Returns
48-bit integer
Parameters
bin: pointer to 6 bytes

Here is the caller graph for this function:

UNIV_INLINE ib_uint64_t mach_read_from_7 ( const byte *  b)

The following function is used to fetch data from 7 consecutive bytes. The most significant byte is at the lowest address.

Returns
56-bit integer
Parameters
bin: pointer to 7 bytes

Here is the caller graph for this function:

UNIV_INLINE ib_uint64_t mach_read_from_8 ( const byte *  b)

The following function is used to fetch data from 8 consecutive bytes. The most significant byte is at the lowest address.

Returns
64-bit integer
Parameters
bin: pointer to 8 bytes

Here is the caller graph for this function:

UNIV_INLINE ulint mach_read_from_n_little_endian ( const byte *  buf,
ulint  buf_size 
)

Reads a ulint stored in the little-endian format.

Returns
unsigned long int
Parameters
bufin: from where to read
buf_sizein: from how many bytes to read

Here is the caller graph for this function:

UNIV_INLINE ib_uint64_t mach_read_int_type ( const byte *  src,
ulint  len,
ibool  unsigned_type 
)

Convert integral type from storage byte order (big endian) to host byte order.

Returns
integer value in: signed or unsigned flag
Parameters
srcin: where to read from
lenin: length of src

Here is the caller graph for this function:

UNIV_INLINE ulint mach_read_ulint ( const byte *  ptr,
ulint  type 
)

Reads 1 - 4 bytes from a file page buffered in the buffer pool.

Returns
value read in: MLOG_1BYTE, MLOG_2BYTES, MLOG_4BYTES
Parameters
ptrin: pointer from where to read

Here is the caller graph for this function:

UNIV_INLINE ulint mach_ull_get_compressed_size ( ib_uint64_t  n)

Returns the size of a 64-bit integer when written in the compressed form.

Returns
compressed size in bytes in: 64-bit integer to be stored

Here is the caller graph for this function:

UNIV_INLINE ulint mach_ull_get_much_compressed_size ( ib_uint64_t  n) const

Returns the size of a 64-bit integer when written in the compressed form.

Returns
compressed size in bytes
Parameters
nin: 64-bit integer to be stored

Here is the caller graph for this function:

UNIV_INLINE byte* mach_ull_parse_compressed ( byte *  ptr,
byte *  end_ptr,
ib_uint64_t *  val 
)

Reads a 64-bit integer in a compressed form if the log record fully contains it.

Returns
pointer to end of the stored field, NULL if not complete out: read value
Parameters
ptrin: pointer to buffer from where to read
end_ptrin: pointer to end of the buffer

Here is the caller graph for this function:

UNIV_INLINE ib_uint64_t mach_ull_read_compressed ( const byte *  b)

Reads a 64-bit integer in a compressed form.

Returns
the value read
Parameters
bin: pointer to memory from where to read

Here is the caller graph for this function:

UNIV_INLINE ib_uint64_t mach_ull_read_much_compressed ( const byte *  b)

Reads a 64-bit integer in a compressed form.

Returns
the value read
Parameters
bin: pointer to memory from where to read

Here is the caller graph for this function:

UNIV_INLINE ulint mach_ull_write_compressed ( byte *  b,
ib_uint64_t  n 
)

Writes a 64-bit integer in a compressed form (5..9 bytes).

Returns
size in bytes in: 64-bit integer to be stored
Parameters
bin: pointer to memory where to store

Here is the caller graph for this function:

UNIV_INLINE ulint mach_ull_write_much_compressed ( byte *  b,
ib_uint64_t  n 
)

Writes a 64-bit integer in a compressed form (1..11 bytes).

Returns
size in bytes in: 64-bit integer to be stored
Parameters
bin: pointer to memory where to store
UNIV_INLINE ulint mach_write_compressed ( byte *  b,
ulint  n 
)

Writes a ulint in a compressed form (1..5 bytes).

Returns
stored size in bytes in: ulint integer to be stored
Parameters
bin: pointer to memory where to store

Here is the caller graph for this function:

UNIV_INLINE void mach_write_int_type ( byte *  dest,
const byte *  src,
ulint  len,
bool  usign 
)

Convert integral type from host byte order to (big-endian) storage byte order. in: signed or unsigned flag

Parameters
destin: where to write
srcin: where to read from
lenin: length of src

Here is the caller graph for this function:

UNIV_INLINE void mach_write_to_1 ( byte *  b,
ulint  n 
)

The following function is used to store data in one byte. in: ulint integer to be stored, >= 0, < 256

Parameters
bin: pointer to byte where to store

Here is the caller graph for this function:

UNIV_INLINE void mach_write_to_2 ( byte *  b,
ulint  n 
)

The following function is used to store data in two consecutive bytes. We store the most significant byte to the lower address. in: ulint integer to be stored, >= 0, < 64k

Parameters
bin: pointer to two bytes where to store

Here is the caller graph for this function:

UNIV_INLINE void mach_write_to_2_little_endian ( byte *  dest,
ulint  n 
)

Writes a ulint in the little-endian format. in: unsigned long int to write

Parameters
destin: where to write

Here is the caller graph for this function:

UNIV_INLINE void mach_write_to_3 ( byte *  b,
ulint  n 
)

The following function is used to store data in 3 consecutive bytes. We store the most significant byte to the lowest address. in: ulint integer to be stored

Parameters
bin: pointer to 3 bytes where to store
UNIV_INLINE void mach_write_to_4 ( byte *  b,
ulint  n 
)

The following function is used to store data in four consecutive bytes. We store the most significant byte to the lowest address. in: ulint integer to be stored

Parameters
bin: pointer to four bytes where to store

Here is the caller graph for this function:

UNIV_INLINE void mach_write_to_6 ( byte *  b,
ib_uint64_t  id 
)

The following function is used to store data in 6 consecutive bytes. We store the most significant byte to the lowest address. in: 48-bit integer

Parameters
bin: pointer to 6 bytes where to store

Here is the caller graph for this function:

UNIV_INLINE void mach_write_to_7 ( byte *  b,
ib_uint64_t  n 
)

The following function is used to store data in 7 consecutive bytes. We store the most significant byte to the lowest address. in: 56-bit integer

Parameters
bin: pointer to 7 bytes where to store

Here is the caller graph for this function:

UNIV_INLINE void mach_write_to_8 ( void *  b,
ib_uint64_t  n 
)

The following function is used to store data in 8 consecutive bytes. We store the most significant byte to the lowest address. in: 64-bit integer to be stored

Parameters
bin: pointer to 8 bytes where to store

Here is the caller graph for this function:

UNIV_INLINE void mach_write_to_n_little_endian ( byte *  dest,
ulint  dest_size,
ulint  n 
)

Writes a ulint in the little-endian format. in: unsigned long int to write

Parameters
destin: where to write
dest_sizein: into how many bytes to write

Here is the caller graph for this function:

UNIV_INLINE void mach_write_ulonglong ( byte *  dest,
ulonglong  src,
ulint  len,
bool  usign 
)

in: signed or unsigned flag

Parameters
destin: where to write
srcin: where to read from
lenin: length of dest