~ubuntu-branches/ubuntu/breezy/uclibc/breezy

« back to all changes in this revision

Viewing changes to include/ftw.h

  • Committer: Bazaar Package Importer
  • Author(s): David Schleef
  • Date: 2005-04-18 13:29:53 UTC
  • mfrom: (1.1.1 upstream) (2.1.2 hoary)
  • Revision ID: james.westby@ubuntu.com-20050418132953-hzuzafmpkxuj0gvj
Tags: 0.9.27-1
* New upstream release.
* Acknowledge NMU (Closes: #268989) and fix the bug it caused
  (Closes: #284326)
* Add gross versioned dependency for gcc-3.3, and make sure we use
  gcc-3.3 in the gcc wrapper. (Closes: #304806)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright (C) 1992,1996,1997,1998,1999,2003 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
};
 
78
 
 
79
/* Structure used for fourth argument to callback function for `nftw'.  */
 
80
struct FTW
 
81
  {
 
82
    int base;
 
83
    int level;
 
84
  };
 
85
#endif  /* extended X/Open */
 
86
 
 
87
 
 
88
/* Convenient types for callback functions.  */
 
89
typedef int (*__ftw_func_t) (__const char *__filename,
 
90
                             __const struct stat *__status, int __flag);
 
91
#ifdef __USE_LARGEFILE64
 
92
typedef int (*__ftw64_func_t) (__const char *__filename,
 
93
                               __const struct stat64 *__status, int __flag);
 
94
#endif
 
95
#ifdef __USE_XOPEN_EXTENDED
 
96
typedef int (*__nftw_func_t) (__const char *__filename,
 
97
                              __const struct stat *__status, int __flag,
 
98
                              struct FTW *__info);
 
99
# ifdef __USE_LARGEFILE64
 
100
typedef int (*__nftw64_func_t) (__const char *__filename,
 
101
                                __const struct stat64 *__status,
 
102
                                int __flag, struct FTW *__info);
 
103
# endif
 
104
#endif
 
105
 
 
106
/* Call a function on every element in a directory tree.
 
107
 
 
108
   This function is a possible cancellation point and therefore not
 
109
   marked with __THROW.  */
 
110
#ifndef __USE_FILE_OFFSET64
 
111
extern int ftw (__const char *__dir, __ftw_func_t __func, int __descriptors);
 
112
#else
 
113
# ifdef __REDIRECT
 
114
extern int __REDIRECT (ftw, (__const char *__dir, __ftw_func_t __func,
 
115
                             int __descriptors), ftw64);
 
116
# else
 
117
#  define ftw ftw64
 
118
# endif
 
119
#endif
 
120
#ifdef __USE_LARGEFILE64
 
121
extern int ftw64 (__const char *__dir, __ftw64_func_t __func,
 
122
                  int __descriptors);
 
123
#endif
 
124
 
 
125
#ifdef __USE_XOPEN_EXTENDED
 
126
/* Call a function on every element in a directory tree.  FLAG allows
 
127
   to specify the behaviour more detailed.
 
128
 
 
129
   This function is a possible cancellation point and therefore not
 
130
   marked with __THROW.  */
 
131
# ifndef __USE_FILE_OFFSET64
 
132
extern int nftw (__const char *__dir, __nftw_func_t __func, int __descriptors,
 
133
                 int __flag);
 
134
# else
 
135
#  ifdef __REDIRECT
 
136
extern int __REDIRECT (nftw, (__const char *__dir, __nftw_func_t __func,
 
137
                              int __descriptors, int __flag), nftw64);
 
138
#  else
 
139
#   define nftw nftw64
 
140
#  endif
 
141
# endif
 
142
# ifdef __USE_LARGEFILE64
 
143
extern int nftw64 (__const char *__dir, __nftw64_func_t __func,
 
144
                   int __descriptors, int __flag);
 
145
# endif
 
146
#endif
 
147
 
 
148
__END_DECLS
 
149
 
 
150
#endif  /* ftw.h */