| @@ -1,70 +1,72 @@ | | | @@ -1,70 +1,72 @@ |
1 | /* $NetBSD: fuse_opt.h,v 1.5 2009/04/19 22:25:29 christos Exp $ */ | | 1 | /* $NetBSD: fuse_opt.h,v 1.6 2016/01/22 22:39:29 dholland Exp $ */ |
2 | | | 2 | |
3 | /* | | 3 | /* |
4 | * Copyright (c) 2007 Alistair Crooks. All rights reserved. | | 4 | * Copyright (c) 2007 Alistair Crooks. All rights reserved. |
5 | * | | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions | | 7 | * modification, are permitted provided that the following conditions |
8 | * are met: | | 8 | * are met: |
9 | * 1. Redistributions of source code must retain the above copyright | | 9 | * 1. Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * 2. Redistributions in binary form must reproduce the above copyright | | 11 | * 2. Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | | 13 | * documentation and/or other materials provided with the distribution. |
14 | * 3. The name of the author may not be used to endorse or promote | | 14 | * 3. The name of the author may not be used to endorse or promote |
15 | * products derived from this software without specific prior written | | 15 | * products derived from this software without specific prior written |
16 | * permission. | | 16 | * permission. |
17 | * | | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS | | 18 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS |
19 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | | 19 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
21 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY | | 21 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY |
22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
23 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE | | 23 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
24 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | | 24 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
25 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | | 25 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
26 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | | 26 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
27 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | | 27 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
28 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | | 28 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 | */ | | 29 | */ |
30 | | | 30 | |
31 | #ifndef _FUSE_OPT_H_ | | 31 | #ifndef _FUSE_OPT_H_ |
32 | #define _FUSE_OPT_H_ | | 32 | #define _FUSE_OPT_H_ |
33 | | | 33 | |
| | | 34 | #include <stdint.h> |
| | | 35 | |
34 | #ifdef __cplusplus | | 36 | #ifdef __cplusplus |
35 | extern "C" { | | 37 | extern "C" { |
36 | #endif | | 38 | #endif |
37 | | | 39 | |
38 | enum { | | 40 | enum { |
39 | FUSE_OPT_KEY_OPT = -1, | | 41 | FUSE_OPT_KEY_OPT = -1, |
40 | FUSE_OPT_KEY_NONOPT = -2, | | 42 | FUSE_OPT_KEY_NONOPT = -2, |
41 | FUSE_OPT_KEY_KEEP = -3, | | 43 | FUSE_OPT_KEY_KEEP = -3, |
42 | FUSE_OPT_KEY_DISCARD = -4 | | 44 | FUSE_OPT_KEY_DISCARD = -4 |
43 | }; | | 45 | }; |
44 | | | 46 | |
45 | struct fuse_opt { | | 47 | struct fuse_opt { |
46 | const char *templ; | | 48 | const char *templ; |
47 | int32_t offset; | | 49 | int32_t offset; |
48 | int32_t value; | | 50 | int32_t value; |
49 | }; | | 51 | }; |
50 | | | 52 | |
51 | #define FUSE_OPT_KEY(templ, key) { templ, -1U, key } | | 53 | #define FUSE_OPT_KEY(templ, key) { templ, -1U, key } |
52 | #define FUSE_OPT_END { .templ = NULL } | | 54 | #define FUSE_OPT_END { .templ = NULL } |
53 | | | 55 | |
54 | typedef int (*fuse_opt_proc_t)(void *, const char *, int, struct fuse_args *); | | 56 | typedef int (*fuse_opt_proc_t)(void *, const char *, int, struct fuse_args *); |
55 | | | 57 | |
56 | | | 58 | |
57 | int fuse_opt_add_arg(struct fuse_args *, const char *); | | 59 | int fuse_opt_add_arg(struct fuse_args *, const char *); |
58 | struct fuse_args *fuse_opt_deep_copy_args(int, char **); | | 60 | struct fuse_args *fuse_opt_deep_copy_args(int, char **); |
59 | void fuse_opt_free_args(struct fuse_args *); | | 61 | void fuse_opt_free_args(struct fuse_args *); |
60 | int fuse_opt_insert_arg(struct fuse_args *, int, const char *); | | 62 | int fuse_opt_insert_arg(struct fuse_args *, int, const char *); |
61 | int fuse_opt_add_opt(char **, const char *); | | 63 | int fuse_opt_add_opt(char **, const char *); |
62 | int fuse_opt_parse(struct fuse_args *, void *, | | 64 | int fuse_opt_parse(struct fuse_args *, void *, |
63 | const struct fuse_opt *, fuse_opt_proc_t); | | 65 | const struct fuse_opt *, fuse_opt_proc_t); |
64 | int fuse_opt_match(const struct fuse_opt *, const char *); | | 66 | int fuse_opt_match(const struct fuse_opt *, const char *); |
65 | | | 67 | |
66 | #ifdef __cplusplus | | 68 | #ifdef __cplusplus |
67 | } | | 69 | } |
68 | #endif | | 70 | #endif |
69 | | | 71 | |
70 | #endif /* _FUSE_OPT_H_ */ | | 72 | #endif /* _FUSE_OPT_H_ */ |