extern void *buf_unappend(struct buffer_if *buf, int32_t amount);
extern void *buf_unprepend(struct buffer_if *buf, int32_t amount);
+static inline int32_t buf_remaining_space(const struct buffer_if *buf)
+{
+ return (buf->base + buf->alloclen) - buf->start;
+}
+
extern void buffer_readonly_view(struct buffer_if *n, const void*, int32_t len);
extern void buffer_readonly_clone(struct buffer_if *n, const struct buffer_if*);
/* Caller must only use unappend, unprepend et al. on n.
extern struct log_if *init_log(list_t *loglist);
+extern void send_nak(const struct comm_addr *dest, uint32_t our_index,
+ uint32_t their_index, uint32_t msgtype,
+ struct buffer_if *buf, const char *logwhy);
+
+extern int consttime_memeq(const void *s1, const void *s2, size_t n);
+
+#define MINMAX(ae,be,op) ({ \
+ typeof((ae)) a=(ae); \
+ typeof((be)) b=(be); \
+ a op b ? a : b; \
+ })
+#define MAX(a,b) MINMAX((a),(b),>)
+#define MIN(a,b) MINMAX((a),(b),<)
+
#endif /* util_h */