xref: /titanic_50/usr/src/lib/libast/amd64/include/ast/mc.h (revision 24dd95375a09d43fe4f6b55f6d5188f4bac4f68d)
1 
2 /* : : generated by proto : : */
3 /***********************************************************************
4 *                                                                      *
5 *               This software is part of the ast package               *
6 *           Copyright (c) 1985-2007 AT&T Knowledge Ventures            *
7 *                      and is licensed under the                       *
8 *                  Common Public License, Version 1.0                  *
9 *                      by AT&T Knowledge Ventures                      *
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 /*
27  * machine independent binary message catalog interface
28  *
29  * file layout
30  * all numbers are sfputu() format
31  *
32  *	4 char magic (^M^S^G0)
33  *	<method locale YYYY-MM-DD>\0
34  *	(<optional strings>\0)*
35  *	\0
36  *	string table size
37  *	#msgs total
38  *	#max set number
39  *	#set-id 1
40  *	#msgs in set 1
41  *	 ...
42  *	#set-id #sets
43  *	#msgs in set #sets
44  *	end of sets (0)
45  *	msg(1,1) size
46  *	 ...
47  *	msg(#sets,#msgs) size
48  *	string table
49  */
50 
51 #ifndef _MC_H
52 #if !defined(__PROTO__)
53 #include <prototyped.h>
54 #endif
55 #if !defined(__LINKAGE__)
56 #define __LINKAGE__		/* 2004-08-11 transition */
57 #endif
58 
59 #define _MC_H
60 
61 #include <ast.h>
62 
63 #define MC_MAGIC	"\015\023\007\000"
64 #define MC_MAGIC_SIZE	4
65 
66 #define MC_SET_MAX	1023
67 #define MC_NUM_MAX	32767
68 
69 #define MC_NLS		(1<<10)
70 
71 #define MC_MESSAGE_SET(s)	mcindex(s,NiL,NiL,NiL)
72 
73 typedef struct
74 {
75 	char**		msg;
76 	int		num;
77 	int		gen;
78 } Mcset_t;
79 
80 typedef struct
81 {
82 	Mcset_t*	set;
83 	int		num;
84 	int		gen;
85 	char*		translation;
86 #ifdef _MC_PRIVATE_
87 	_MC_PRIVATE_
88 #endif
89 } Mc_t;
90 
91 #if _BLD_ast && defined(__EXPORT__)
92 #undef __MANGLE__
93 #define __MANGLE__ __LINKAGE__		__EXPORT__
94 #endif
95 
96 extern __MANGLE__ char*		mcfind __PROTO__((char*, const char*, const char*, int, int));
97 extern __MANGLE__ Mc_t*		mcopen __PROTO__((Sfio_t*));
98 extern __MANGLE__ char*		mcget __PROTO__((Mc_t*, int, int, const char*));
99 extern __MANGLE__ int		mcput __PROTO__((Mc_t*, int, int, const char*));
100 extern __MANGLE__ int		mcdump __PROTO__((Mc_t*, Sfio_t*));
101 extern __MANGLE__ int		mcindex __PROTO__((const char*, char**, int*, int*));
102 extern __MANGLE__ int		mcclose __PROTO__((Mc_t*));
103 
104 #undef __MANGLE__
105 #define __MANGLE__ __LINKAGE__
106 
107 #endif
108