xref: /titanic_50/usr/src/lib/libast/i386/include/ast/ftwalk.h (revision 3e14f97f673e8a630f076077de35afdd43dc1587)
1da2e3ebdSchin 
2da2e3ebdSchin /* : : generated by proto : : */
3da2e3ebdSchin /***********************************************************************
4da2e3ebdSchin *                                                                      *
5da2e3ebdSchin *               This software is part of the ast package               *
6*3e14f97fSRoger A. Faulkner *          Copyright (c) 1985-2010 AT&T Intellectual Property          *
7da2e3ebdSchin *                      and is licensed under the                       *
8da2e3ebdSchin *                  Common Public License, Version 1.0                  *
97c2fbfb3SApril Chin *                    by AT&T Intellectual Property                     *
10da2e3ebdSchin *                                                                      *
11da2e3ebdSchin *                A copy of the License is available at                 *
12da2e3ebdSchin *            http://www.opensource.org/licenses/cpl1.0.txt             *
13da2e3ebdSchin *         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
14da2e3ebdSchin *                                                                      *
15da2e3ebdSchin *              Information and Software Systems Research               *
16da2e3ebdSchin *                            AT&T Research                             *
17da2e3ebdSchin *                           Florham Park NJ                            *
18da2e3ebdSchin *                                                                      *
19da2e3ebdSchin *                 Glenn Fowler <gsf@research.att.com>                  *
20da2e3ebdSchin *                  David Korn <dgk@research.att.com>                   *
21da2e3ebdSchin *                   Phong Vo <kpv@research.att.com>                    *
22da2e3ebdSchin *                                                                      *
23da2e3ebdSchin ***********************************************************************/
24da2e3ebdSchin 
25da2e3ebdSchin /*
26da2e3ebdSchin  * Phong Vo
27da2e3ebdSchin  * Glenn Fowler
28da2e3ebdSchin  * AT&T Research
29da2e3ebdSchin  *
30da2e3ebdSchin  * ast ftwalk interface definitions
31da2e3ebdSchin  * ftwalk was the initial improvement on ftw and nftw
32da2e3ebdSchin  * which formed the basis for the POSIX fts proposal
33da2e3ebdSchin  *
34da2e3ebdSchin  * NOTE: this file is in cahoots with the fts implementation
35da2e3ebdSchin  */
36da2e3ebdSchin 
37da2e3ebdSchin #ifndef _FTWALK_H
38da2e3ebdSchin #if !defined(__PROTO__)
39da2e3ebdSchin #include <prototyped.h>
40da2e3ebdSchin #endif
41da2e3ebdSchin #if !defined(__LINKAGE__)
42da2e3ebdSchin #define __LINKAGE__		/* 2004-08-11 transition */
43da2e3ebdSchin #endif
44da2e3ebdSchin 
45da2e3ebdSchin #define _FTWALK_H
46da2e3ebdSchin 
47da2e3ebdSchin #define fts_info	info
48da2e3ebdSchin #define fts_level	level
49da2e3ebdSchin #define fts_link	link
50da2e3ebdSchin #define fts_name	name
51da2e3ebdSchin #define fts_namelen	namelen
52da2e3ebdSchin #define fts_parent	parent
53da2e3ebdSchin #define fts_path	path
54da2e3ebdSchin #define fts_pathlen	pathlen
5534f9b3eeSRoland Mainz #define _fts_status	status
5634f9b3eeSRoland Mainz #define _fts_statb	statb
57da2e3ebdSchin 
58da2e3ebdSchin #define FTSENT		Ftw_t			/* <fts.h> internal	*/
59da2e3ebdSchin #define Ftsent		FTW			/* <fts.h> internal	*/
60da2e3ebdSchin 
61da2e3ebdSchin #define _FTSENT_LOCAL_PRIVATE_			/* <fts.h> internal	*/ \
62da2e3ebdSchin 	union								   \
63da2e3ebdSchin 	{								   \
64da2e3ebdSchin 	long		number;			/* local numeric value	*/ \
65da2e3ebdSchin 	__V_*		pointer;		/* local pointer value	*/ \
66da2e3ebdSchin 	}		local;
67da2e3ebdSchin 
68da2e3ebdSchin #include <fts.h>
69da2e3ebdSchin 
70da2e3ebdSchin /*
71da2e3ebdSchin  * ftwalk() argument flags
72da2e3ebdSchin  */
73da2e3ebdSchin 
74da2e3ebdSchin #define FTW_CANON	FTS_CANON
75da2e3ebdSchin #define FTW_CHILDREN	(FTS_USER<<0)
76da2e3ebdSchin #define FTW_DELAY	FTS_NOSTAT
77da2e3ebdSchin #define FTW_DOT		FTS_NOCHDIR
78da2e3ebdSchin #define FTW_META	FTS_META
79da2e3ebdSchin #define FTW_MOUNT	FTS_XDEV
80da2e3ebdSchin #define FTW_MULTIPLE	FTS_ONEPATH
81da2e3ebdSchin #define FTW_NOSEEDOTDIR	FTS_NOSEEDOTDIR
82da2e3ebdSchin #define FTW_PHYSICAL	FTS_PHYSICAL
83da2e3ebdSchin #define FTW_POST	(FTS_USER<<1)
84da2e3ebdSchin #define FTW_SEEDOTDIR	FTS_SEEDOTDIR
85da2e3ebdSchin #define FTW_TOP		FTS_TOP
86da2e3ebdSchin #define FTW_TWICE	(FTS_USER<<2)
87da2e3ebdSchin #define FTW_USER	(FTS_USER<<3)
88da2e3ebdSchin 
89da2e3ebdSchin /*
90da2e3ebdSchin  * Ftw_t.info type bits
91da2e3ebdSchin  */
92da2e3ebdSchin 
93da2e3ebdSchin #define FTW_C		FTS_C
94da2e3ebdSchin #define FTW_D		FTS_D
95da2e3ebdSchin #define FTW_DC		FTS_DC
96da2e3ebdSchin #define FTW_DNR		FTS_DNR
97da2e3ebdSchin #define FTW_DNX		FTS_DNX
98da2e3ebdSchin #define FTW_DP		FTS_DP
99da2e3ebdSchin #define FTW_F		FTS_F
100da2e3ebdSchin #define FTW_NR		FTS_NR
101da2e3ebdSchin #define FTW_NS		FTS_NS
102da2e3ebdSchin #define FTW_NSOK	FTS_NSOK
103da2e3ebdSchin #define FTW_NX		FTS_NX
104da2e3ebdSchin #define FTW_P		FTS_P
105da2e3ebdSchin #define FTW_SL		FTS_SL
106da2e3ebdSchin 
107da2e3ebdSchin /*
108da2e3ebdSchin  * Ftw_t.status entry values
109da2e3ebdSchin  */
110da2e3ebdSchin 
111da2e3ebdSchin #define FTW_NAME	FTS_DOT		/* access by Ftw_t.name		*/
112da2e3ebdSchin #define FTW_PATH	FTS_NOCHDIR	/* access by Ftw_t.path		*/
113da2e3ebdSchin 
114da2e3ebdSchin /*
115da2e3ebdSchin  * Ftw_t.status return values
116da2e3ebdSchin  */
117da2e3ebdSchin 
118da2e3ebdSchin #define FTW_AGAIN	FTS_AGAIN
119da2e3ebdSchin #define FTW_FOLLOW	FTS_FOLLOW
120da2e3ebdSchin #define FTW_NOPOST	FTS_NOPOSTORDER
121da2e3ebdSchin #define FTW_SKIP	FTS_SKIP
122da2e3ebdSchin #define FTW_STAT	FTS_STAT
123da2e3ebdSchin 
124da2e3ebdSchin #if _BLD_ast && defined(__EXPORT__)
125da2e3ebdSchin #undef __MANGLE__
126da2e3ebdSchin #define __MANGLE__ __LINKAGE__		__EXPORT__
127da2e3ebdSchin #endif
128da2e3ebdSchin 
129da2e3ebdSchin extern __MANGLE__ int	ftwalk __PROTO__((const char*, int(*)(Ftw_t*), int, int(*)(Ftw_t*, Ftw_t*)));
130da2e3ebdSchin extern __MANGLE__ int	ftwflags __PROTO__((void));
131da2e3ebdSchin 
132da2e3ebdSchin #undef __MANGLE__
133da2e3ebdSchin #define __MANGLE__ __LINKAGE__
134da2e3ebdSchin 
135da2e3ebdSchin #endif
136