17372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh/* $NetBSD: ftw.h,v 1.1 2005/12/30 23:07:33 agc Exp $ */ 27372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh 37372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh/* From OpenBSD: ftw.h,v 1.1 2003/07/21 21:13:18 millert Exp */ 47372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh 57372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh/* 67372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * Copyright (c) 2003 Todd C. Miller <Todd.Miller@courtesan.com> 77372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * 87372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * Permission to use, copy, modify, and distribute this software for any 97372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * purpose with or without fee is hereby granted, provided that the above 107372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * copyright notice and this permission notice appear in all copies. 117372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * 127372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 137372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 147372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 157372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 167372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 177372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 187372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 197372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * 207372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * Sponsored in part by the Defense Advanced Research Projects 217372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * Agency (DARPA) and Air Force Research Laboratory, Air Force 227372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * Materiel Command, USAF, under agreement number F39502-99-1-0512. 237372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh */ 247372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh 257372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#ifndef _FTW_H 267372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define _FTW_H 277372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh 287372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#include <sys/types.h> 297372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#include <sys/stat.h> 307372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh 317372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh/* 327372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * Valid flags for the 3rd argument to the function that is passed as the 337372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * second argument to ftw(3) and nftw(3). Say it three times fast! 347372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh */ 357372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define FTW_F 0 /* File. */ 367372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define FTW_D 1 /* Directory. */ 377372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define FTW_DNR 2 /* Directory without read permission. */ 387372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define FTW_DP 3 /* Directory with subdirectories visited. */ 397372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define FTW_NS 4 /* Unknown type; stat() failed. */ 407372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define FTW_SL 5 /* Symbolic link. */ 417372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define FTW_SLN 6 /* Sym link that names a nonexistent file. */ 427372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh 437372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh/* 447372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh * Flags for use as the 4th argument to nftw(3). These may be ORed together. 457372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh */ 467372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define FTW_PHYS 0x01 /* Physical walk, don't follow sym links. */ 477372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define FTW_MOUNT 0x02 /* The walk does not cross a mount point. */ 487372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define FTW_DEPTH 0x04 /* Subdirs visited before the dir itself. */ 497372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#define FTW_CHDIR 0x08 /* Change to a directory before reading it. */ 507372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh 517372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsiehstruct FTW { 527372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh int base; 537372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh int level; 547372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh}; 557372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh 567372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh__BEGIN_DECLS 577372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsiehint ftw(const char *, int (*)(const char *, const struct stat *, int), int); 587372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsiehint nftw(const char *, int (*)(const char *, const struct stat *, int, 597372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh struct FTW *), int, int); 60b193073d2e5369d848d2135d5a2f642f3242cf0eAndrew Hsiehint ftw64(const char *, int (*)(const char *, const struct stat64 *, int), int); 61b193073d2e5369d848d2135d5a2f642f3242cf0eAndrew Hsiehint nftw64(const char *, int (*)(const char *, const struct stat64 *, int, 62b193073d2e5369d848d2135d5a2f642f3242cf0eAndrew Hsieh struct FTW *), int, int); 637372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh__END_DECLS 647372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh 657372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2cAndrew Hsieh#endif /* !_FTW_H */ 66