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 * record format interface 304887Schin */ 314887Schin 324887Schin #ifndef _RECFMT_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 _RECFMT_H 1 414887Schin 424887Schin #include <ast.h> 434887Schin 444887Schin typedef uint32_t Recfmt_t; 454887Schin 464887Schin #define REC_delimited 0 474887Schin #define REC_fixed 1 484887Schin #define REC_variable 2 494887Schin #define REC_method 14 504887Schin #define REC_none 15 514887Schin 524887Schin #define REC_M_path 0 534887Schin #define REC_M_data 1 544887Schin 554887Schin #define RECTYPE(f) (((f)>>28)&((1<<4)-1)) 564887Schin 574887Schin #define REC_D_TYPE(d) ((REC_delimited<<28)|((d)&((1<<8)-1))) 584887Schin #define REC_D_DELIMITER(f) ((f)&((1<<8)-1)) 594887Schin 604887Schin #define REC_F_TYPE(s) ((REC_fixed<<28)|((s)&((1<<28)-1))) 614887Schin #define REC_F_SIZE(f) ((f)&((1<<28)-1)) 624887Schin 634887Schin #define REC_U_TYPE(t,a) (((t)<<28)|((a)&((1<<28)-1))) 644887Schin #define REC_U_ATTRIBUTES(f) ((f)&~((1<<28)-1)) 654887Schin 664887Schin #define REC_V_TYPE(h,o,z,l,i) ((REC_variable<<28)|((h)<<23)|((o)<<19)|(((z)-1)<<18)|((l)<<17)|((i)<<16)) 674887Schin #define REC_V_RECORD(f,s) (((f)&(((1<<16)-1)<<16))|(s)) 684887Schin #define REC_V_HEADER(f) (((f)>>23)&((1<<5)-1)) 694887Schin #define REC_V_OFFSET(f) (((f)>>19)&((1<<4)-1)) 704887Schin #define REC_V_LENGTH(f) ((((f)>>18)&1)+1) 714887Schin #define REC_V_LITTLE(f) (((f)>>17)&1) 724887Schin #define REC_V_INCLUSIVE(f) (((f)>>16)&1) 734887Schin #define REC_V_SIZE(f) ((f)&((1<<16)-1)) 744887Schin #define REC_V_ATTRIBUTES(f) ((f)&~((1<<16)-1)) 754887Schin 764887Schin #define REC_M_TYPE(i) ((REC_method<<28)|(i)) 774887Schin #define REC_M_INDEX(f) ((f)&((1<<28)-1)) 784887Schin 794887Schin #define REC_N_TYPE() 0xffffffff 804887Schin 814887Schin #if _BLD_ast && defined(__EXPORT__) 824887Schin #undef __MANGLE__ 834887Schin #define __MANGLE__ __LINKAGE__ __EXPORT__ 844887Schin #endif 854887Schin 864887Schin extern __MANGLE__ char* fmtrec __PROTO__((Recfmt_t, int)); 874887Schin extern __MANGLE__ Recfmt_t recfmt __PROTO__((const __V_*, size_t, off_t)); 884887Schin extern __MANGLE__ Recfmt_t recstr __PROTO__((const char*, char**)); 894887Schin extern __MANGLE__ ssize_t reclen __PROTO__((Recfmt_t, const __V_*, size_t)); 904887Schin 914887Schin #undef __MANGLE__ 924887Schin #define __MANGLE__ __LINKAGE__ 934887Schin 944887Schin #endif 95