libosmocore
0.6.3
Osmocom core library
Main Page
Modules
Data Structures
Files
File List
Globals
utils.h
Go to the documentation of this file.
1
#ifndef OSMOCORE_UTIL_H
2
#define OSMOCORE_UTIL_H
3
4
#include <osmocom/core/backtrace.h>
5
13
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
14
15
#define OSMO_MAX(a, b) ((a) >= (b) ? (a) : (b))
16
17
#define OSMO_MIN(a, b) ((a) >= (b) ? (b) : (a))
18
19
#include <stdint.h>
20
22
struct
value_string
{
23
unsigned
int
value
;
24
const
char
*
str
;
25
};
26
27
const
char
*
get_value_string
(
const
struct
value_string
*vs, uint32_t val);
28
29
int
get_string_value
(
const
struct
value_string
*vs,
const
char
*str);
30
31
char
osmo_bcd2char
(uint8_t bcd);
32
/* only works for numbers in ascci */
33
uint8_t
osmo_char2bcd
(
char
c);
34
35
int
osmo_hexparse
(
const
char
*str, uint8_t *b,
int
max_len);
36
37
char
*
osmo_ubit_dump
(
const
uint8_t *bits,
unsigned
int
len);
38
char
*
osmo_hexdump
(
const
unsigned
char
*buf,
int
len);
39
char
*
osmo_hexdump_nospc
(
const
unsigned
char
*buf,
int
len);
40
char
*osmo_osmo_hexdump_nospc(
const
unsigned
char
*buf,
int
len) __attribute__((__deprecated__));
41
42
#define osmo_static_assert(exp, name) int dummy##name [(exp) ? 1 : -1] __attribute__((__unused__));
43
44
void
osmo_str2lower(
char
*out,
const
char
*in);
45
void
osmo_str2upper(
char
*out,
const
char
*in);
46
47
#define OSMO_SNPRINTF_RET(ret, rem, offset, len) \
48
do { \
49
len += ret; \
50
if (ret > rem) \
51
ret = rem; \
52
offset += ret; \
53
rem -= ret; \
54
} while (0)
55
56
#define OSMO_ASSERT(exp) \
57
if (!(exp)) { \
58
fprintf(stderr, "Assert failed %s %s:%d\n", #exp, __FILE__, __LINE__); \
59
osmo_generate_backtrace(); \
60
abort(); \
61
}
62
63
66
#endif
include
osmocom
core
utils.h
Generated on Fri Aug 23 2013 20:51:42 for libosmocore by
1.8.1.2