#include <sys/time.h>
#include <stdbool.h>
#include <stdlib.h>
+#include <stdio.h>
typedef uint64_t usec_t;
#define NSEC_PER_MSEC 1000000ULL
#define NSEC_PER_USEC 1000ULL
+#define USEC_PER_MINUTE (60ULL*USEC_PER_SEC)
+#define USEC_PER_HOUR (60ULL*USEC_PER_MINUTE)
+#define USEC_PER_DAY (24ULL*USEC_PER_HOUR)
+#define USEC_PER_WEEK (7ULL*USEC_PER_DAY)
+
/* What is interpreted as whitespace? */
#define WHITESPACE " \t\n\r"
#define NEWLINE "\n\r"
bool endswith(const char *s, const char *postfix);
bool startswith(const char *s, const char *prefix);
+bool startswith_no_case(const char *s, const char *prefix);
bool first_word(const char *s, const char *word);
void close_nointr_nofail(int fd);
int parse_boolean(const char *v);
+int parse_usec(const char *t, usec_t *usec);
int safe_atou(const char *s, unsigned *ret_u);
int safe_atoi(const char *s, int *ret_i);
char *path_kill_slashes(char *path);
bool path_startswith(const char *path, const char *prefix);
+bool path_equal(const char *a, const char *b);
char *ascii_strlower(char *path);
int chvt(int vt);
+int read_one_char(FILE *f, char *ret, bool *need_nl);
+int ask(char *ret, const char *replies, const char *text, ...);
+
+int reset_terminal(int fd);
+int open_terminal(const char *name, int mode);
+int acquire_terminal(const char *name, bool fail, bool force);
+int release_terminal(void);
+
+int flush_fd(int fd);
+
+int ignore_signal(int sig);
+
+int close_pipe(int p[]);
+
+ssize_t loop_read(int fd, void *buf, size_t nbytes);
+
+int path_is_mount_point(const char *path);
+
extern char * __progname;
const char *ioprio_class_to_string(int i);