/******************************************************************//**
@file include/ut0byte.h
Utilities for byte operations
Created 1/20/1994 Heikki Tuuri
***********************************************************************/
#ifndef ut0byte_h #define ut0byte_h
#include"univ.i"
/*******************************************************//**
Creates a 64-bit integer out of two 32-bit integers.
@return created integer */
UNIV_INLINE
ib_uint64_t
ut_ull_create( /*==========*/
ulint high, /*!< in: high-order 32 bits */
ulint low) /*!< in: low-order 32 bits */
MY_ATTRIBUTE((const));
/********************************************************//**
Rounds a 64-bit integer downward to a multiple of a power of 2.
@return rounded value */
UNIV_INLINE
ib_uint64_t
ut_uint64_align_down( /*=================*/
ib_uint64_t n, /*!< in: number to be rounded */
ulint align_no); /*!< in: align by this number
which must be a power of 2 */ /********************************************************//**
Rounds ib_uint64_t upward to a multiple of a power of 2.
@return rounded value */
UNIV_INLINE
ib_uint64_t
ut_uint64_align_up( /*===============*/
ib_uint64_t n, /*!< in: number to be rounded */
ulint align_no); /*!< in: align by this number
which must be a power of 2 */ /** Round down a pointer to the nearest aligned address. @paramptrpointer @paramalignmentapowerof2
@return aligned pointer */ staticinlinevoid *ut_align_down(void *ptr, size_t alignment)
{
ut_ad(alignment > 0);
ut_ad(ut_is_2pow(alignment));
ut_ad(ptr);
static_assert(sizeof ptr == sizeof(size_t), "compatibility");
/** Compute the offset of a pointer from the nearest aligned address. @paramptrpointer @paramalignmentapowerof2
@return distance from aligned pointer */ inline size_t ut_align_offset(constvoid *ptr, size_t alignment)
{
ut_ad(alignment > 0);
ut_ad(ut_is_2pow(alignment));
ut_ad(ptr); returnreinterpret_cast<size_t>(ptr) & (alignment - 1);
}
/*****************************************************************//**
Gets the nth bit of a ulint.
@returnTRUEif nth bit is 1; 0th bit is defined to be the least significant */
UNIV_INLINE
ibool
ut_bit_get_nth( /*===========*/
ulint a, /*!< in: ulint */
ulint n); /*!< in: nth bit requested */
#include"ut0byte.inl"
#endif
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.