nxt_fs.h (1585:e941d77852d1) nxt_fs.h (1673:883f2f79c2f6)
1/*
2 * Copyright (C) NGINX, Inc.
3 */
4
5#ifndef _NXT_FS_H_INCLUDED_
6#define _NXT_FS_H_INCLUDED_
7
8
1/*
2 * Copyright (C) NGINX, Inc.
3 */
4
5#ifndef _NXT_FS_H_INCLUDED_
6#define _NXT_FS_H_INCLUDED_
7
8
9#ifdef MS_BIND
10#define NXT_MS_BIND MS_BIND
11#else
12#define NXT_MS_BIND 0
13#endif
9typedef enum {
10 NXT_FS_UNKNOWN = 0,
11 NXT_FS_BIND,
12 NXT_FS_TMP,
13 NXT_FS_PROC,
14 NXT_FS_LAST,
15} nxt_fs_type_t;
14
16
15#ifdef MS_REC
16#define NXT_MS_REC MS_BIND
17#else
18#define NXT_MS_REC 0
19#endif
20
17
21#ifdef MS_NOSUID
22#define NXT_MS_NOSUID MS_NOSUID
23#else
24#define NXT_MS_NOSUID 0
25#endif
18typedef enum {
19 NXT_FS_FLAGS_NOSUID = 1 << 0,
20 NXT_FS_FLAGS_NOEXEC = 1 << 1,
21 NXT_FS_FLAGS_NOTIME = 1 << 2,
22 NXT_FS_FLAGS_NODEV = 1 << 3,
23 NXT_FS_FLAGS_RDONLY = 1 << 4,
24} nxt_fs_flags_t;
26
25
27#ifdef MS_NOEXEC
28#define NXT_MS_NOEXEC MS_NOEXEC
29#else
30#define NXT_MS_NOEXEC 0
31#endif
32
26
33#ifdef MS_RELATIME
34#define NXT_MS_RELATIME MS_RELATIME
35#else
36#define NXT_MS_RELATIME 0
37#endif
38
39#ifdef MS_NODEV
40#define NXT_MS_NODEV MS_NODEV
41#else
42#define NXT_MS_NODEV 0
43#endif
44
45
46typedef struct {
27typedef struct {
47 u_char *src;
48 u_char *dst;
49 u_char *fstype;
50 nxt_int_t flags;
51 u_char *data;
52 nxt_uint_t builtin; /* 1-bit */
28 u_char *src;
29 u_char *dst;
30 nxt_fs_type_t type;
31 u_char *name;
32 nxt_fs_flags_t flags;
33 u_char *data;
34 nxt_uint_t builtin; /* 1-bit */
35 nxt_uint_t deps; /* 1-bit */
53} nxt_fs_mount_t;
54
55
56nxt_int_t nxt_fs_mkdir_all(const u_char *dir, mode_t mode);
57nxt_int_t nxt_fs_mount(nxt_task_t *task, nxt_fs_mount_t *mnt);
58void nxt_fs_unmount(const u_char *path);
59
60
61#endif /* _NXT_FS_H_INCLUDED_ */
36} nxt_fs_mount_t;
37
38
39nxt_int_t nxt_fs_mkdir_all(const u_char *dir, mode_t mode);
40nxt_int_t nxt_fs_mount(nxt_task_t *task, nxt_fs_mount_t *mnt);
41void nxt_fs_unmount(const u_char *path);
42
43
44#endif /* _NXT_FS_H_INCLUDED_ */