RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
cpukit
libmisc
shell
fts.h
1
/* $NetBSD: fts.h,v 1.14 2005/09/13 01:44:32 christos Exp $ */
2
3
/*
4
* Copyright (c) 1989, 1993
5
* The Regents of the University of California. All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
* 1. Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
* 3. Neither the name of the University nor the names of its contributors
16
* may be used to endorse or promote products derived from this software
17
* without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29
* SUCH DAMAGE.
30
*
31
* @(#)fts.h 8.3 (Berkeley) 8/14/94
32
*/
33
34
#ifndef _FTS_H_
35
#define _FTS_H_
36
37
#ifndef __fts_stat_t
38
#define __fts_stat_t struct stat
39
#endif
40
#ifndef __fts_nlink_t
41
#define __fts_nlink_t nlink_t
42
#endif
43
#ifndef __fts_ino_t
44
#define __fts_ino_t ino_t
45
#endif
46
47
typedef
struct
{
48
struct
_ftsent
*fts_cur;
/* current node */
49
struct
_ftsent
*fts_child;
/* linked list of children */
50
struct
_ftsent
**fts_array;
/* sort array */
51
dev_t fts_dev;
/* starting device # */
52
char
*fts_path;
/* path for this descent */
53
int
fts_rfd;
/* fd for root */
54
u_int fts_pathlen;
/* sizeof(path) */
55
u_int fts_nitems;
/* elements in the sort array */
56
int (*fts_compar)
/* compare function */
57
(
const
struct
_ftsent
**,
const
struct
_ftsent
**);
58
59
#define FTS_COMFOLLOW 0x001
/* follow command line symlinks */
60
#define FTS_LOGICAL 0x002
/* logical walk */
61
#define FTS_NOCHDIR 0x004
/* don't change directories */
62
#define FTS_NOSTAT 0x008
/* don't get stat info */
63
#define FTS_PHYSICAL 0x010
/* physical walk */
64
#define FTS_SEEDOT 0x020
/* return dot and dot-dot */
65
#define FTS_XDEV 0x040
/* don't cross devices */
66
#define FTS_WHITEOUT 0x080
/* return whiteout information */
67
#define FTS_OPTIONMASK 0x0ff
/* valid user option mask */
68
69
#define FTS_NAMEONLY 0x100
/* (private) child names only */
70
#define FTS_STOP 0x200
/* (private) unrecoverable error */
71
int
fts_options;
/* fts_open options, global flags */
72
}
FTS
;
73
74
typedef
struct
_ftsent
{
75
struct
_ftsent
*fts_cycle;
/* cycle node */
76
struct
_ftsent
*fts_parent;
/* parent directory */
77
struct
_ftsent
*fts_link;
/* next file in directory */
78
long
fts_number;
/* local numeric value */
79
void
*fts_pointer;
/* local address value */
80
char
*fts_accpath;
/* access path */
81
char
*fts_path;
/* root path */
82
int
fts_errno;
/* errno for this node */
83
int
fts_symfd;
/* fd for symlink */
84
u_short fts_pathlen;
/* strlen(fts_path) */
85
u_short fts_namelen;
/* strlen(fts_name) */
86
87
__fts_ino_t fts_ino;
/* inode */
88
dev_t fts_dev;
/* device */
89
__fts_nlink_t fts_nlink;
/* link count */
90
91
#define FTS_ROOTPARENTLEVEL -1
92
#define FTS_ROOTLEVEL 0
93
short
fts_level;
/* depth (-1 to N) */
94
95
#define FTS_D 1
/* preorder directory */
96
#define FTS_DC 2
/* directory that causes cycles */
97
#define FTS_DEFAULT 3
/* none of the above */
98
#define FTS_DNR 4
/* unreadable directory */
99
#define FTS_DOT 5
/* dot or dot-dot */
100
#define FTS_DP 6
/* postorder directory */
101
#define FTS_ERR 7
/* error; errno is set */
102
#define FTS_F 8
/* regular file */
103
#define FTS_INIT 9
/* initialized only */
104
#define FTS_NS 10
/* stat(2) failed */
105
#define FTS_NSOK 11
/* no stat(2) requested */
106
#define FTS_SL 12
/* symbolic link */
107
#define FTS_SLNONE 13
/* symbolic link without target */
108
#define FTS_W 14
/* whiteout object */
109
u_short fts_info;
/* user flags for FTSENT structure */
110
111
#define FTS_DONTCHDIR 0x01
/* don't chdir .. to the parent */
112
#define FTS_SYMFOLLOW 0x02
/* followed a symlink to get here */
113
#define FTS_ISW 0x04
/* this is a whiteout object */
114
u_short fts_flags;
/* private flags for FTSENT structure */
115
116
#define FTS_AGAIN 1
/* read node again */
117
#define FTS_FOLLOW 2
/* follow symbolic link */
118
#define FTS_NOINSTR 3
/* no instructions */
119
#define FTS_SKIP 4
/* discard node */
120
u_short fts_instr;
/* fts_set() instructions */
121
122
__fts_stat_t *fts_statp;
/* stat(2) information */
123
char
fts_name[1];
/* file name */
124
} FTSENT;
125
126
#include <sys/cdefs.h>
127
128
#define __RENAME(n)
129
#define fts_children rtems_shell_fts_children
130
#define fts_close rtems_shell_fts_close
131
#define fts_open rtems_shell_fts_open
132
#define fts_read rtems_shell_fts_read
133
#define fts_set rtems_shell_fts_set
134
135
__BEGIN_DECLS
136
#ifndef __LIBC12_SOURCE__
137
FTSENT *fts_children(
FTS
*,
int
) __RENAME(__fts_children30);
138
int
fts_close(
FTS
*) __RENAME(__fts_close30);
139
FTS
*fts_open(
char
*
const
*,
int
,
140
int
(*)(
const
FTSENT **,
const
FTSENT **)) __RENAME(__fts_open30);
141
FTSENT *fts_read(
FTS
*) __RENAME(__fts_read30);
142
int
fts_set(
FTS
*, FTSENT *,
int
) __RENAME(__fts_set30);
143
#endif
144
__END_DECLS
145
146
#endif
/* !_FTS_H_ */
FTS
Definition
fts.h:47
_ftsent
Definition
fts.h:74
Generated by
1.18.0