Monero
Loading...
Searching...
No Matches
int-util.h File Reference
#include <assert.h>
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
#include <sys/param.h>
Include dependency graph for int-util.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define IDENT16(x)
#define IDENT32(x)
#define IDENT64(x)
#define SWAP16(x)
#define SWAP32(x)
#define SWAP64(x)
#define UNUSED
#define SWAP16LE   IDENT16
#define SWAP16BE   SWAP16
#define swap16le   ident16
#define swap16be   swap16
#define mem_inplace_swap16le   mem_inplace_ident
#define mem_inplace_swap16be   mem_inplace_swap16
#define memcpy_swap16le   memcpy_ident16
#define memcpy_swap16be   memcpy_swap16
#define SWAP32LE   IDENT32
#define SWAP32BE   SWAP32
#define swap32le   ident32
#define swap32be   swap32
#define mem_inplace_swap32le   mem_inplace_ident
#define mem_inplace_swap32be   mem_inplace_swap32
#define memcpy_swap32le   memcpy_ident32
#define memcpy_swap32be   memcpy_swap32
#define SWAP64LE   IDENT64
#define SWAP64BE   SWAP64
#define swap64le   ident64
#define swap64be   swap64
#define mem_inplace_swap64le   mem_inplace_ident
#define mem_inplace_swap64be   mem_inplace_swap64
#define memcpy_swap64le   memcpy_ident64
#define memcpy_swap64be   memcpy_swap64
#define SWAP16BE   IDENT16
#define SWAP16LE   SWAP16
#define swap16be   ident16
#define swap16le   swap16
#define mem_inplace_swap16be   mem_inplace_ident
#define mem_inplace_swap16le   mem_inplace_swap16
#define memcpy_swap16be   memcpy_ident16
#define memcpy_swap16le   memcpy_swap16
#define SWAP32BE   IDENT32
#define SWAP32LE   SWAP32
#define swap32be   ident32
#define swap32le   swap32
#define mem_inplace_swap32be   mem_inplace_ident
#define mem_inplace_swap32le   mem_inplace_swap32
#define memcpy_swap32be   memcpy_ident32
#define memcpy_swap32le   memcpy_swap32
#define SWAP64BE   IDENT64
#define SWAP64LE   SWAP64
#define swap64be   ident64
#define swap64le   swap64
#define mem_inplace_swap64be   mem_inplace_ident
#define mem_inplace_swap64le   mem_inplace_swap64
#define memcpy_swap64be   memcpy_ident64
#define memcpy_swap64le   memcpy_swap64

Functions

static uint32_t rol32 (uint32_t x, int r)
static uint64_t rol64 (uint64_t x, int r)
static uint64_t hi_dword (uint64_t val)
static uint64_t lo_dword (uint64_t val)
static uint64_t mul128 (uint64_t multiplier, uint64_t multiplicand, uint64_t *product_hi)
static uint64_t div_with_reminder (uint64_t dividend, uint32_t divisor, uint32_t *remainder)
static uint32_t div128_32 (uint64_t dividend_hi, uint64_t dividend_lo, uint32_t divisor, uint64_t *quotient_hi, uint64_t *quotient_lo)
void div128_64 (uint64_t dividend_hi, uint64_t dividend_lo, uint64_t divisor, uint64_t *quotient_hi, uint64_t *quotient_lo, uint64_t *remainder_hi, uint64_t *remainder_lo)
static void add64clamp (uint64_t *value, uint64_t add)
static void sub64clamp (uint64_t *value, uint64_t sub)
static uint16_t ident16 (uint16_t x)
static uint32_t ident32 (uint32_t x)
static uint64_t ident64 (uint64_t x)
static uint16_t swap16 (uint16_t x)
static uint32_t swap32 (uint32_t x)
static uint64_t swap64 (uint64_t x)
static void mem_inplace_ident (void *mem UNUSED, size_t n UNUSED)
static void mem_inplace_swap16 (void *mem, size_t n)
static void mem_inplace_swap32 (void *mem, size_t n)
static void mem_inplace_swap64 (void *mem, size_t n)
static void memcpy_ident16 (void *dst, const void *src, size_t n)
static void memcpy_ident32 (void *dst, const void *src, size_t n)
static void memcpy_ident64 (void *dst, const void *src, size_t n)
static void memcpy_swap16 (void *dst, const void *src, size_t n)
static void memcpy_swap32 (void *dst, const void *src, size_t n)
static void memcpy_swap64 (void *dst, const void *src, size_t n)

Macro Definition Documentation

◆ IDENT16

#define IDENT16 ( x)
Value:
((uint16_t) (x))
unsigned short uint16_t
Definition stdint.h:125

◆ IDENT32

#define IDENT32 ( x)
Value:
((uint32_t) (x))
unsigned int uint32_t
Definition stdint.h:126

◆ IDENT64

#define IDENT64 ( x)
Value:
((uint64_t) (x))
unsigned __int64 uint64_t
Definition stdint.h:136

◆ mem_inplace_swap16be [1/2]

#define mem_inplace_swap16be   mem_inplace_ident

◆ mem_inplace_swap16be [2/2]

#define mem_inplace_swap16be   mem_inplace_swap16

◆ mem_inplace_swap16le [1/2]

#define mem_inplace_swap16le   mem_inplace_swap16

◆ mem_inplace_swap16le [2/2]

#define mem_inplace_swap16le   mem_inplace_ident

◆ mem_inplace_swap32be [1/2]

#define mem_inplace_swap32be   mem_inplace_ident

◆ mem_inplace_swap32be [2/2]

#define mem_inplace_swap32be   mem_inplace_swap32

◆ mem_inplace_swap32le [1/2]

#define mem_inplace_swap32le   mem_inplace_swap32

◆ mem_inplace_swap32le [2/2]

#define mem_inplace_swap32le   mem_inplace_ident

◆ mem_inplace_swap64be [1/2]

#define mem_inplace_swap64be   mem_inplace_ident

◆ mem_inplace_swap64be [2/2]

#define mem_inplace_swap64be   mem_inplace_swap64

◆ mem_inplace_swap64le [1/2]

#define mem_inplace_swap64le   mem_inplace_swap64

◆ mem_inplace_swap64le [2/2]

#define mem_inplace_swap64le   mem_inplace_ident

◆ memcpy_swap16be [1/2]

#define memcpy_swap16be   memcpy_ident16

◆ memcpy_swap16be [2/2]

#define memcpy_swap16be   memcpy_swap16

◆ memcpy_swap16le [1/2]

#define memcpy_swap16le   memcpy_swap16

◆ memcpy_swap16le [2/2]

#define memcpy_swap16le   memcpy_ident16

◆ memcpy_swap32be [1/2]

#define memcpy_swap32be   memcpy_ident32

◆ memcpy_swap32be [2/2]

#define memcpy_swap32be   memcpy_swap32

◆ memcpy_swap32le [1/2]

#define memcpy_swap32le   memcpy_swap32

◆ memcpy_swap32le [2/2]

#define memcpy_swap32le   memcpy_ident32

◆ memcpy_swap64be [1/2]

#define memcpy_swap64be   memcpy_ident64

◆ memcpy_swap64be [2/2]

#define memcpy_swap64be   memcpy_swap64

◆ memcpy_swap64le [1/2]

#define memcpy_swap64le   memcpy_swap64

◆ memcpy_swap64le [2/2]

#define memcpy_swap64le   memcpy_ident64

◆ SWAP16

#define SWAP16 ( x)
Value:
((((uint16_t) (x) & 0x00ff) << 8) | \
(((uint16_t) (x) & 0xff00) >> 8))

◆ SWAP16BE [1/2]

#define SWAP16BE   IDENT16

◆ SWAP16BE [2/2]

#define SWAP16BE   SWAP16

◆ swap16be [1/2]

#define swap16be   ident16

◆ swap16be [2/2]

#define swap16be   swap16

◆ SWAP16LE [1/2]

#define SWAP16LE   SWAP16

◆ SWAP16LE [2/2]

#define SWAP16LE   IDENT16

◆ swap16le [1/2]

#define swap16le   swap16

◆ swap16le [2/2]

#define swap16le   ident16

◆ SWAP32

#define SWAP32 ( x)
Value:
((((uint32_t) (x) & 0x000000ff) << 24) | \
(((uint32_t) (x) & 0x0000ff00) << 8) | \
(((uint32_t) (x) & 0x00ff0000) >> 8) | \
(((uint32_t) (x) & 0xff000000) >> 24))

◆ SWAP32BE [1/2]

#define SWAP32BE   IDENT32

◆ SWAP32BE [2/2]

#define SWAP32BE   SWAP32

◆ swap32be [1/2]

#define swap32be   ident32

◆ swap32be [2/2]

#define swap32be   swap32

◆ SWAP32LE [1/2]

#define SWAP32LE   SWAP32

◆ SWAP32LE [2/2]

#define SWAP32LE   IDENT32

◆ swap32le [1/2]

#define swap32le   swap32

◆ swap32le [2/2]

#define swap32le   ident32

◆ SWAP64

#define SWAP64 ( x)
Value:
((((uint64_t) (x) & 0x00000000000000ff) << 56) | \
(((uint64_t) (x) & 0x000000000000ff00) << 40) | \
(((uint64_t) (x) & 0x0000000000ff0000) << 24) | \
(((uint64_t) (x) & 0x00000000ff000000) << 8) | \
(((uint64_t) (x) & 0x000000ff00000000) >> 8) | \
(((uint64_t) (x) & 0x0000ff0000000000) >> 24) | \
(((uint64_t) (x) & 0x00ff000000000000) >> 40) | \
(((uint64_t) (x) & 0xff00000000000000) >> 56))

◆ SWAP64BE [1/2]

#define SWAP64BE   IDENT64

◆ SWAP64BE [2/2]

#define SWAP64BE   SWAP64

◆ swap64be [1/2]

#define swap64be   ident64

◆ swap64be [2/2]

#define swap64be   swap64

◆ SWAP64LE [1/2]

#define SWAP64LE   SWAP64

◆ SWAP64LE [2/2]

#define SWAP64LE   IDENT64

◆ swap64le [1/2]

#define swap64le   swap64

◆ swap64le [2/2]

#define swap64le   ident64

◆ UNUSED

#define UNUSED

Function Documentation

◆ add64clamp()

void add64clamp ( uint64_t * value,
uint64_t add )
inlinestatic

◆ div128_32()

uint32_t div128_32 ( uint64_t dividend_hi,
uint64_t dividend_lo,
uint32_t divisor,
uint64_t * quotient_hi,
uint64_t * quotient_lo )
inlinestatic

◆ div128_64()

void div128_64 ( uint64_t dividend_hi,
uint64_t dividend_lo,
uint64_t divisor,
uint64_t * quotient_hi,
uint64_t * quotient_lo,
uint64_t * remainder_hi,
uint64_t * remainder_lo )

◆ div_with_reminder()

uint64_t div_with_reminder ( uint64_t dividend,
uint32_t divisor,
uint32_t * remainder )
inlinestatic

◆ hi_dword()

uint64_t hi_dword ( uint64_t val)
inlinestatic

◆ ident16()

uint16_t ident16 ( uint16_t x)
inlinestatic

◆ ident32()

uint32_t ident32 ( uint32_t x)
inlinestatic

◆ ident64()

uint64_t ident64 ( uint64_t x)
inlinestatic

◆ lo_dword()

uint64_t lo_dword ( uint64_t val)
inlinestatic

◆ mem_inplace_ident()

void mem_inplace_ident ( void *mem UNUSED,
size_t n UNUSED )
inlinestatic

◆ mem_inplace_swap16()

void mem_inplace_swap16 ( void * mem,
size_t n )
inlinestatic

◆ mem_inplace_swap32()

void mem_inplace_swap32 ( void * mem,
size_t n )
inlinestatic

◆ mem_inplace_swap64()

void mem_inplace_swap64 ( void * mem,
size_t n )
inlinestatic

◆ memcpy_ident16()

void memcpy_ident16 ( void * dst,
const void * src,
size_t n )
inlinestatic

◆ memcpy_ident32()

void memcpy_ident32 ( void * dst,
const void * src,
size_t n )
inlinestatic

◆ memcpy_ident64()

void memcpy_ident64 ( void * dst,
const void * src,
size_t n )
inlinestatic

◆ memcpy_swap16()

void memcpy_swap16 ( void * dst,
const void * src,
size_t n )
inlinestatic

◆ memcpy_swap32()

void memcpy_swap32 ( void * dst,
const void * src,
size_t n )
inlinestatic

◆ memcpy_swap64()

void memcpy_swap64 ( void * dst,
const void * src,
size_t n )
inlinestatic

◆ mul128()

uint64_t mul128 ( uint64_t multiplier,
uint64_t multiplicand,
uint64_t * product_hi )
inlinestatic

◆ rol32()

uint32_t rol32 ( uint32_t x,
int r )
inlinestatic

◆ rol64()

uint64_t rol64 ( uint64_t x,
int r )
inlinestatic

◆ sub64clamp()

void sub64clamp ( uint64_t * value,
uint64_t sub )
inlinestatic

◆ swap16()

uint16_t swap16 ( uint16_t x)
inlinestatic

◆ swap32()

uint32_t swap32 ( uint32_t x)
inlinestatic

◆ swap64()

uint64_t swap64 ( uint64_t x)
inlinestatic