30 #include "../my_config.h"
40 using int_tools_bitfield =
unsigned char[8];
42 extern void int_tools_swap_bytes(
unsigned char &a,
unsigned char &b);
43 extern void int_tools_swap_bytes(
unsigned char *a, U_I size);
44 extern void int_tools_expand_byte(
unsigned char a, int_tools_bitfield &bit);
45 extern void int_tools_contract_byte(
const int_tools_bitfield &b,
unsigned char & a);
49 template <
class T>
extern T int_tools_rotate_right_one_bit(T v)
51 bool retenue = (v & 1) != 0;
55 v |= T(1) << (
sizeof(v)*8 - 1);
60 template <
class T>
extern T int_tools_maxof_aggregate(T unused) { unused = 0; unused = ~unused; unused = unused > 0 ? unused : ~int_tools_rotate_right_one_bit(T(1));
return unused; }
62 template <
class B>
static B int_tools_higher_power_of_2(B val)
are defined here basic integer types that tend to be portable
libdar namespace encapsulate all libdar symbols