xref: /onnv-gate/usr/src/lib/libast/sparcv9/include/ast/lc.h (revision 8462:6e341f5569ba)
14887Schin /***********************************************************************
24887Schin *                                                                      *
34887Schin *               This software is part of the ast package               *
4*8462SApril.Chin@Sun.COM *          Copyright (c) 1985-2008 AT&T Intellectual Property          *
54887Schin *                      and is licensed under the                       *
64887Schin *                  Common Public License, Version 1.0                  *
7*8462SApril.Chin@Sun.COM *                    by AT&T Intellectual Property                     *
84887Schin *                                                                      *
94887Schin *                A copy of the License is available at                 *
104887Schin *            http://www.opensource.org/licenses/cpl1.0.txt             *
114887Schin *         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
124887Schin *                                                                      *
134887Schin *              Information and Software Systems Research               *
144887Schin *                            AT&T Research                             *
154887Schin *                           Florham Park NJ                            *
164887Schin *                                                                      *
174887Schin *                 Glenn Fowler <gsf@research.att.com>                  *
184887Schin *                  David Korn <dgk@research.att.com>                   *
194887Schin *                   Phong Vo <kpv@research.att.com>                    *
204887Schin *                                                                      *
214887Schin ***********************************************************************/
224887Schin 
234887Schin /* : : generated by proto : : */
244887Schin /* : : generated by ./lcgen : : */
254887Schin 
264887Schin 
274887Schin #ifndef _LC_H
284887Schin #if !defined(__PROTO__)
294887Schin #include <prototyped.h>
304887Schin #endif
314887Schin #if !defined(__LINKAGE__)
324887Schin #define __LINKAGE__		/* 2004-08-11 transition */
334887Schin #endif
344887Schin 
354887Schin #define _LC_H			1
364887Schin 
374887Schin #include <ast.h>
384887Schin 
394887Schin #define LC_abbreviated		0x00001
404887Schin #define LC_checked		0x00002
414887Schin #define LC_default		0x00004
424887Schin #define LC_defined		0x00008
434887Schin #define LC_debug		0x00010
444887Schin #define LC_local		0x00020
454887Schin #define LC_primary		0x00040
464887Schin #define LC_qualified		0x00080
474887Schin #define LC_undefined		0x00100
484887Schin #define LC_verbose		0x00200
494887Schin #define LC_user			0x10000
504887Schin #define LC_language_attribute_max		2
514887Schin #define LC_territory_language_max		4
524887Schin 
534887Schin struct Lc_s;
544887Schin 
554887Schin typedef struct Lc_info_s
564887Schin {
574887Schin 	const struct Lc_s*	lc;
584887Schin 	unsigned long		number;
594887Schin 	__V_*			data;
604887Schin } Lc_info_t;
614887Schin 
624887Schin typedef struct Lc_attribute_s
634887Schin {
644887Schin 	const char*		name;
654887Schin 	unsigned long		flags;
664887Schin 	unsigned long		index;
674887Schin } Lc_attribute_t;
684887Schin 
694887Schin typedef struct Lc_charset_s
704887Schin {
714887Schin 	const char*		code;
724887Schin 	const char*		alternates;
734887Schin 	const char*		ms;
744887Schin 	unsigned long		index;
754887Schin } Lc_charset_t;
764887Schin 
774887Schin typedef struct Lc_language_s
784887Schin {
794887Schin 	const char*		code;
804887Schin 	const char*		name;
814887Schin 	const char*		alternates;
824887Schin 	const Lc_charset_t*	charset;
834887Schin 	unsigned long		flags;
844887Schin 	unsigned long		index;
854887Schin 	const Lc_attribute_t*	attributes[LC_language_attribute_max];
864887Schin } Lc_language_t;
874887Schin 
884887Schin typedef struct Lc_territory_s
894887Schin {
904887Schin 	const char*		code;
914887Schin 	const char*		name;
924887Schin 	unsigned long		flags;
934887Schin 	unsigned long		index;
944887Schin 	const Lc_language_t*	languages[LC_territory_language_max];
954887Schin #ifdef _LC_TERRITORY_PRIVATE_
964887Schin 	_LC_TERRITORY_PRIVATE_
974887Schin #endif
984887Schin } Lc_territory_t;
994887Schin 
1004887Schin typedef struct Lc_map_s
1014887Schin {
1024887Schin 	const char*		code;
1034887Schin 	const Lc_language_t*	language;
1044887Schin 	const Lc_territory_t*	territory;
1054887Schin 	const Lc_charset_t*	charset;
1064887Schin 	const Lc_attribute_t*	attribute;
1074887Schin } Lc_map_t;
1084887Schin 
1094887Schin typedef struct Lc_attribute_list_s
1104887Schin {
1114887Schin 	struct Lc_attribute_list_s*	next;
1124887Schin 	const Lc_attribute_t*		attribute;
1134887Schin } Lc_attribute_list_t;
1144887Schin 
1154887Schin typedef struct Lc_s
1164887Schin {
1174887Schin 	const char*		name;
1184887Schin 	const char*		code;
1194887Schin 	const Lc_language_t*	language;
1204887Schin 	const Lc_territory_t*	territory;
1214887Schin 	const Lc_charset_t*	charset;
1224887Schin 	const Lc_attribute_list_t*	attributes;
1234887Schin 	unsigned long		flags;
1244887Schin 	unsigned long		index;
1254887Schin #ifdef _LC_PRIVATE_
1264887Schin 	_LC_PRIVATE_
1274887Schin #endif
1284887Schin } Lc_t;
1294887Schin 
1304887Schin struct Lc_category_s;
1314887Schin 
1324887Schin typedef int (*Lc_category_set_f) __PROTO__((struct Lc_category_s*));
1334887Schin 
1344887Schin typedef struct Lc_category_s
1354887Schin {
1364887Schin 	const char*		name;
1374887Schin 	int			external;
1384887Schin 	int			internal;
1394887Schin 	Lc_category_set_f	setf;
1404887Schin 	Lc_t*			prev;
1414887Schin } Lc_category_t;
1424887Schin 
1434887Schin #if _BLD_ast && defined(__EXPORT__)
1444887Schin #undef __MANGLE__
1454887Schin #define __MANGLE__ __LINKAGE__		__EXPORT__
1464887Schin #endif
1474887Schin 
1484887Schin extern __MANGLE__ size_t		lccanon __PROTO__((Lc_t*, unsigned long flags, char*, size_t));
1494887Schin extern __MANGLE__ Lc_category_t*	lccategories __PROTO__((void));
1504887Schin extern __MANGLE__ int		lcindex __PROTO__((int, int));
1514887Schin extern __MANGLE__ Lc_info_t*	lcinfo __PROTO__((int));
1524887Schin extern __MANGLE__ Lc_t*		lcmake __PROTO__((const char*));
1534887Schin extern __MANGLE__ Lc_t*		lcscan __PROTO__((Lc_t*));
1544887Schin 
1554887Schin #undef __MANGLE__
1564887Schin #define __MANGLE__ __LINKAGE__
1574887Schin 
1584887Schin #endif
159