+
+/* random.c */
+
+uns random_max(uns);
+
+/* mmap.c */
+
+void *mmap_file(byte *name, unsigned *len, int writeable);
+void munmap_file(void *start, unsigned len);
+
+/* partmap.c */
+
+struct partmap;
+struct partmap *partmap_open(byte *name, int writeable);
+void *partmap_map(struct partmap *p, sh_off_t offset, uns size);
+void partmap_close(struct partmap *p);
+sh_off_t partmap_size(struct partmap *p);
+
+/* proctitle.c */
+
+void setproctitle_init(int argc, char **argv);
+void setproctitle(char *msg, ...) __attribute__((format(printf,1,2)));
+
+/* randomkey.c */
+
+void randomkey(byte *buf, uns size);
+
+/* exitstatus.c */
+
+#define EXIT_STATUS_MSG_SIZE 32
+int format_exit_status(byte *msg, int stat);
+
+/* runcmd.c */
+
+int run_command(byte *cmd, ...);
+void NONRET exec_command(byte *cmd, ...);
+void echo_command(byte *buf, int size, byte *cmd, ...);
+int run_command_v(byte *cmd, va_list args);
+void NONRET exec_command_v(byte *cmd, va_list args);
+void echo_command_v(byte *buf, int size, byte *cmd, va_list args);
+
+/* carefulio.c */
+
+int careful_read(int fd, void *buf, int len);
+int careful_write(int fd, void *buf, int len);
+
+/* sighandler.c */
+
+typedef int (*sh_sighandler_t)(int);
+ /* obtains signum, returns nonzero if abort() should be called */
+extern sh_sighandler_t signal_handler[];
+
+struct sigaction;
+void handle_signal(int signum, struct sigaction *oldact);
+void unhandle_signal(int signum, struct sigaction *oldact);
+
+#endif