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 * magic interface definitions 304887Schin */ 314887Schin 324887Schin #ifndef _MAGIC_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 _MAGIC_H 414887Schin 424887Schin #include <sfio.h> 434887Schin #include <ls.h> 444887Schin 454887Schin #define MAGIC_VERSION 19961031L 464887Schin 474887Schin #ifndef MAGIC_FILE 484887Schin #define MAGIC_FILE "lib/file/magic" 494887Schin #endif 504887Schin 514887Schin #ifndef MAGIC_DIR 524887Schin #define MAGIC_DIR "lib/file" 534887Schin #endif 544887Schin 554887Schin #define MAGIC_FILE_ENV "MAGICFILE" 564887Schin 574887Schin #define MAGIC_MIME (1<<0) /* magictype returns MIME type */ 584887Schin #define MAGIC_VERBOSE (1<<1) /* verbose magic file errors */ 594887Schin 604887Schin #define MAGIC_USER (1L<<16) /* first user flag bit */ 614887Schin 624887Schin struct Magic_s; 634887Schin struct Magicdisc_s; 644887Schin 654887Schin typedef struct Magicdisc_s 664887Schin { 674887Schin unsigned long version; /* interface version */ 684887Schin unsigned long flags; /* MAGIC_* flags */ 694887Schin Error_f errorf; /* error function */ 704887Schin } Magicdisc_t; 714887Schin 724887Schin typedef struct Magic_s 734887Schin { 744887Schin const char* id; /* library id string */ 754887Schin 764887Schin #ifdef _MAGIC_PRIVATE_ 774887Schin _MAGIC_PRIVATE_ 784887Schin #endif 794887Schin 804887Schin } Magic_t; 814887Schin 824887Schin #if _BLD_ast && defined(__EXPORT__) 834887Schin #undef __MANGLE__ 844887Schin #define __MANGLE__ __LINKAGE__ __EXPORT__ 854887Schin #endif 864887Schin 874887Schin extern __MANGLE__ Magic_t* magicopen __PROTO__((Magicdisc_t*)); 884887Schin extern __MANGLE__ int magicload __PROTO__((Magic_t*, const char*, unsigned long)); 894887Schin extern __MANGLE__ int magiclist __PROTO__((Magic_t*, Sfio_t*)); 904887Schin extern __MANGLE__ char* magictype __PROTO__((Magic_t*, Sfio_t*, const char*, struct stat*)); 914887Schin extern __MANGLE__ int magicclose __PROTO__((Magic_t*)); 924887Schin 934887Schin #undef __MANGLE__ 944887Schin #define __MANGLE__ __LINKAGE__ 954887Schin 964887Schin #endif 97