X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Futil.h;h=9e7b88f06825866358adca046f55108a6163b40a;hb=45a7de56bbcb2adfabf2082b1133e768777d44d6;hp=dad7b7c4047523f9cb71653e29260ee16272a533;hpb=bbb18ba723a1d82405961e4dd351a82758d633af;p=openvswitch diff --git a/lib/util.h b/lib/util.h index dad7b7c4..9e7b88f0 100644 --- a/lib/util.h +++ b/lib/util.h @@ -52,10 +52,19 @@ extern const char *program_name; +/* Returns the number of elements in ARRAY. */ #define ARRAY_SIZE(ARRAY) (sizeof ARRAY / sizeof *ARRAY) + +/* Returns X / Y, rounding up. X must be nonnegative to round correctly. */ #define DIV_ROUND_UP(X, Y) (((X) + ((Y) - 1)) / (Y)) + +/* Returns X rounded up to the nearest multiple of Y. */ #define ROUND_UP(X, Y) (DIV_ROUND_UP(X, Y) * (Y)) + +/* Returns X rounded down to the nearest multiple of Y. */ #define ROUND_DOWN(X, Y) ((X) / (Y) * (Y)) + +/* Returns true if X is a power of 2, otherwise false. */ #define IS_POW2(X) ((X) && !((X) & ((X) - 1))) #ifndef MIN @@ -89,6 +98,7 @@ void ovs_print_version(char *date, char *time, void out_of_memory(void) NO_RETURN; void *xmalloc(size_t) MALLOC_LIKE; void *xcalloc(size_t, size_t) MALLOC_LIKE; +void *xzalloc(size_t) MALLOC_LIKE; void *xrealloc(void *, size_t); void *xmemdup(const void *, size_t) MALLOC_LIKE; char *xmemdup0(const char *, size_t) MALLOC_LIKE; @@ -111,6 +121,12 @@ bool str_to_uint(const char *, int base, unsigned int *); bool str_to_ulong(const char *, int base, unsigned long *); bool str_to_ullong(const char *, int base, unsigned long long *); +bool str_to_double(const char *, double *); + +int hexit_value(int c); + +char *dir_name(const char *file_name); + #ifdef __cplusplus } #endif