int make_null_stdio(void);
int make_console_stdio(void);
+int dev_urandom(void *p, size_t n);
void random_bytes(void *p, size_t n);
static inline uint64_t random_u64(void) {
_saved_umask_.quit = true)
static inline unsigned u64log2(uint64_t n) {
+#if __SIZEOF_LONG_LONG__ == 8
return (n > 1) ? (unsigned) __builtin_clzll(n) ^ 63U : 0;
+#else
+#error "Wut?"
+#endif
+}
+
+static inline unsigned u32ctz(uint32_t n) {
+#if __SIZEOF_INT__ == 4
+ return __builtin_ctz(n);
+#else
+#error "Wut?"
+#endif
}
static inline bool logind_running(void) {
int getpeercred(int fd, struct ucred *ucred);
int getpeersec(int fd, char **ret);
+int writev_safe(int fd, const struct iovec *w, int j);
+
+int mkostemp_safe(char *pattern, int flags);
int open_tmpfile(const char *path, int flags);
+
+int fd_warn_permissions(const char *path, int fd);