/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 1985-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* David Korn <[email protected]> *18* Phong Vo <[email protected]> *19* *20***********************************************************************/21#pragma prototyped22/*23* Phong Vo24* Glenn Fowler25* AT&T Research26*27* ast ftwalk interface definitions28* ftwalk was the initial improvement on ftw and nftw29* which formed the basis for the POSIX fts proposal30*31* NOTE: this file is in cahoots with the fts implementation32*/3334#ifndef _FTWALK_H35#define _FTWALK_H3637#define fts_info info38#define fts_level level39#define fts_link link40#define fts_name name41#define fts_namelen namelen42#define fts_parent parent43#define fts_path path44#define fts_pathlen pathlen45#define _fts_status status46#define _fts_statb statb4748#define FTSENT Ftw_t /* <fts.h> internal */49#define Ftsent FTW /* <fts.h> internal */5051#define _FTSENT_LOCAL_PRIVATE_ /* <fts.h> internal */ \52union \53{ \54long number; /* local numeric value */ \55void* pointer; /* local pointer value */ \56} local;5758#include <fts.h>5960/*61* ftwalk() argument flags62*/6364#define FTW_CANON FTS_CANON65#define FTW_CHILDREN (FTS_USER<<0)66#define FTW_DELAY FTS_NOSTAT67#define FTW_DOT FTS_NOCHDIR68#define FTW_META FTS_META69#define FTW_MOUNT FTS_XDEV70#define FTW_MULTIPLE FTS_ONEPATH71#define FTW_NOSEEDOTDIR FTS_NOSEEDOTDIR72#define FTW_PHYSICAL FTS_PHYSICAL73#define FTW_POST (FTS_USER<<1)74#define FTW_SEEDOTDIR FTS_SEEDOTDIR75#define FTW_TOP FTS_TOP76#define FTW_TWICE (FTS_USER<<2)77#define FTW_USER (FTS_USER<<3)7879/*80* Ftw_t.info type bits81*/8283#define FTW_C FTS_C84#define FTW_D FTS_D85#define FTW_DC FTS_DC86#define FTW_DNR FTS_DNR87#define FTW_DNX FTS_DNX88#define FTW_DP FTS_DP89#define FTW_F FTS_F90#define FTW_NR FTS_NR91#define FTW_NS FTS_NS92#define FTW_NSOK FTS_NSOK93#define FTW_NX FTS_NX94#define FTW_P FTS_P95#define FTW_SL FTS_SL9697/*98* Ftw_t.status entry values99*/100101#define FTW_NAME FTS_DOT /* access by Ftw_t.name */102#define FTW_PATH FTS_NOCHDIR /* access by Ftw_t.path */103104/*105* Ftw_t.status return values106*/107108#define FTW_AGAIN FTS_AGAIN109#define FTW_FOLLOW FTS_FOLLOW110#define FTW_NOPOST FTS_NOPOSTORDER111#define FTW_SKIP FTS_SKIP112#define FTW_STAT FTS_STAT113114#if _BLD_ast && defined(__EXPORT__)115#define extern __EXPORT__116#endif117118extern int ftwalk(const char*, int(*)(Ftw_t*), int, int(*)(Ftw_t*, Ftw_t*));119extern int ftwflags(void);120121#undef extern122123#endif124125126