OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [posix/] [libposix/] [include/] [posix/] [ftw.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 drasko
/* Copyright (C) 1992,1996-1999,2003,2004 Free Software Foundation, Inc.
2
   This file is part of the GNU C Library.
3
 
4
   The GNU C Library is free software; you can redistribute it and/or
5
   modify it under the terms of the GNU Lesser General Public
6
   License as published by the Free Software Foundation; either
7
   version 2.1 of the License, or (at your option) any later version.
8
 
9
   The GNU C Library is distributed in the hope that it will be useful,
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
   Lesser General Public License for more details.
13
 
14
   You should have received a copy of the GNU Lesser General Public
15
   License along with the GNU C Library; if not, write to the Free
16
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17
   02111-1307 USA.  */
18
 
19
/*
20
 *      X/Open Portability Guide 4.2: ftw.h
21
 */
22
 
23
#ifndef _FTW_H
24
#define _FTW_H  1
25
 
26
#include <features.h>
27
 
28
#include <sys/types.h>
29
#include <sys/stat.h>
30
 
31
 
32
__BEGIN_DECLS
33
 
34
/* Values for the FLAG argument to the user function passed to `ftw'
35
   and 'nftw'.  */
36
enum
37
{
38
  FTW_F,                /* Regular file.  */
39
#define FTW_F    FTW_F
40
  FTW_D,                /* Directory.  */
41
#define FTW_D    FTW_D
42
  FTW_DNR,              /* Unreadable directory.  */
43
#define FTW_DNR  FTW_DNR
44
  FTW_NS,               /* Unstatable file.  */
45
#define FTW_NS   FTW_NS
46
 
47
#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
48
 
49
  FTW_SL,               /* Symbolic link.  */
50
# define FTW_SL  FTW_SL
51
#endif
52
 
53
#ifdef __USE_XOPEN_EXTENDED
54
/* These flags are only passed from the `nftw' function.  */
55
  FTW_DP,               /* Directory, all subdirs have been visited. */
56
# define FTW_DP  FTW_DP
57
  FTW_SLN               /* Symbolic link naming non-existing file.  */
58
# define FTW_SLN FTW_SLN
59
 
60
#endif  /* extended X/Open */
61
};
62
 
63
 
64
#ifdef __USE_XOPEN_EXTENDED
65
/* Flags for fourth argument of `nftw'.  */
66
enum
67
{
68
  FTW_PHYS = 1,         /* Perform physical walk, ignore symlinks.  */
69
# define FTW_PHYS       FTW_PHYS
70
  FTW_MOUNT = 2,        /* Report only files on same file system as the
71
                           argument.  */
72
# define FTW_MOUNT      FTW_MOUNT
73
  FTW_CHDIR = 4,        /* Change to current directory while processing it.  */
74
# define FTW_CHDIR      FTW_CHDIR
75
  FTW_DEPTH = 8         /* Report files in directory before directory itself.*/
76
# define FTW_DEPTH      FTW_DEPTH
77
# ifdef __USE_GNU
78
  ,
79
  FTW_ACTIONRETVAL = 16 /* Assume callback to return FTW_* values instead of
80
                           zero to continue and non-zero to terminate.  */
81
#  define FTW_ACTIONRETVAL FTW_ACTIONRETVAL
82
# endif
83
};
84
 
85
#ifdef __USE_GNU
86
/* Return values from callback functions.  */
87
enum
88
{
89
  FTW_CONTINUE = 0,      /* Continue with next sibling or for FTW_D with the
90
                           first child.  */
91
# define FTW_CONTINUE   FTW_CONTINUE
92
  FTW_STOP = 1,         /* Return from `ftw' or `nftw' with FTW_STOP as return
93
                           value.  */
94
# define FTW_STOP       FTW_STOP
95
  FTW_SKIP_SUBTREE = 2, /* Only meaningful for FTW_D: Don't walk through the
96
                           subtree, instead just continue with its next
97
                           sibling. */
98
# define FTW_SKIP_SUBTREE FTW_SKIP_SUBTREE
99
  FTW_SKIP_SIBLINGS = 3,/* Continue with FTW_DP callback for current directory
100
                            (if FTW_DEPTH) and then its siblings.  */
101
# define FTW_SKIP_SIBLINGS FTW_SKIP_SIBLINGS
102
};
103
#endif
104
 
105
/* Structure used for fourth argument to callback function for `nftw'.  */
106
struct FTW
107
  {
108
    int base;
109
    int level;
110
  };
111
#endif  /* extended X/Open */
112
 
113
 
114
/* Convenient types for callback functions.  */
115
typedef int (*__ftw_func_t) (__const char *__filename,
116
                             __const struct stat *__status, int __flag);
117
#ifdef __USE_LARGEFILE64
118
typedef int (*__ftw64_func_t) (__const char *__filename,
119
                               __const struct stat64 *__status, int __flag);
120
#endif
121
#ifdef __USE_XOPEN_EXTENDED
122
typedef int (*__nftw_func_t) (__const char *__filename,
123
                              __const struct stat *__status, int __flag,
124
                              struct FTW *__info);
125
# ifdef __USE_LARGEFILE64
126
typedef int (*__nftw64_func_t) (__const char *__filename,
127
                                __const struct stat64 *__status,
128
                                int __flag, struct FTW *__info);
129
# endif
130
#endif
131
 
132
/* Call a function on every element in a directory tree.
133
 
134
   This function is a possible cancellation point and therefore not
135
   marked with __THROW.  */
136
#ifndef __USE_FILE_OFFSET64
137
extern int ftw (__const char *__dir, __ftw_func_t __func, int __descriptors)
138
     __nonnull ((1, 2));
139
#else
140
# ifdef __REDIRECT
141
extern int __REDIRECT (ftw, (__const char *__dir, __ftw_func_t __func,
142
                             int __descriptors), ftw64) __nonnull ((1, 2));
143
# else
144
#  define ftw ftw64
145
# endif
146
#endif
147
#ifdef __USE_LARGEFILE64
148
extern int ftw64 (__const char *__dir, __ftw64_func_t __func,
149
                  int __descriptors) __nonnull ((1, 2));
150
#endif
151
 
152
#ifdef __USE_XOPEN_EXTENDED
153
/* Call a function on every element in a directory tree.  FLAG allows
154
   to specify the behaviour more detailed.
155
 
156
   This function is a possible cancellation point and therefore not
157
   marked with __THROW.  */
158
# ifndef __USE_FILE_OFFSET64
159
extern int nftw (__const char *__dir, __nftw_func_t __func, int __descriptors,
160
                 int __flag) __nonnull ((1, 2));
161
# else
162
#  ifdef __REDIRECT
163
extern int __REDIRECT (nftw, (__const char *__dir, __nftw_func_t __func,
164
                              int __descriptors, int __flag), nftw64)
165
     __nonnull ((1, 2));
166
#  else
167
#   define nftw nftw64
168
#  endif
169
# endif
170
# ifdef __USE_LARGEFILE64
171
extern int nftw64 (__const char *__dir, __nftw64_func_t __func,
172
                   int __descriptors, int __flag) __nonnull ((1, 2));
173
# endif
174
#endif
175
 
176
__END_DECLS
177
 
178
#endif  /* ftw.h */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.