14887Schin 24887Schin /* : : generated by proto : : */ 34887Schin /*********************************************************************** 44887Schin * * 54887Schin * This software is part of the ast package * 6*12068SRoger.Faulkner@Oracle.COM * Copyright (c) 1985-2010 AT&T Intellectual Property * 74887Schin * and is licensed under the * 84887Schin * Common Public License, Version 1.0 * 98462SApril.Chin@Sun.COM * by AT&T Intellectual Property * 104887Schin * * 114887Schin * A copy of the License is available at * 124887Schin * http://www.opensource.org/licenses/cpl1.0.txt * 134887Schin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 144887Schin * * 154887Schin * Information and Software Systems Research * 164887Schin * AT&T Research * 174887Schin * Florham Park NJ * 184887Schin * * 194887Schin * Glenn Fowler <gsf@research.att.com> * 204887Schin * David Korn <dgk@research.att.com> * 214887Schin * Phong Vo <kpv@research.att.com> * 224887Schin * * 234887Schin ***********************************************************************/ 244887Schin 254887Schin /* 264887Schin * Glenn Fowler 274887Schin * AT&T Research 284887Schin * 294887Schin * fast find interface definitions 304887Schin */ 314887Schin 324887Schin #ifndef _FIND_H 334887Schin #if !defined(__PROTO__) 344887Schin #include <prototyped.h> 354887Schin #endif 364887Schin #if !defined(__LINKAGE__) 374887Schin #define __LINKAGE__ /* 2004-08-11 transition */ 384887Schin #endif 394887Schin 404887Schin #define _FIND_H 414887Schin 424887Schin #define FIND_VERSION 19980301L 434887Schin 444887Schin #ifndef FIND_CODES 454887Schin #define FIND_CODES "lib/find/codes" 464887Schin #endif 474887Schin 484887Schin #define FIND_CODES_ENV "FINDCODES" 494887Schin 504887Schin #define FIND_GENERATE (1<<0) /* generate new codes */ 514887Schin #define FIND_ICASE (1<<1) /* ignore case in match */ 524887Schin #define FIND_GNU (1<<2) /* generate gnu format codes */ 534887Schin #define FIND_OLD (1<<3) /* generate old format codes */ 544887Schin #define FIND_TYPE (1<<4) /* generate type with codes */ 554887Schin #define FIND_VERIFY (1<<5) /* verify the dir hierarchy */ 564887Schin 574887Schin #define FIND_USER (1L<<16) /* first user flag bit */ 584887Schin 594887Schin struct Find_s; 604887Schin struct Finddisc_s; 614887Schin 624887Schin typedef int (*Findverify_f) __PROTO__((struct Find_s*, const char*, size_t, struct Finddisc_s*)); 634887Schin 644887Schin typedef struct Finddisc_s 654887Schin { 664887Schin unsigned long version; /* interface version */ 674887Schin unsigned long flags; /* FIND_* flags */ 684887Schin Error_f errorf; /* error function */ 694887Schin Findverify_f verifyf; /* dir verify function */ 704887Schin char** dirs; /* dir prefixes to search */ 714887Schin } Finddisc_t; 724887Schin 734887Schin typedef struct Find_s 744887Schin { 754887Schin const char* id; /* library id string */ 764887Schin unsigned long stamp; /* codes time stamp */ 774887Schin 784887Schin #ifdef _FIND_PRIVATE_ 794887Schin _FIND_PRIVATE_ 804887Schin #endif 814887Schin 824887Schin } Find_t; 834887Schin 844887Schin #if _BLD_ast && defined(__EXPORT__) 854887Schin #undef __MANGLE__ 864887Schin #define __MANGLE__ __LINKAGE__ __EXPORT__ 874887Schin #endif 884887Schin 894887Schin extern __MANGLE__ Find_t* findopen __PROTO__((const char*, const char*, const char*, Finddisc_t*)); 904887Schin extern __MANGLE__ char* findread __PROTO__((Find_t*)); 914887Schin extern __MANGLE__ int findwrite __PROTO__((Find_t*, const char*, size_t, const char*)); 924887Schin extern __MANGLE__ int findclose __PROTO__((Find_t*)); 934887Schin 944887Schin #undef __MANGLE__ 954887Schin #define __MANGLE__ __LINKAGE__ 964887Schin 974887Schin #endif 98