moved endian function to misc.c, added sleep_ms(), changed project structure
Minclude/cutils/cutils.h
@@ -2,5 +2,5 @@
#define CUTILS_H
#include <cutils/vector.h>
#include <cutils/dyn_string.h>
#include <cutils/cutils_endian.h>
#include <cutils/misc.h>
#endif //CUTILS_H
Dinclude/cutils/cutils_endian.h-17
@@ -1,17 +0,0 @@
#ifndef CUTILS_ENDIAN_H
#define CUTILS_ENDIAN_H
#include <stdint.h>
#include <string.h>
inline uint32_t ntoh32(uint32_t const net)
{
uint8_t data[4];
memcpy(&data, &net, sizeof(data));
return ((uint32_t) data[3] << 0)
| ((uint32_t) data[2] << 8)
| ((uint32_t) data[1] << 16)
| ((uint32_t) data[0] << 24);
}
#endif //CUTILS_ENDIAN_H
Ainclude/cutils/misc.h
@@ -0,0 +1,15 @@
#ifndef MISC_H
#define MISC_H
#include <stdint.h>
#include <string.h>
#ifdef __unix__
#include <unistd.h>
#endif
#ifdef _WIN32
#include <windows.h>
#endif
void sleep_ms(int milliseconds);
uint32_t ntoh32(uint32_t const net);
#endif //MISC_H
Mmeson.build
@@ -1,6 +1,7 @@
project('cutils', 'c')
CFLAGS = ['-std=c11', '-fstrict-aliasing', '-Wall', '-Wpedantic', '-Wextra']
WARNINGS = ['-Wall', '-Wpedantic', '-Wextra', '-Wnull-dereference', '-Wshadow', '-Wconversion', '-Wstrict-prototypes', '-Wmissing-prototypes', '-Wcast-qual', '-Wstrict-overflow=5', '-Wunreachable-code', '-Wno-unused-parameter' ]
CFLAGS = ['-std=c11', '-fstrict-aliasing', '-fPIC'] + WARNINGS
subdir('include')
subdir('src')
Msrc/meson.build
@@ -1,7 +1,7 @@
src = ['vector.c', 'dyn_string.c']
src = ['vector.c', 'dyn_string.c', 'misc.c']
srctest = src + ['test.c']
lib = shared_library('cutils', src, include_directories : inc)
cutils_dep = declare_dependency(link_with : lib)
cutils_dep = declare_dependency(link_with : lib, include_directories : inc)
executable('test_cutils', srctest, include_directories : inc, c_args: CFLAGS )
Asrc/misc.c
@@ -0,0 +1,22 @@
#include <cutils/misc.h>
void sleep_ms(int milliseconds)
{
#ifdef __unix__
usleep(milliseconds * 1000);
#endif
#ifdef _WIN32
Sleep(milliseconds);
#endif
}
uint32_t ntoh32(uint32_t const net)
{
uint8_t data[4];
memcpy(&data, &net, sizeof(data));
return ((uint32_t) data[3] << 0)
| ((uint32_t) data[2] << 8)
| ((uint32_t) data[1] << 16)
| ((uint32_t) data[0] << 24);
}