|
XenevaOS
|
#include <type_traits>#include <cstddef>#include <cstdint>

Go to the source code of this file.
Classes | |
| struct | is_ptr_or_uint64< T > |
Macros | |
| #define | RAW_OFFSET(type, x, offset) (type)((size_t)x + offset) |
| #define | RAW_DIFF(p1, p2) ((intptr_t)p1 - (intptr_t)p2) |
| #define | MEM_AFTER(type, p) ((type)(&(p)[1])) |
| #define | DIV_ROUND_UP(x, y) ((x + y - 1) / y) |
| #define | ALIGN_UP(x, y) (DIV_ROUND_UP(x,y)*y) |
Functions | |
| template<typename T , std::enable_if_t< is_ptr_or_uint64< T >::value, int > = 0> | |
| std::ptrdiff_t | raw_diff (T p1, T p2) |
| template<typename T , typename U , std::enable_if_t< is_ptr_or_uint64< T >::value &&is_ptr_or_uint64< U >::value, int > = 0> | |
| T | raw_offset (U p1, std::ptrdiff_t offset) |
| template<typename T , std::enable_if_t< is_ptr_or_uint64< T >::value, int > = 0> | |
| T | mem_after (T p1) |
| #define ALIGN_UP | ( | x, | |
| y | |||
| ) | (DIV_ROUND_UP(x,y)*y) |
| #define DIV_ROUND_UP | ( | x, | |
| y | |||
| ) | ((x + y - 1) / y) |
| #define MEM_AFTER | ( | type, | |
| p | |||
| ) | ((type)(&(p)[1])) |
| #define RAW_OFFSET | ( | type, | |
| x, | |||
| offset | |||
| ) | (type)((size_t)x + offset) |
| T mem_after | ( | T | p1 | ) |
| std::ptrdiff_t raw_diff | ( | T | p1, |
| T | p2 | ||
| ) |
| T raw_offset | ( | U | p1, |
| std::ptrdiff_t | offset | ||
| ) |