aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmdsserver
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/libmdsserver/linked-list.h6
-rw-r--r--src/libmdsserver/util.h14
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
*