ftwalk.h revision da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968
/* : : generated by proto : : */
/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1985-2007 AT&T Knowledge Ventures *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Knowledge Ventures *
* *
* A copy of the License is available at *
* http://www.opensource.org/licenses/cpl1.0.txt *
* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* David Korn <dgk@research.att.com> *
* Phong Vo <kpv@research.att.com> *
* *
***********************************************************************/
/*
* Phong Vo
* Glenn Fowler
* AT&T Research
*
* ast ftwalk interface definitions
* ftwalk was the initial improvement on ftw and nftw
* which formed the basis for the POSIX fts proposal
*
* NOTE: this file is in cahoots with the fts implementation
*/
#ifndef _FTWALK_H
#if !defined(__PROTO__)
#include <prototyped.h>
#endif
#if !defined(__LINKAGE__)
#define __LINKAGE__ /* 2004-08-11 transition */
#endif
#define _FTWALK_H
#define fts_info info
#define fts_level level
#define fts_link link
#define fts_name name
#define fts_namelen namelen
#define fts_parent parent
#define fts_path path
#define fts_pathlen pathlen
#define FTSENT Ftw_t /* <fts.h> internal */
#define Ftsent FTW /* <fts.h> internal */
#define _FTSENT_LOCAL_PRIVATE_ /* <fts.h> internal */ \
union \
{ \
long number; /* local numeric value */ \
__V_* pointer; /* local pointer value */ \
} local;
#define _FTSENT_PRIVATE_ /* fts internal */ \
short status; /* internal status */ \
struct stat statb; /* fts_statp data */
#include <fts.h>
/*
* ftwalk() argument flags
*/
#define FTW_CANON FTS_CANON
#define FTW_CHILDREN (FTS_USER<<0)
#define FTW_DELAY FTS_NOSTAT
#define FTW_DOT FTS_NOCHDIR
#define FTW_META FTS_META
#define FTW_MOUNT FTS_XDEV
#define FTW_MULTIPLE FTS_ONEPATH
#define FTW_NOSEEDOTDIR FTS_NOSEEDOTDIR
#define FTW_PHYSICAL FTS_PHYSICAL
#define FTW_POST (FTS_USER<<1)
#define FTW_SEEDOTDIR FTS_SEEDOTDIR
#define FTW_TOP FTS_TOP
#define FTW_TWICE (FTS_USER<<2)
#define FTW_USER (FTS_USER<<3)
/*
* Ftw_t.info type bits
*/
#define FTW_C FTS_C
#define FTW_D FTS_D
#define FTW_DC FTS_DC
#define FTW_DNR FTS_DNR
#define FTW_DNX FTS_DNX
#define FTW_DP FTS_DP
#define FTW_F FTS_F
#define FTW_NR FTS_NR
#define FTW_NS FTS_NS
#define FTW_NSOK FTS_NSOK
#define FTW_NX FTS_NX
#define FTW_P FTS_P
#define FTW_SL FTS_SL
/*
* Ftw_t.status entry values
*/
#define FTW_NAME FTS_DOT /* access by Ftw_t.name */
#define FTW_PATH FTS_NOCHDIR /* access by Ftw_t.path */
/*
* Ftw_t.status return values
*/
#define FTW_AGAIN FTS_AGAIN
#define FTW_FOLLOW FTS_FOLLOW
#define FTW_NOPOST FTS_NOPOSTORDER
#define FTW_SKIP FTS_SKIP
#define FTW_STAT FTS_STAT
#if _BLD_ast && defined(__EXPORT__)
#undef __MANGLE__
#define __MANGLE__ __LINKAGE__ __EXPORT__
#endif
extern __MANGLE__ int ftwalk __PROTO__((const char*, int(*)(Ftw_t*), int, int(*)(Ftw_t*, Ftw_t*)));
extern __MANGLE__ int ftwflags __PROTO__((void));
#undef __MANGLE__
#define __MANGLE__ __LINKAGE__
#endif