/* Get the number of elements of an array type. */
#define ARRAY_LEN(array) (sizeof(array) / sizeof((array)[0]))
+/* Round 'v' up to the next 'alignment'-byte aligned boundary. 'alignment' must
+ * be a power of 2. */
+#define ALIGN(v, alignment) (((v) + ((alignment) - 1)) & ~((alignment) - 1))
+
/* Maximum number of bytes that can be allocated on the stack.
*
* Note: this isn't a hard bound on the stack space used, since this is just for
mempcpy(void *dst, const void *src, size_t n);
#endif
-extern size_t
-utf16le_strlen(const utf16lechar *s);
-
extern void
randomize_byte_array(u8 *p, size_t n);
return n * 0x9e37fffffffc0001ULL;
}
+static inline int
+cmp_u32(u32 n1, u32 n2)
+{
+ if (n1 < n2)
+ return -1;
+ if (n1 > n2)
+ return 1;
+ return 0;
+}
+
static inline int
cmp_u64(u64 n1, u64 n2)
{
return 0;
}
+/************************
+ * System information
+ ************************/
+
+unsigned
+get_available_cpus(void);
+
+u64
+get_available_memory(void);
+
#endif /* _WIMLIB_UTIL_H */