/* $Cambridge: hermes/src/prayer/accountd/os.h,v 1.2 2004/10/01 12:42:27 dpc22 Exp $ */
/************************************************
 *    Prayer - a Webmail Interface              *
 ************************************************/

/* Copyright (c) University of Cambridge 2000 - 2002 */
/* See the file NOTICE for conditions of use and distribution. */

/* External Interfere Prototypes for os.c */

BOOL os_socketpair(int *sockfd);

int os_connect_unix_socket(char *name);
int os_connect_inet_socket(char *host, unsigned long port);

int os_bind_unix_socket(char *name);
int os_bind_inet_socket(unsigned long port);
int os_accept_unix(int sockfd);
int os_accept_inet(int sockfd, struct ipaddr *ipaddr);

BOOL os_run(char *cmdline, int *fdp, int *childpidp);
BOOL os_run_pty(char *cmdline, int *fdp, int *childpidp);

void os_child_reaper();
pid_t os_waitpid_nohang();

BOOL os_signal_child_init(void (*fn) ());
BOOL os_signal_child_clear(void);
BOOL os_signal_alarm_init(void (*fn) ());
BOOL os_signal_alarm_clear(void);

BOOL os_lock_exclusive(int fd);
BOOL os_lock_shared(int fd);
BOOL os_lock_release(int fd);

BOOL os_lock_exclusive_allow_break(int fd);
BOOL os_lock_shared_allow_break(int fd);
BOOL os_lock_release_allow_break(int fd);

BOOL os_random(struct config *config, void *buffer, unsigned long count);


syntax highlighted by Code2HTML, v. 0.9.1