1 2/* : : generated by proto : : */ 3/*********************************************************************** 4* * 5* This software is part of the ast package * 6* Copyright (c) 1985-2010 AT&T Intellectual Property * 7* and is licensed under the * 8* Common Public License, Version 1.0 * 9* by AT&T Intellectual Property * 10* * 11* A copy of the License is available at * 12* http://www.opensource.org/licenses/cpl1.0.txt * 13* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 14* * 15* Information and Software Systems Research * 16* AT&T Research * 17* Florham Park NJ * 18* * 19* Glenn Fowler <gsf@research.att.com> * 20* David Korn <dgk@research.att.com> * 21* Phong Vo <kpv@research.att.com> * 22* * 23***********************************************************************/ 24 25/* 26 * Glenn Fowler 27 * AT&T Research 28 * 29 * fast find interface definitions 30 */ 31 32#ifndef _FIND_H 33#if !defined(__PROTO__) 34#include <prototyped.h> 35#endif 36#if !defined(__LINKAGE__) 37#define __LINKAGE__ /* 2004-08-11 transition */ 38#endif 39 40#define _FIND_H 41 42#define FIND_VERSION 19980301L 43 44#ifndef FIND_CODES 45#define FIND_CODES "lib/find/codes" 46#endif 47 48#define FIND_CODES_ENV "FINDCODES" 49 50#define FIND_GENERATE (1<<0) /* generate new codes */ 51#define FIND_ICASE (1<<1) /* ignore case in match */ 52#define FIND_GNU (1<<2) /* generate gnu format codes */ 53#define FIND_OLD (1<<3) /* generate old format codes */ 54#define FIND_TYPE (1<<4) /* generate type with codes */ 55#define FIND_VERIFY (1<<5) /* verify the dir hierarchy */ 56 57#define FIND_USER (1L<<16) /* first user flag bit */ 58 59struct Find_s; 60struct Finddisc_s; 61 62typedef int (*Findverify_f) __PROTO__((struct Find_s*, const char*, size_t, struct Finddisc_s*)); 63 64typedef struct Finddisc_s 65{ 66 unsigned long version; /* interface version */ 67 unsigned long flags; /* FIND_* flags */ 68 Error_f errorf; /* error function */ 69 Findverify_f verifyf; /* dir verify function */ 70 char** dirs; /* dir prefixes to search */ 71} Finddisc_t; 72 73typedef struct Find_s 74{ 75 const char* id; /* library id string */ 76 unsigned long stamp; /* codes time stamp */ 77 78#ifdef _FIND_PRIVATE_ 79 _FIND_PRIVATE_ 80#endif 81 82} Find_t; 83 84#if _BLD_ast && defined(__EXPORT__) 85#undef __MANGLE__ 86#define __MANGLE__ __LINKAGE__ __EXPORT__ 87#endif 88 89extern __MANGLE__ Find_t* findopen __PROTO__((const char*, const char*, const char*, Finddisc_t*)); 90extern __MANGLE__ char* findread __PROTO__((Find_t*)); 91extern __MANGLE__ int findwrite __PROTO__((Find_t*, const char*, size_t, const char*)); 92extern __MANGLE__ int findclose __PROTO__((Find_t*)); 93 94#undef __MANGLE__ 95#define __MANGLE__ __LINKAGE__ 96 97#endif 98