diff options
Diffstat (limited to 'src/libmdsserver')
-rw-r--r-- | src/libmdsserver/linked-list.h | 6 | ||||
-rw-r--r-- | src/libmdsserver/util.h | 14 |
2 files changed, 15 insertions, 5 deletions
diff --git a/src/libmdsserver/linked-list.h b/src/libmdsserver/linked-list.h index a99204c..b7bcefb 100644 --- a/src/libmdsserver/linked-list.h +++ b/src/libmdsserver/linked-list.h @@ -46,11 +46,7 @@ /** * Sentinel value indicating that the position is unused */ -#if __WORDSIZE == 64 -# define LINKED_LIST_UNUSED (-__INT64_C(9223372036854775807) - 1) -#else -# define LINKED_LIST_UNUSED (-2147483647 - 1) -#endif +#define LINKED_LIST_UNUSED (-((ssize_t)(SIZE_MAX >> 1)) - 1) diff --git a/src/libmdsserver/util.h b/src/libmdsserver/util.h index b86ffd5..543a1c9 100644 --- a/src/libmdsserver/util.h +++ b/src/libmdsserver/util.h @@ -24,6 +24,20 @@ #include <sys/types.h> + +#ifndef __USE_GNU +__attribute__((pure, nonnull)) +static inline void* rawmemchr(const void* str, int chr) +{ + intptr_t str_address = (intptr_t)str; + void* str_nonconst = (void*)str_address; + char* s = str_nonconst; + while ((int)*s++ != chr); + return s - 1; +} +#endif + + /** * Convert a client ID string into a client ID integer * |