Cygwin: mmap: allow remapping part of an existing anonymous mapping
[newlib-cygwin.git] / newlib / libc / include / ftw.h
blob8de1e1e5cfda90c63afffac29709bb3a24d01647
1 /*
2 * Copyright © 2005-2020 Rich Felker, et al.
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject to
10 * the following conditions:
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 #ifndef _FTW_H
25 #define _FTW_H
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
31 #include <sys/features.h>
32 #include <sys/stat.h>
35 * Valid flags for the 3rd argument to the function that is passed as the
36 * second argument to ftw(3) and nftw(3). Say it three times fast!
38 #define FTW_F 0 /* File. */
39 #define FTW_D 1 /* Directory. */
40 #define FTW_DNR 2 /* Directory without read permission. */
41 #define FTW_DP 3 /* Directory with subdirectories visited. */
42 #define FTW_NS 4 /* Unknown type; stat() failed. */
43 #define FTW_SL 5 /* Symbolic link. */
44 #define FTW_SLN 6 /* Sym link that names a nonexistent file. */
47 * Flags for use as the 4th argument to nftw(3). These may be ORed together.
49 #define FTW_PHYS 0x01 /* Physical walk, don't follow sym links. */
50 #define FTW_MOUNT 0x02 /* The walk does not cross a mount point. */
51 #define FTW_DEPTH 0x04 /* Subdirs visited before the dir itself. */
52 #define FTW_CHDIR 0x08 /* Change to a directory before reading it. */
54 struct FTW {
55 int base;
56 int level;
59 int ftw(const char *, int (*)(const char *, const struct stat *, int), int);
60 int nftw(const char *, int (*)(const char *, const struct stat *, int, struct FTW *), int, int);
62 #ifdef __cplusplus
64 #endif
66 #endif