williamr@2: /* $OpenBSD: ftw.h,v 1.1 2003/07/21 21:13:18 millert Exp $ */ williamr@2: williamr@2: /* williamr@2: * Copyright (c) 2003 Todd C. Miller williamr@2: * © Portions copyright (c) 2007 Symbian Software Ltd. All rights reserved. williamr@2: * williamr@2: * Permission to use, copy, modify, and distribute this software for any williamr@2: * purpose with or without fee is hereby granted, provided that the above williamr@2: * copyright notice and this permission notice appear in all copies. williamr@2: * williamr@2: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES williamr@2: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF williamr@2: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR williamr@2: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES williamr@2: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN williamr@2: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF williamr@2: * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. williamr@2: * williamr@2: * Sponsored in part by the Defense Advanced Research Projects williamr@2: * Agency (DARPA) and Air Force Research Laboratory, Air Force williamr@2: * Materiel Command, USAF, under agreement number F39502-99-1-0512. williamr@2: * williamr@2: * $FreeBSD: src/include/ftw.h,v 1.2 2004/08/24 13:00:54 tjr Exp $ williamr@2: */ williamr@2: williamr@2: #ifndef _FTW_H williamr@2: #define _FTW_H williamr@2: williamr@2: #ifdef __cplusplus williamr@2: extern "C" { williamr@2: #endif williamr@2: #include williamr@2: #include williamr@2: williamr@2: /* williamr@2: * Valid flags for the 3rd argument to the function that is passed as the williamr@2: * second argument to ftw(3) and nftw(3). Say it three times fast! williamr@2: */ williamr@2: #define FTW_F 0 /* File. */ williamr@2: #define FTW_D 1 /* Directory. */ williamr@2: #define FTW_DNR 2 /* Directory without read permission. */ williamr@2: #define FTW_DP 3 /* Directory with subdirectories visited. */ williamr@2: #define FTW_NS 4 /* Unknown type; stat() failed. */ williamr@2: #define FTW_SL 5 /* Symbolic link. */ williamr@2: #define FTW_SLN 6 /* Sym link that names a nonexistent file. */ williamr@2: williamr@2: /* williamr@2: * Flags for use as the 4th argument to nftw(3). These may be ORed together. williamr@2: */ williamr@2: #define FTW_PHYS 0x01 /* Physical walk, don't follow sym links. */ williamr@2: #define FTW_MOUNT 0x02 /* The walk does not cross a mount point. */ williamr@2: #define FTW_DEPTH 0x04 /* Subdirs visited before the dir itself. */ williamr@2: #define FTW_CHDIR 0x08 /* Change to a directory before reading it. */ williamr@2: williamr@2: struct FTW { williamr@2: int base; williamr@2: int level; williamr@2: }; williamr@2: williamr@2: __BEGIN_DECLS williamr@2: williamr@2: IMPORT_C int ftw(const char *, int (*)(const char *, const struct stat *, int), int); williamr@2: williamr@2: #ifndef __SYMBIAN32__ williamr@2: IMPORT_C int nftw(const char *, int (*)(const char *, const struct stat *, int, williamr@2: struct FTW *), int, int); williamr@2: #endif williamr@2: __END_DECLS williamr@2: williamr@2: #ifdef __cplusplus williamr@2: } williamr@2: #endif williamr@2: #endif /* !_FTW_H */