xref: /onnv-gate/usr/src/lib/libast/sparc/include/ast/lc.h (revision 12068:08a39a083754)
14887Schin /***********************************************************************
24887Schin *                                                                      *
34887Schin *               This software is part of the ast package               *
4*12068SRoger.Faulkner@Oracle.COM *          Copyright (c) 1985-2010 AT&T Intellectual Property          *
54887Schin *                      and is licensed under the                       *
64887Schin *                  Common Public License, Version 1.0                  *
78462SApril.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
4110898Sroland.mainz@nrubsig.org #define LC_debug		0x00004
4210898Sroland.mainz@nrubsig.org #define LC_default		0x00008
4310898Sroland.mainz@nrubsig.org #define LC_defined		0x00010
444887Schin #define LC_local		0x00020
454887Schin #define LC_primary		0x00040
464887Schin #define LC_qualified		0x00080
474887Schin #define LC_undefined		0x00100
4810898Sroland.mainz@nrubsig.org #define LC_utf8			0x00200
4910898Sroland.mainz@nrubsig.org #define LC_verbose		0x00400
50*12068SRoger.Faulkner@Oracle.COM #define LC_setlocale			0x10000
51*12068SRoger.Faulkner@Oracle.COM #define LC_setenv			0x20000
52*12068SRoger.Faulkner@Oracle.COM #define LC_user			0x40000
534887Schin #define LC_language_attribute_max		2
544887Schin #define LC_territory_language_max		4
554887Schin 
564887Schin struct Lc_s;
574887Schin 
584887Schin typedef struct Lc_info_s
594887Schin {
604887Schin 	const struct Lc_s*	lc;
614887Schin 	unsigned long		number;
624887Schin 	__V_*			data;
634887Schin } Lc_info_t;
644887Schin 
654887Schin typedef struct Lc_attribute_s
664887Schin {
674887Schin 	const char*		name;
684887Schin 	unsigned long		flags;
694887Schin 	unsigned long		index;
704887Schin } Lc_attribute_t;
714887Schin 
724887Schin typedef struct Lc_charset_s
734887Schin {
744887Schin 	const char*		code;
754887Schin 	const char*		alternates;
764887Schin 	const char*		ms;
774887Schin 	unsigned long		index;
784887Schin } Lc_charset_t;
794887Schin 
804887Schin typedef struct Lc_language_s
814887Schin {
824887Schin 	const char*		code;
834887Schin 	const char*		name;
844887Schin 	const char*		alternates;
854887Schin 	const Lc_charset_t*	charset;
864887Schin 	unsigned long		flags;
874887Schin 	unsigned long		index;
884887Schin 	const Lc_attribute_t*	attributes[LC_language_attribute_max];
894887Schin } Lc_language_t;
904887Schin 
914887Schin typedef struct Lc_territory_s
924887Schin {
934887Schin 	const char*		code;
944887Schin 	const char*		name;
954887Schin 	unsigned long		flags;
964887Schin 	unsigned long		index;
974887Schin 	const Lc_language_t*	languages[LC_territory_language_max];
984887Schin #ifdef _LC_TERRITORY_PRIVATE_
994887Schin 	_LC_TERRITORY_PRIVATE_
1004887Schin #endif
1014887Schin } Lc_territory_t;
1024887Schin 
1034887Schin typedef struct Lc_map_s
1044887Schin {
1054887Schin 	const char*		code;
1064887Schin 	const Lc_language_t*	language;
1074887Schin 	const Lc_territory_t*	territory;
1084887Schin 	const Lc_charset_t*	charset;
1094887Schin 	const Lc_attribute_t*	attribute;
1104887Schin } Lc_map_t;
1114887Schin 
1124887Schin typedef struct Lc_attribute_list_s
1134887Schin {
1144887Schin 	struct Lc_attribute_list_s*	next;
1154887Schin 	const Lc_attribute_t*		attribute;
1164887Schin } Lc_attribute_list_t;
1174887Schin 
1184887Schin typedef struct Lc_s
1194887Schin {
1204887Schin 	const char*		name;
1214887Schin 	const char*		code;
1224887Schin 	const Lc_language_t*	language;
1234887Schin 	const Lc_territory_t*	territory;
1244887Schin 	const Lc_charset_t*	charset;
1254887Schin 	const Lc_attribute_list_t*	attributes;
1264887Schin 	unsigned long		flags;
1274887Schin 	unsigned long		index;
1284887Schin #ifdef _LC_PRIVATE_
1294887Schin 	_LC_PRIVATE_
1304887Schin #endif
1314887Schin } Lc_t;
1324887Schin 
1334887Schin struct Lc_category_s;
1344887Schin 
1354887Schin typedef int (*Lc_category_set_f) __PROTO__((struct Lc_category_s*));
1364887Schin 
1374887Schin typedef struct Lc_category_s
1384887Schin {
1394887Schin 	const char*		name;
1404887Schin 	int			external;
1414887Schin 	int			internal;
1424887Schin 	Lc_category_set_f	setf;
1434887Schin 	Lc_t*			prev;
144*12068SRoger.Faulkner@Oracle.COM 	unsigned int		flags;
1454887Schin } Lc_category_t;
1464887Schin 
1474887Schin #if _BLD_ast && defined(__EXPORT__)
1484887Schin #undef __MANGLE__
1494887Schin #define __MANGLE__ __LINKAGE__		__EXPORT__
1504887Schin #endif
1514887Schin 
1524887Schin extern __MANGLE__ size_t		lccanon __PROTO__((Lc_t*, unsigned long flags, char*, size_t));
1534887Schin extern __MANGLE__ Lc_category_t*	lccategories __PROTO__((void));
1544887Schin extern __MANGLE__ int		lcindex __PROTO__((int, int));
1554887Schin extern __MANGLE__ Lc_info_t*	lcinfo __PROTO__((int));
1564887Schin extern __MANGLE__ Lc_t*		lcmake __PROTO__((const char*));
1574887Schin extern __MANGLE__ Lc_t*		lcscan __PROTO__((Lc_t*));
1584887Schin 
1594887Schin #undef __MANGLE__
1604887Schin #define __MANGLE__ __LINKAGE__
1614887Schin 
1624887Schin #endif
163