X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=inline;f=lib%2Flib.h;h=92c891526767e8b7333c55900596a15d266ebbeb;hb=5f2e7e93768113f1e80ac2502e670632762fb696;hp=0a3c17ebe9d2188a8ad4c05e26f63cb5b9a95210;hpb=33f4c9043db1681727e67f88b7dcf0bf8a0e61fc;p=libucw.git diff --git a/lib/lib.h b/lib/lib.h index 0a3c17eb..92c89152 100644 --- a/lib/lib.h +++ b/lib/lib.h @@ -112,9 +112,9 @@ void assert_failed(char *assertion, char *file, int line) NONRET; void assert_failed_noinfo(void) NONRET; #ifdef DEBUG_ASSERTS -#define ASSERT(x) do { if (unlikely(!(x))) assert_failed(#x, __FILE__, __LINE__); } while(0) +#define ASSERT(x) ({ if (unlikely(!(x))) assert_failed(#x, __FILE__, __LINE__); 1; }) #else -#define ASSERT(x) do { if (__builtin_constant_p(x) && !(x)) assert_failed_noinfo(); } while(0) +#define ASSERT(x) ({ if (__builtin_constant_p(x) && !(x)) assert_failed_noinfo(); 1; }) #endif #define COMPILE_ASSERT(name,x) typedef char _COMPILE_ASSERT_##name[!!(x)-1] @@ -193,11 +193,11 @@ uns prev_table_prime(uns x); /* timer.c */ -struct timeval; +timestamp_t get_timestamp(void); -void init_timer(void); -uns get_timer(void); -void get_last_timeval(struct timeval *tv); +void init_timer(timestamp_t *timer); +uns get_timer(timestamp_t *timer); +uns switch_timer(timestamp_t *old, timestamp_t *new); /* regex.c */ @@ -210,6 +210,7 @@ int rx_subst(regex *r, byte *by, byte *src, byte *dest, uns destlen); /* random.c */ +uns random_u32(void); uns random_max(uns max); u64 random_u64(void); u64 random_max_u64(u64 max); @@ -263,14 +264,17 @@ sh_sighandler_t set_signal_handler(int signum, sh_sighandler_t new); /* string.c */ byte *str_unesc(byte *dest, byte *src); +byte *str_format_flags(byte *dest, const byte *fmt, uns flags); /* bigalloc.c */ -void *page_alloc(unsigned int len) LIKE_MALLOC; // allocates a multiple of CPU_PAGE_SIZE bytes with mmap -void page_free(void *start, unsigned int len); -void *page_realloc(void *start, unsigned int old_len, unsigned int new_len); +void *page_alloc(u64 len) LIKE_MALLOC; // allocates a multiple of CPU_PAGE_SIZE bytes with mmap +void *page_alloc_zero(u64 len) LIKE_MALLOC; +void page_free(void *start, u64 len); +void *page_realloc(void *start, u64 old_len, u64 new_len); -void *big_alloc(unsigned int len) LIKE_MALLOC; // allocate a large memory block in the most efficient way available -void big_free(void *start, unsigned int len); +void *big_alloc(u64 len) LIKE_MALLOC; // allocate a large memory block in the most efficient way available +void *big_alloc_zero(u64 len) LIKE_MALLOC; +void big_free(void *start, u64 len); #endif