1da2e3ebdSchin /*********************************************************************** 2da2e3ebdSchin * * 3da2e3ebdSchin * This software is part of the ast package * 4*3e14f97fSRoger A. Faulkner * Copyright (c) 1985-2010 AT&T Intellectual Property * 5da2e3ebdSchin * and is licensed under the * 6da2e3ebdSchin * Common Public License, Version 1.0 * 77c2fbfb3SApril Chin * by AT&T Intellectual Property * 8da2e3ebdSchin * * 9da2e3ebdSchin * A copy of the License is available at * 10da2e3ebdSchin * http://www.opensource.org/licenses/cpl1.0.txt * 11da2e3ebdSchin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 12da2e3ebdSchin * * 13da2e3ebdSchin * Information and Software Systems Research * 14da2e3ebdSchin * AT&T Research * 15da2e3ebdSchin * Florham Park NJ * 16da2e3ebdSchin * * 17da2e3ebdSchin * Glenn Fowler <gsf@research.att.com> * 18da2e3ebdSchin * David Korn <dgk@research.att.com> * 19da2e3ebdSchin * Phong Vo <kpv@research.att.com> * 20da2e3ebdSchin * * 21da2e3ebdSchin ***********************************************************************/ 22da2e3ebdSchin #pragma prototyped 23da2e3ebdSchin /* 24da2e3ebdSchin * AT&T Research 25da2e3ebdSchin * 26da2e3ebdSchin * directory stream access library private definitions 27da2e3ebdSchin * library routines should include this file rather than <dirent.h> 28da2e3ebdSchin */ 29da2e3ebdSchin 30da2e3ebdSchin #ifndef _DIRLIB_H 31da2e3ebdSchin #define _DIRLIB_H 32da2e3ebdSchin 33da2e3ebdSchin #if defined(__STDPP__directive) && defined(__STDPP__hide) 34da2e3ebdSchin __STDPP__directive pragma pp:hide getdents getdirentries 35da2e3ebdSchin #else 36da2e3ebdSchin #undef getdents 37da2e3ebdSchin #define getdents ______getdents 38da2e3ebdSchin #undef getdirentries 39da2e3ebdSchin #define getdirentries ______getdirentries 40da2e3ebdSchin #endif 41da2e3ebdSchin 42da2e3ebdSchin #include <ast.h> 43da2e3ebdSchin #include <errno.h> 44da2e3ebdSchin 45da2e3ebdSchin #if _lib_opendir && ( _hdr_dirent || _hdr_ndir || _sys_dir ) 46da2e3ebdSchin 47da2e3ebdSchin #define _dir_ok 1 48da2e3ebdSchin 49da2e3ebdSchin #include <ls.h> 50da2e3ebdSchin 51da2e3ebdSchin #ifndef _DIRENT_H 52da2e3ebdSchin #if _hdr_dirent 53da2e3ebdSchin #if _typ_off64_t 54da2e3ebdSchin #undef off_t 55da2e3ebdSchin #endif 56da2e3ebdSchin #include <dirent.h> 57da2e3ebdSchin #if _typ_off64_t 58da2e3ebdSchin #define off_t off64_t 59da2e3ebdSchin #endif 60da2e3ebdSchin #else 61da2e3ebdSchin #if _hdr_ndir 62da2e3ebdSchin #include <ndir.h> 63da2e3ebdSchin #else 64da2e3ebdSchin #include <sys/dir.h> 65da2e3ebdSchin #endif 66da2e3ebdSchin #ifndef dirent 67da2e3ebdSchin #define dirent direct 68da2e3ebdSchin #endif 69da2e3ebdSchin #endif 70da2e3ebdSchin #endif 71da2e3ebdSchin 72da2e3ebdSchin #define DIRdirent dirent 73da2e3ebdSchin 74da2e3ebdSchin #else 75da2e3ebdSchin 76da2e3ebdSchin #define dirent DIRdirent 77da2e3ebdSchin 78da2e3ebdSchin #if defined(__STDPP__directive) && defined(__STDPP__hide) 79da2e3ebdSchin __STDPP__directive pragma pp:hide DIR closedir opendir readdir seekdir telldir 80da2e3ebdSchin #else 81da2e3ebdSchin #undef DIR 82da2e3ebdSchin #define DIR ______DIR 83da2e3ebdSchin #undef closedir 84da2e3ebdSchin #define closedir ______closedir 85da2e3ebdSchin #undef opendir 86da2e3ebdSchin #define opendir ______opendir 87da2e3ebdSchin #undef readdir 88da2e3ebdSchin #define readdir ______readdir 89da2e3ebdSchin #undef seekdir 90da2e3ebdSchin #define seekdir ______seekdir 91da2e3ebdSchin #undef telldir 92da2e3ebdSchin #define telldir ______telldir 93da2e3ebdSchin #endif 94da2e3ebdSchin 95da2e3ebdSchin #include <ast_param.h> 96da2e3ebdSchin 97da2e3ebdSchin #include <ls.h> 98da2e3ebdSchin #include <limits.h> 99da2e3ebdSchin 100da2e3ebdSchin #ifndef _DIRENT_H 101da2e3ebdSchin #if _hdr_dirent 102da2e3ebdSchin #if _typ_off64_t 103da2e3ebdSchin #undef off_t 104da2e3ebdSchin #endif 105da2e3ebdSchin #include <dirent.h> 106da2e3ebdSchin #if _typ_off64_t 107da2e3ebdSchin #define off_t off64_t 108da2e3ebdSchin #endif 109da2e3ebdSchin #else 110da2e3ebdSchin #if _hdr_direntry 111da2e3ebdSchin #include <direntry.h> 112da2e3ebdSchin #else 113da2e3ebdSchin #include <sys/dir.h> 114da2e3ebdSchin #endif 115da2e3ebdSchin #endif 116da2e3ebdSchin #endif 117da2e3ebdSchin 118da2e3ebdSchin #undef dirent 119da2e3ebdSchin #if defined(__STDPP__directive) && defined(__STDPP__hide) 120da2e3ebdSchin __STDPP__directive pragma pp:nohide DIR closedir opendir readdir seekdir telldir 121da2e3ebdSchin #else 122da2e3ebdSchin #undef DIR 123da2e3ebdSchin #undef closedir 124da2e3ebdSchin #undef opendir 125da2e3ebdSchin #undef readdir 126da2e3ebdSchin #undef seekdir 127da2e3ebdSchin #undef telldir 128da2e3ebdSchin #endif 129da2e3ebdSchin 130da2e3ebdSchin #define _DIR_PRIVATE_ \ 131da2e3ebdSchin int dd_loc; /* offset in block */ \ 132da2e3ebdSchin int dd_size; /* valid data in block */ \ 133da2e3ebdSchin char* dd_buf; /* directory block */ 134da2e3ebdSchin 135da2e3ebdSchin #ifdef _BLD_3d 136da2e3ebdSchin #define DIR DIRDIR 137da2e3ebdSchin #endif 138da2e3ebdSchin #undef _DIRENT_H 139da2e3ebdSchin #include "dirstd.h" 140da2e3ebdSchin #ifndef _DIRENT_H 141da2e3ebdSchin #define _DIRENT_H 1 142da2e3ebdSchin #endif 143da2e3ebdSchin #ifdef _BLD_3d 144da2e3ebdSchin #undef DIR 145da2e3ebdSchin #endif 146da2e3ebdSchin 147da2e3ebdSchin #ifndef DIRBLKSIZ 148da2e3ebdSchin #ifdef DIRBLK 149da2e3ebdSchin #define DIRBLKSIZ DIRBLK 150da2e3ebdSchin #else 151da2e3ebdSchin #ifdef DIRBUF 152da2e3ebdSchin #define DIRBLKSIZ DIRBUF 153da2e3ebdSchin #else 154da2e3ebdSchin #define DIRBLKSIZ 8192 155da2e3ebdSchin #endif 156da2e3ebdSchin #endif 157da2e3ebdSchin #endif 158da2e3ebdSchin 159da2e3ebdSchin #endif 160da2e3ebdSchin 161da2e3ebdSchin #if defined(__STDPP__directive) && defined(__STDPP__hide) 162da2e3ebdSchin __STDPP__directive pragma pp:nohide getdents getdirentries 163da2e3ebdSchin #else 164da2e3ebdSchin #undef getdents 165da2e3ebdSchin #undef getdirentries 166da2e3ebdSchin #endif 167da2e3ebdSchin 168da2e3ebdSchin #ifndef errno 169da2e3ebdSchin extern int errno; 170da2e3ebdSchin #endif 171da2e3ebdSchin 172da2e3ebdSchin extern ssize_t getdents(int, void*, size_t); 173da2e3ebdSchin 174da2e3ebdSchin #endif 175