libosmogsm  1.11.0.24-ece60.202504282026
Osmocom GSM library
common.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <stdint.h>
4 #include <stdlib.h>
5 #include <string.h>
6 
7 #define CONFIG_CRYPTO_INTERNAL
8 #define TEST_FAIL() 0
9 
10 #define MSG_DEBUG
11 #define wpa_hexdump(x, args...)
12 #define wpa_hexdump_key(x, args...)
13 #define wpa_printf(x, args...)
14 
15 #define os_memcpy(x, y, z) memcpy(x, y, z)
16 #define os_memcmp(x, y, z) memcmp(x, y, z)
17 #define os_memset(x, y, z) memset(x, y, z)
18 #define os_malloc(x) malloc(x)
19 #define os_free(x) free(x)
20 #define os_strlen(x) strlen(x)
21 
22 #define forced_memzero(ptr, len) memset(ptr, 0, len);
23 
24 typedef uint64_t u64;
25 typedef uint32_t u32;
26 typedef uint16_t u16;
27 typedef uint8_t u8;
28 typedef int64_t s64;
29 typedef int32_t s32;
30 typedef int16_t s16;
31 typedef int8_t s8;
32 
33 
34 /* Macros for handling unaligned memory accesses */
35 
36 #define WPA_GET_BE16(a) ((u16) (((a)[0] << 8) | (a)[1]))
37 #define WPA_PUT_BE16(a, val) \
38  do { \
39  (a)[0] = ((u16) (val)) >> 8; \
40  (a)[1] = ((u16) (val)) & 0xff; \
41  } while (0)
42 
43 #define WPA_GET_LE16(a) ((u16) (((a)[1] << 8) | (a)[0]))
44 #define WPA_PUT_LE16(a, val) \
45  do { \
46  (a)[1] = ((u16) (val)) >> 8; \
47  (a)[0] = ((u16) (val)) & 0xff; \
48  } while (0)
49 
50 #define WPA_GET_BE24(a) ((((u32) (a)[0]) << 16) | (((u32) (a)[1]) << 8) | \
51  ((u32) (a)[2]))
52 #define WPA_PUT_BE24(a, val) \
53  do { \
54  (a)[0] = (u8) ((((u32) (val)) >> 16) & 0xff); \
55  (a)[1] = (u8) ((((u32) (val)) >> 8) & 0xff); \
56  (a)[2] = (u8) (((u32) (val)) & 0xff); \
57  } while (0)
58 
59 #define WPA_GET_BE32(a) ((((u32) (a)[0]) << 24) | (((u32) (a)[1]) << 16) | \
60  (((u32) (a)[2]) << 8) | ((u32) (a)[3]))
61 #define WPA_PUT_BE32(a, val) \
62  do { \
63  (a)[0] = (u8) ((((u32) (val)) >> 24) & 0xff); \
64  (a)[1] = (u8) ((((u32) (val)) >> 16) & 0xff); \
65  (a)[2] = (u8) ((((u32) (val)) >> 8) & 0xff); \
66  (a)[3] = (u8) (((u32) (val)) & 0xff); \
67  } while (0)
68 
69 #define WPA_GET_LE32(a) ((((u32) (a)[3]) << 24) | (((u32) (a)[2]) << 16) | \
70  (((u32) (a)[1]) << 8) | ((u32) (a)[0]))
71 #define WPA_PUT_LE32(a, val) \
72  do { \
73  (a)[3] = (u8) ((((u32) (val)) >> 24) & 0xff); \
74  (a)[2] = (u8) ((((u32) (val)) >> 16) & 0xff); \
75  (a)[1] = (u8) ((((u32) (val)) >> 8) & 0xff); \
76  (a)[0] = (u8) (((u32) (val)) & 0xff); \
77  } while (0)
78 
79 #define WPA_GET_BE64(a) ((((u64) (a)[0]) << 56) | (((u64) (a)[1]) << 48) | \
80  (((u64) (a)[2]) << 40) | (((u64) (a)[3]) << 32) | \
81  (((u64) (a)[4]) << 24) | (((u64) (a)[5]) << 16) | \
82  (((u64) (a)[6]) << 8) | ((u64) (a)[7]))
83 #define WPA_PUT_BE64(a, val) \
84  do { \
85  (a)[0] = (u8) (((u64) (val)) >> 56); \
86  (a)[1] = (u8) (((u64) (val)) >> 48); \
87  (a)[2] = (u8) (((u64) (val)) >> 40); \
88  (a)[3] = (u8) (((u64) (val)) >> 32); \
89  (a)[4] = (u8) (((u64) (val)) >> 24); \
90  (a)[5] = (u8) (((u64) (val)) >> 16); \
91  (a)[6] = (u8) (((u64) (val)) >> 8); \
92  (a)[7] = (u8) (((u64) (val)) & 0xff); \
93  } while (0)
94 
95 #define WPA_GET_LE64(a) ((((u64) (a)[7]) << 56) | (((u64) (a)[6]) << 48) | \
96  (((u64) (a)[5]) << 40) | (((u64) (a)[4]) << 32) | \
97  (((u64) (a)[3]) << 24) | (((u64) (a)[2]) << 16) | \
98  (((u64) (a)[1]) << 8) | ((u64) (a)[0]))
99 
100 
101 #define __must_check
int64_t s64
Definition: common.h:28
uint64_t u64
Definition: common.h:24
uint8_t u8
Definition: common.h:27
int8_t s8
Definition: common.h:31
int16_t s16
Definition: common.h:30
uint16_t u16
Definition: common.h:26
int32_t s32
Definition: common.h:29
uint32_t u32
Definition: common.h:25