]> git.ipfire.org Git - thirdparty/util-linux.git/blame - mount/sundries.h
Imported from util-linux-2.8 tarball.
[thirdparty/util-linux.git] / mount / sundries.h
CommitLineData
6dbe3af9 1/*
2b6fc908 2 * sundries.h
6dbe3af9 3 * Support function prototypes. Functions are in sundries.c.
6dbe3af9
KZ
4 */
5
6#include <sys/types.h>
6dbe3af9 7#include <fcntl.h>
6dbe3af9 8#include <limits.h>
6dbe3af9
KZ
9#include <signal.h>
10#include <stdarg.h>
11#include <stdlib.h>
2b6fc908 12#if !defined(bool_t) && !defined(__GLIBC__)
fd6b7a7f 13#include <rpc/types.h>
726f69e2
KZ
14#endif
15
726f69e2 16extern int mount_quiet;
fd6b7a7f 17extern int verbose;
2b6fc908 18extern int sloppy;
6dbe3af9
KZ
19
20#define streq(s, t) (strcmp ((s), (t)) == 0)
21
22
6dbe3af9
KZ
23/* String list data structure. */
24typedef struct string_list
25{
26 char *hd;
27 struct string_list *tl;
28} *string_list;
29
30#define car(p) ((p) -> hd)
31#define cdr(p) ((p) -> tl)
32
33string_list cons (char *a, const string_list);
34
6dbe3af9
KZ
35/* Functions in sundries.c that are used in mount.c and umount.c */
36void block_signals (int how);
37char *canonicalize (const char *path);
38char *realpath (const char *path, char *resolved_path);
6dbe3af9 39void error (const char *fmt, ...);
6dbe3af9 40int matching_type (const char *type, string_list types);
6dbe3af9 41string_list parse_list (char *strings);
6dbe3af9
KZ
42void *xmalloc (size_t size);
43char *xstrdup (const char *s);
fd6b7a7f
KZ
44char *xstrndup (const char *s, int n);
45char *xstrconcat2 (const char *, const char *);
46char *xstrconcat3 (const char *, const char *, const char *);
47char *xstrconcat4 (const char *, const char *, const char *, const char *);
6dbe3af9
KZ
48
49/* Here is some serious cruft. */
50#ifdef __GNUC__
51#if defined(__GNUC_MINOR__) && __GNUC__ == 2 && __GNUC_MINOR__ >= 5
52void die (int errcode, const char *fmt, ...) __attribute__ ((noreturn));
53#else /* GNUC < 2.5 */
54void volatile die (int errcode, const char *fmt, ...);
55#endif /* GNUC < 2.5 */
56#else /* !__GNUC__ */
57void die (int errcode, const char *fmt, ...);
58#endif /* !__GNUC__ */
59
60#ifdef HAVE_NFS
61int nfsmount (const char *spec, const char *node, int *flags,
2b6fc908 62 char **orig_opts, char **opt_args, int running_bg);
6dbe3af9
KZ
63#endif
64
fd6b7a7f
KZ
65/* exit status - bits below are ORed */
66#define EX_USAGE 1 /* incorrect invocation or permission */
67#define EX_SYSERR 2 /* out of memory, cannot fork, ... */
68#define EX_SOFTWARE 4 /* internal mount bug or wrong version */
69#define EX_USER 8 /* user interrupt */
70#define EX_FILEIO 16 /* problems writing, locking, ... mtab/fstab */
71#define EX_FAIL 32 /* mount failure */
72#define EX_SOMEOK 64 /* some mount succeeded */
2b6fc908
KZ
73
74#define EX_BG 256 /* retry in background (internal only) */