blob: 4c036022614203e7c8ac4860a74ebdc3c1362560 [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/*
2 * Copyright (C) 2008 The Android Open Source Project
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in
12 * the documentation and/or other materials provided with the
13 * distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
18 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 */
Elliott Hughes1f1a51a2016-03-31 17:05:30 -070028
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080029#ifndef _MNTENT_H_
30#define _MNTENT_H_
31
Elliott Hughes36fa67b2013-06-05 17:51:20 -070032#include <sys/cdefs.h>
Elliott Hughes414dd2d2024-10-16 14:48:30 +000033
34#include <stdio.h>
JP Abgrall4e9cb032014-01-09 14:06:20 -080035#include <paths.h> /* for _PATH_MOUNTED */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080036
JP Abgrall4e9cb032014-01-09 14:06:20 -080037#define MOUNTED _PATH_MOUNTED
Elliott Hughes1f1a51a2016-03-31 17:05:30 -070038
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080039#define MNTTYPE_IGNORE "ignore"
Elliott Hughes1f1a51a2016-03-31 17:05:30 -070040#define MNTTYPE_NFS "nfs"
Elliott Hughes1f1a51a2016-03-31 17:05:30 -070041#define MNTTYPE_SWAP "swap"
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080042
Elliott Hughes5dd13d02016-03-31 18:20:01 -070043#define MNTOPT_DEFAULTS "defaults"
44#define MNTOPT_NOAUTO "noauto"
45#define MNTOPT_NOSUID "nosuid"
46#define MNTOPT_RO "ro"
47#define MNTOPT_RW "rw"
48#define MNTOPT_SUID "suid"
49
Elliott Hugheseb664e22014-05-13 10:44:07 -070050struct mntent {
zijunzhao424cb2c2023-03-11 01:52:28 +000051 char* _Nullable mnt_fsname;
52 char* _Nullable mnt_dir;
53 char* _Nullable mnt_type;
54 char* _Nullable mnt_opts;
Elliott Hugheseb664e22014-05-13 10:44:07 -070055 int mnt_freq;
56 int mnt_passno;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080057};
58
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080059__BEGIN_DECLS
60
Elliott Hughes655e4302023-06-16 12:39:33 -070061int endmntent(FILE* _Nullable __fp);
zijunzhao424cb2c2023-03-11 01:52:28 +000062struct mntent* _Nullable getmntent(FILE* _Nonnull __fp);
Elliott Hughes655e4302023-06-16 12:39:33 -070063struct mntent* _Nullable getmntent_r(FILE* _Nonnull __fp, struct mntent* _Nonnull __entry, char* _Nonnull __buf, int __size);
64FILE* _Nullable setmntent(const char* _Nonnull __filename, const char* _Nonnull __type);
Dan Albert02ce4012024-10-25 19:13:49 +000065
66#if __BIONIC_AVAILABILITY_GUARD(26)
zijunzhao424cb2c2023-03-11 01:52:28 +000067char* _Nullable hasmntopt(const struct mntent* _Nonnull __entry, const char* _Nonnull __option) __INTRODUCED_IN(26);
Dan Albert02ce4012024-10-25 19:13:49 +000068#endif /* __BIONIC_AVAILABILITY_GUARD(26) */
69
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080070
71__END_DECLS
72
73#endif