1*69921123SKonstantin Belousov /* 2*69921123SKonstantin Belousov * Copyright (c) 1989, 1993 3*69921123SKonstantin Belousov * The Regents of the University of California. All rights reserved. 4*69921123SKonstantin Belousov * 5*69921123SKonstantin Belousov * This code is derived from software contributed to Berkeley by 6*69921123SKonstantin Belousov * Guido van Rossum. 7*69921123SKonstantin Belousov * 8*69921123SKonstantin Belousov * Redistribution and use in source and binary forms, with or without 9*69921123SKonstantin Belousov * modification, are permitted provided that the following conditions 10*69921123SKonstantin Belousov * are met: 11*69921123SKonstantin Belousov * 1. Redistributions of source code must retain the above copyright 12*69921123SKonstantin Belousov * notice, this list of conditions and the following disclaimer. 13*69921123SKonstantin Belousov * 2. Redistributions in binary form must reproduce the above copyright 14*69921123SKonstantin Belousov * notice, this list of conditions and the following disclaimer in the 15*69921123SKonstantin Belousov * documentation and/or other materials provided with the distribution. 16*69921123SKonstantin Belousov * 3. Neither the name of the University nor the names of its contributors 17*69921123SKonstantin Belousov * may be used to endorse or promote products derived from this software 18*69921123SKonstantin Belousov * without specific prior written permission. 19*69921123SKonstantin Belousov * 20*69921123SKonstantin Belousov * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21*69921123SKonstantin Belousov * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22*69921123SKonstantin Belousov * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23*69921123SKonstantin Belousov * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24*69921123SKonstantin Belousov * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25*69921123SKonstantin Belousov * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26*69921123SKonstantin Belousov * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27*69921123SKonstantin Belousov * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28*69921123SKonstantin Belousov * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29*69921123SKonstantin Belousov * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30*69921123SKonstantin Belousov * SUCH DAMAGE. 31*69921123SKonstantin Belousov */ 32*69921123SKonstantin Belousov 33*69921123SKonstantin Belousov #ifndef _GLOB_COMPAT11_H_ 34*69921123SKonstantin Belousov #define _GLOB_COMPAT11_H_ 35*69921123SKonstantin Belousov 36*69921123SKonstantin Belousov #include <sys/types.h> 37*69921123SKonstantin Belousov #include <glob.h> 38*69921123SKonstantin Belousov 39*69921123SKonstantin Belousov struct freebsd11_stat; 40*69921123SKonstantin Belousov typedef struct { 41*69921123SKonstantin Belousov size_t gl_pathc; /* Count of total paths so far. */ 42*69921123SKonstantin Belousov size_t gl_matchc; /* Count of paths matching pattern. */ 43*69921123SKonstantin Belousov size_t gl_offs; /* Reserved at beginning of gl_pathv. */ 44*69921123SKonstantin Belousov int gl_flags; /* Copy of flags parameter to glob. */ 45*69921123SKonstantin Belousov char **gl_pathv; /* List of paths matching pattern. */ 46*69921123SKonstantin Belousov /* Copy of errfunc parameter to glob. */ 47*69921123SKonstantin Belousov int (*gl_errfunc)(const char *, int); 48*69921123SKonstantin Belousov 49*69921123SKonstantin Belousov /* 50*69921123SKonstantin Belousov * Alternate filesystem access methods for glob; replacement 51*69921123SKonstantin Belousov * versions of closedir(3), readdir(3), opendir(3), stat(2) 52*69921123SKonstantin Belousov * and lstat(2). 53*69921123SKonstantin Belousov */ 54*69921123SKonstantin Belousov void (*gl_closedir)(void *); 55*69921123SKonstantin Belousov struct freebsd11_dirent *(*gl_readdir)(void *); 56*69921123SKonstantin Belousov void *(*gl_opendir)(const char *); 57*69921123SKonstantin Belousov int (*gl_lstat)(const char *, struct freebsd11_stat *); 58*69921123SKonstantin Belousov int (*gl_stat)(const char *, struct freebsd11_stat *); 59*69921123SKonstantin Belousov } glob11_t; 60*69921123SKonstantin Belousov 61*69921123SKonstantin Belousov __BEGIN_DECLS 62*69921123SKonstantin Belousov int freebsd11_glob(const char * __restrict, int, 63*69921123SKonstantin Belousov int (*)(const char *, int), glob11_t * __restrict); 64*69921123SKonstantin Belousov void freebsd11_globfree(glob11_t *); 65*69921123SKonstantin Belousov __END_DECLS 66*69921123SKonstantin Belousov 67*69921123SKonstantin Belousov #endif /* !_GLOB_COMPAT11_H_ */ 68