1 /** 2 * @file re_sys.h Interface to system module 3 * 4 * Copyright (C) 2010 Creytiv.com 5 */ 6 7 8 #ifndef VERSION 9 #define VERSION "?" 10 #endif 11 12 /** 13 * @def ARCH 14 * 15 * Architecture 16 */ 17 #ifndef ARCH 18 #define ARCH "?" 19 #endif 20 21 /** 22 * @def OS 23 * 24 * Operating System 25 */ 26 #ifndef OS 27 #ifdef WIN32 28 #define OS "win32" 29 #else 30 #define OS "?" 31 #endif 32 #endif 33 34 struct re_printf; 35 int sys_rel_get(uint32_t *rel, uint32_t *maj, uint32_t *min, 36 uint32_t *patch); 37 int sys_kernel_get(struct re_printf *pf, void *unused); 38 int sys_build_get(struct re_printf *pf, void *unused); 39 const char *sys_arch_get(void); 40 const char *sys_os_get(void); 41 const char *sys_libre_version_get(void); 42 const char *sys_username(void); 43 int sys_coredump_set(bool enable); 44 int sys_daemon(void); 45 void sys_usleep(unsigned int us); 46 sys_msleep(unsigned int ms)47static inline void sys_msleep(unsigned int ms) 48 { 49 sys_usleep(ms * 1000); 50 } 51 52 53 uint16_t sys_htols(uint16_t v); 54 uint32_t sys_htoll(uint32_t v); 55 uint16_t sys_ltohs(uint16_t v); 56 uint32_t sys_ltohl(uint32_t v); 57 uint64_t sys_htonll(uint64_t v); 58 uint64_t sys_ntohll(uint64_t v); 59 60 61 /* Random */ 62 void rand_init(void); 63 uint16_t rand_u16(void); 64 uint32_t rand_u32(void); 65 uint64_t rand_u64(void); 66 char rand_char(void); 67 void rand_str(char *str, size_t size); 68 void rand_bytes(uint8_t *p, size_t size); 69 70 71 /* File-System */ 72 int fs_mkdir(const char *path, uint16_t mode); 73 int fs_gethome(char *path, size_t sz); 74