MySQL  8.0.20
Source Code Documentation
ut0byte.h File Reference

Utilities for byte operations. More...

#include "univ.i"
#include "ut0ut.h"
#include "ut0byte.ic"

Go to the source code of this file.

Functions

UNIV_INLINE ib_uint64_t ut_ull_create (ulint high, ulint low)
 Creates a 64-bit integer out of two 32-bit integers. More...
 
UNIV_INLINE ib_uint64_t ut_uint64_align_down (ib_uint64_t n, ulint align_no)
 Rounds a 64-bit integer downward to a multiple of a power of 2. More...
 
UNIV_INLINE ib_uint64_t ut_uint64_align_up (ib_uint64_t n, ulint align_no)
 Rounds ib_uint64_t upward to a multiple of a power of 2. More...
 
UNIV_INLINE void * ut_align (const void *ptr, ulint align_no)
 The following function rounds up a pointer to the nearest aligned address. More...
 
UNIV_INLINE void * ut_align_down (const void *ptr, ulint align_no)
 The following function rounds down a pointer to the nearest aligned address. More...
 
UNIV_INLINE ulint ut_align_offset (const void *ptr, ulint align_no)
 The following function computes the offset of a pointer from the nearest aligned address. More...
 
UNIV_INLINE ibool ut_bit_get_nth (ulint a, ulint n)
 Gets the nth bit of a ulint. More...
 
UNIV_INLINE ulint ut_bit_set_nth (ulint a, ulint n, ibool val)
 Sets the nth bit of a ulint. More...
 

Detailed Description

Utilities for byte operations.

Created 1/20/1994 Heikki Tuuri

Function Documentation

◆ ut_align()

UNIV_INLINE void* ut_align ( const void *  ptr,
ulint  align_no 
)

The following function rounds up a pointer to the nearest aligned address.

Parameters
[in]ptrpointer
[in]align_noalign by this number
Returns
aligned pointer

◆ ut_align_down()

UNIV_INLINE void* ut_align_down ( const void *  ptr,
ulint  align_no 
)

The following function rounds down a pointer to the nearest aligned address.

Returns
aligned pointer
Parameters
ptrin: pointer
align_noin: align by this number

◆ ut_align_offset()

UNIV_INLINE ulint ut_align_offset ( const void *  ptr,
ulint  align_no 
)

The following function computes the offset of a pointer from the nearest aligned address.

Returns
distance from aligned pointer
Parameters
ptrin: pointer
align_noin: align by this number

◆ ut_bit_get_nth()

UNIV_INLINE ibool ut_bit_get_nth ( ulint  a,
ulint  n 
)

Gets the nth bit of a ulint.

Parameters
[in]aulint
[in]nnth bit requested
Returns
true if nth bit is 1; 0th bit is defined to be the least significant

◆ ut_bit_set_nth()

UNIV_INLINE ulint ut_bit_set_nth ( ulint  a,
ulint  n,
ibool  val 
)

Sets the nth bit of a ulint.

Parameters
[in]aulint
[in]nnth bit requested
[in]valvalue for the bit to set
Returns
the ulint with the bit set as requested

◆ ut_uint64_align_down()

UNIV_INLINE ib_uint64_t ut_uint64_align_down ( ib_uint64_t  n,
ulint  align_no 
)

Rounds a 64-bit integer downward to a multiple of a power of 2.

Parameters
[in]nnumber to be rounded
[in]align_noalign by this number
Returns
rounded value

◆ ut_uint64_align_up()

UNIV_INLINE ib_uint64_t ut_uint64_align_up ( ib_uint64_t  n,
ulint  align_no 
)

Rounds ib_uint64_t upward to a multiple of a power of 2.

Parameters
[in]nnumber to be rounded
[in]align_noalign by this number
Returns
rounded value

◆ ut_ull_create()

UNIV_INLINE ib_uint64_t ut_ull_create ( ulint  high,
ulint  low 
)

Creates a 64-bit integer out of two 32-bit integers.

Returns
created integer
Parameters
highin: high-order 32 bits
lowin: low-order 32 bits