#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <stdarg.h>
extern int ZuluTime;
void priv_init(int, int, int, char **);
__dead void priv_exec(char *, int, int, int, char **);
int priv_open_tty(const char *);
int priv_open_log(const char *);
FILE *priv_open_utmp(void);
FILE *priv_open_config(void);
void priv_config_parse_done(void);
int priv_config_modified(void);
int priv_getaddrinfo(const char *, const char *, const char *,
struct sockaddr *, size_t);
int priv_getnameinfo(struct sockaddr *, socklen_t, char *, size_t);
#define IOVCNT 7
#define TTYMSGTIME 1
#define TTYMAXDELAY 256
void ttymsg(char *, struct iovec *);
void send_fd(int, int);
int receive_fd(int);
#define ERRBUFSIZE 256
void vlogmsg(int pri, const char *, const char *, va_list);
__dead void die(int);
extern int Debug;
struct ringbuf {
char *buf;
size_t len, start, end;
};
struct ringbuf *ringbuf_init(size_t);
void ringbuf_free(struct ringbuf *);
void ringbuf_clear(struct ringbuf *);
size_t ringbuf_used(struct ringbuf *);
int ringbuf_append_line(struct ringbuf *, char *);
ssize_t ringbuf_to_string(char *, size_t, struct ringbuf *);