Open SCAP Library
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
src
OVAL
fts_sun.h
1
/*
2
* Copyright (c) 1989, 1993
3
* The Regents of the University of California. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 4. Neither the name of the University nor the names of its contributors
14
* may be used to endorse or promote products derived from this software
15
* without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
* SUCH DAMAGE.
28
*
29
* @(#)fts.h 8.3 (Berkeley) 8/14/94
30
*/
31
32
#include "config.h"
33
34
#if !defined(HAVE_FTS_OPEN)
35
36
#ifndef _FTS_H
37
#define _FTS_H 1
38
39
40
#if defined(__GLIBC__)
41
#include <features.h>
42
#else
43
44
# define __THROW
45
#ifdef __cplusplus
46
# define __BEGIN_DECLS extern "C" {
47
# define __END_DECLS }
48
#else
49
# define __BEGIN_DECLS
50
# define __END_DECLS
51
#endif
52
53
#if defined(hpux)
54
# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
55
# define _INCLUDE_POSIX_SOURCE
56
# define _LARGEFILE64_SOURCE
57
#endif
58
59
/* This needs to be ifdef SOLARIS */
60
#if defined(__SVR4)
61
# define _D_EXACT_NAMLEN(d) (strlen((d)->d_name))
62
# ifndef _INCLUDE_POSIX_SOURCE
63
# define _INCLUDE_POSIX_SOURCE
64
# endif
65
# ifndef _LARGEFILE64_SOURCE
66
# define _LARGEFILE64_SOURCE
67
# endif
68
#endif
69
70
#endif
71
72
#include <sys/types.h>
73
#include <sys/stat.h>
74
#include <dirent.h>
75
76
/* The fts interface is incompatible with the LFS interface which
77
transparently uses the 64-bit file access functions. */
78
79
#ifdef __USE_FILE_OFFSET64
80
# error "<fts.h> cannot be used with -D_FILE_OFFSET_BITS==64"
81
#endif
82
83
84
typedef
struct
{
85
/*@owned@*/
86
struct
_ftsent
*
fts_cur
;
87
/*@owned@*/
/*@null@*/
88
struct
_ftsent
*
fts_child
;
89
/*@owned@*/
/*@null@*/
90
struct
_ftsent
**
fts_array
;
91
dev_t
fts_dev
;
92
/*@owned@*/
93
char
*
fts_path
;
94
int
fts_rfd
;
95
int
fts_pathlen
;
96
int
fts_nitems
;
97
/*@null@*/
98
int (*fts_compar) (
const
void
*,
const
void
*)
99
/*@*/
;
101
DIR * (*fts_opendir) (
const
char
* path)
102
/*@globals fileSystem @*/
103
/*@modifies fileSystem @*/
;
104
struct
dirent * (*fts_readdir) (DIR * dir)
105
/*@globals fileSystem @*/
106
/*@modifies *dir, fileSystem @*/
;
107
int (*fts_closedir) (
/*@only@*/
DIR * dir)
108
/*@globals fileSystem @*/
109
/*@modifies *dir, fileSystem @*/
;
110
int (*fts_stat) (
const
char
* path,
/*@out@*/
struct
stat * st)
111
/*@globals fileSystem @*/
112
/*@modifies *st, fileSystem @*/
;
113
int (*fts_lstat) (
const
char
* path,
/*@out@*/
struct
stat * st)
114
/*@globals fileSystem @*/
115
/*@modifies *st, fileSystem @*/
;
116
117
#define FTS_COMFOLLOW 0x0001
118
#define FTS_LOGICAL 0x0002
119
#define FTS_NOCHDIR 0x0004
120
#define FTS_NOSTAT 0x0008
121
#define FTS_PHYSICAL 0x0010
122
#define FTS_SEEDOT 0x0020
123
#define FTS_XDEV 0x0040
124
#define FTS_WHITEOUT 0x0080
125
#define FTS_OPTIONMASK 0x00ff
127
#define FTS_NAMEONLY 0x0100
128
#define FTS_STOP 0x0200
129
int fts_options;
130
} FTS;
131
132
typedef
struct
_ftsent
{
133
/*@dependent@*/
134
struct
_ftsent
*
fts_cycle
;
135
/*@dependent@*/
136
struct
_ftsent
*
fts_parent
;
137
/*@dependent@*/
138
struct
_ftsent
*
fts_link
;
139
long
fts_number
;
140
void
*
fts_pointer
;
141
/*@dependent@*/
142
char
*
fts_accpath
;
143
/*@dependent@*/
144
char
*
fts_path
;
145
int
fts_errno
;
146
int
fts_symfd
;
147
u_short
fts_pathlen
;
148
u_short
fts_namelen
;
150
ino_t
fts_ino
;
151
dev_t
fts_dev
;
152
nlink_t
fts_nlink
;
154
#define FTS_ROOTPARENTLEVEL -1
155
#define FTS_ROOTLEVEL 0
156
short
fts_level
;
158
#define FTS_D 1
159
#define FTS_DC 2
160
#define FTS_DEFAULT 3
161
#define FTS_DNR 4
162
#define FTS_DOT 5
163
#define FTS_DP 6
164
#define FTS_ERR 7
165
#define FTS_F 8
166
#define FTS_INIT 9
167
#define FTS_NS 10
168
#define FTS_NSOK 11
169
#define FTS_SL 12
170
#define FTS_SLNONE 13
171
#define FTS_W 14
172
u_short fts_info;
174
#define FTS_DONTCHDIR 0x01
175
#define FTS_SYMFOLLOW 0x02
176
u_short fts_flags;
178
#define FTS_AGAIN 1
179
#define FTS_FOLLOW 2
180
#define FTS_NOINSTR 3
181
#define FTS_SKIP 4
182
u_short fts_instr;
184
/*@dependent@*/
185
struct
stat *
fts_statp
;
186
char
fts_name
[1];
187
}
FTSENT
;
188
189
__BEGIN_DECLS
190
191
extern
int
dirfd (DIR * dirp);
192
199
/*@unused@*/
/*@dependent@*/
200
FTSENT
*fts_children (
FTS
* sp,
int
instr) __THROW
201
/*@globals fileSystem, internalState @*/
202
/*@modifies *sp, fileSystem, internalState @*/
;
203
209
/*@unused@*/
210
int
fts_close (
/*@only@*/
FTS
* sp) __THROW
211
/*@globals fileSystem, internalState @*/
212
/*@modifies *sp, fileSystem, internalState @*/
;
213
221
/*@unused@*/
/*@only@*/
222
FTS
*fts_open (
char
*
const
* argv,
int
options,
223
/*@null@*/
224
int
(*compar) (
const
FTSENT
**,
const
FTSENT
**)) __THROW
225
/*@*/
;
226
232
/*@unused@*/
/*@null@*/
233
FTSENT
*fts_read (
FTS
* sp) __THROW
234
/*@globals fileSystem, internalState @*/
235
/*@modifies *sp, fileSystem, internalState @*/
;
236
244
/*@unused@*/
245
int
fts_set (
FTS
* sp,
FTSENT
* p,
int
instr) __THROW
246
/*@modifies *p @*/
;
247
248
__END_DECLS
249
250
#endif
/* fts.h */
251
252
#endif
/* HAVE_FTS_OPEN */
Generated by
1.8.3.1