xref: /onnv-gate/usr/src/lib/libast/sparc/include/ast/mc.h (revision 12068:08a39a083754)
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 /*
274887Schin  * machine independent binary message catalog interface
284887Schin  *
294887Schin  * file layout
304887Schin  * all numbers are sfputu() format
314887Schin  *
324887Schin  *	4 char magic (^M^S^G0)
334887Schin  *	<method locale YYYY-MM-DD>\0
344887Schin  *	(<optional strings>\0)*
354887Schin  *	\0
364887Schin  *	string table size
374887Schin  *	#msgs total
384887Schin  *	#max set number
394887Schin  *	#set-id 1
404887Schin  *	#msgs in set 1
414887Schin  *	 ...
424887Schin  *	#set-id #sets
434887Schin  *	#msgs in set #sets
444887Schin  *	end of sets (0)
454887Schin  *	msg(1,1) size
464887Schin  *	 ...
474887Schin  *	msg(#sets,#msgs) size
484887Schin  *	string table
494887Schin  */
504887Schin 
514887Schin #ifndef _MC_H
524887Schin #if !defined(__PROTO__)
534887Schin #include <prototyped.h>
544887Schin #endif
554887Schin #if !defined(__LINKAGE__)
564887Schin #define __LINKAGE__		/* 2004-08-11 transition */
574887Schin #endif
584887Schin 
594887Schin #define _MC_H
604887Schin 
614887Schin #include <ast.h>
624887Schin 
634887Schin #define MC_MAGIC	"\015\023\007\000"
644887Schin #define MC_MAGIC_SIZE	4
654887Schin 
664887Schin #define MC_SET_MAX	1023
674887Schin #define MC_NUM_MAX	32767
684887Schin 
694887Schin #define MC_NLS		(1<<10)
704887Schin 
714887Schin #define MC_MESSAGE_SET(s)	mcindex(s,NiL,NiL,NiL)
724887Schin 
734887Schin typedef struct
744887Schin {
754887Schin 	char**		msg;
764887Schin 	int		num;
774887Schin 	int		gen;
784887Schin } Mcset_t;
794887Schin 
804887Schin typedef struct
814887Schin {
824887Schin 	Mcset_t*	set;
834887Schin 	int		num;
844887Schin 	int		gen;
854887Schin 	char*		translation;
864887Schin #ifdef _MC_PRIVATE_
874887Schin 	_MC_PRIVATE_
884887Schin #endif
894887Schin } Mc_t;
904887Schin 
914887Schin #if _BLD_ast && defined(__EXPORT__)
924887Schin #undef __MANGLE__
934887Schin #define __MANGLE__ __LINKAGE__		__EXPORT__
944887Schin #endif
954887Schin 
964887Schin extern __MANGLE__ char*		mcfind __PROTO__((char*, const char*, const char*, int, int));
974887Schin extern __MANGLE__ Mc_t*		mcopen __PROTO__((Sfio_t*));
984887Schin extern __MANGLE__ char*		mcget __PROTO__((Mc_t*, int, int, const char*));
994887Schin extern __MANGLE__ int		mcput __PROTO__((Mc_t*, int, int, const char*));
1004887Schin extern __MANGLE__ int		mcdump __PROTO__((Mc_t*, Sfio_t*));
1014887Schin extern __MANGLE__ int		mcindex __PROTO__((const char*, char**, int*, int*));
1024887Schin extern __MANGLE__ int		mcclose __PROTO__((Mc_t*));
1034887Schin 
1044887Schin #undef __MANGLE__
1054887Schin #define __MANGLE__ __LINKAGE__
1064887Schin 
1074887Schin #endif
108