xref: /onnv-gate/usr/src/lib/libast/amd64/include/ast/ast_std.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  * Advanced Software Technology Library
274887Schin  * AT&T Research
284887Schin  *
294887Schin  * a union of standard headers that works
304887Schin  * with local extensions enabled
314887Schin  * and local omission compensation
324887Schin  */
334887Schin 
344887Schin #ifndef _AST_STD_H
354887Schin #if !defined(__PROTO__)
364887Schin #include <prototyped.h>
374887Schin #endif
384887Schin #if !defined(__LINKAGE__)
394887Schin #define __LINKAGE__		/* 2004-08-11 transition */
404887Schin #endif
414887Schin 
424887Schin #define _AST_STD_H		1
434887Schin #define _AST_STD_I		1
444887Schin 
454887Schin #include <ast_common.h>
464887Schin 
474887Schin #if _BLD_ast
484887Schin #define _BLD_cdt	1
494887Schin #define _BLD_sfio	1
504887Schin #if !_UWIN
514887Schin #define _BLD_vmalloc	1
524887Schin #endif
534887Schin #endif
544887Schin 
554887Schin #ifdef	_SFSTDIO_H
564887Schin #define _SKIP_SFSTDIO_H
574887Schin #else
584887Schin #define _SFSTDIO_H
594887Schin #ifndef FILE
604887Schin #ifndef _SFIO_H
614887Schin struct _sfio_s;
624887Schin #endif
634887Schin #define FILE		struct _sfio_s
644887Schin #ifndef	__FILE_typedef
654887Schin #define __FILE_typedef	1
664887Schin #endif
674887Schin #ifndef _FILEDEFED
684887Schin #define _FILEDEFED	1
694887Schin #endif
704887Schin #endif
714887Schin #endif
724887Schin 
734887Schin #include <ast_lib.h>
744887Schin #include <ast_sys.h>
754887Schin #include <ast_getopt.h>	/* <stdlib.h> does this */
764887Schin #include <ast_fcntl.h>
774887Schin #include <ast_limits.h>
784887Schin #include <ast_botch.h>
794887Schin 
804887Schin #ifdef	_SKIP_SFSTDIO_H
814887Schin #undef	_SKIP_SFSTDIO_H
824887Schin #else
834887Schin #undef	_SFSTDIO_H
844887Schin #undef	FILE
854887Schin #endif
864887Schin 
874887Schin /* locale stuff */
884887Schin 
894887Schin #if !_hdr_locale
904887Schin 
914887Schin struct lconv
924887Schin {
934887Schin 	char*	decimal_point;
944887Schin 	char*	thousands_sep;
954887Schin 	char*	grouping;
964887Schin 	char*	int_curr_symbol;
974887Schin 	char*	currency_symbol;
984887Schin 	char*	mon_decimal_point;
994887Schin 	char*	mon_thousands_sep;
1004887Schin 	char*	mon_grouping;
1014887Schin 	char*	positive_sign;
1024887Schin 	char*	negative_sign;
1034887Schin 	char	int_frac_digits;
1044887Schin 	char	frac_digits;
1054887Schin 	char	p_cs_precedes;
1064887Schin 	char	p_sep_by_space;
1074887Schin 	char	n_cs_precedes;
1084887Schin 	char	n_sep_by_space;
1094887Schin 	char	p_sign_posn;
1104887Schin 	char	n_sign_posn;
1114887Schin };
1124887Schin 
1134887Schin #endif
1144887Schin 
1154887Schin #if _BLD_ast && defined(__EXPORT__)
1164887Schin #undef __MANGLE__
1174887Schin #define __MANGLE__ __LINKAGE__		__EXPORT__
1184887Schin #endif
1194887Schin 
12010898Sroland.mainz@nrubsig.org #if !_UWIN /* for ast54 compatibility */
12110898Sroland.mainz@nrubsig.org 
1228462SApril.Chin@Sun.COM #undef	getenv
1238462SApril.Chin@Sun.COM #define getenv		_ast_getenv
1248462SApril.Chin@Sun.COM 
12510898Sroland.mainz@nrubsig.org #undef	setenviron
12610898Sroland.mainz@nrubsig.org #define setenviron	_ast_setenviron
12710898Sroland.mainz@nrubsig.org 
12810898Sroland.mainz@nrubsig.org extern __MANGLE__ char*		getenv __PROTO__((const char*));
12910898Sroland.mainz@nrubsig.org 
13010898Sroland.mainz@nrubsig.org #endif
13110898Sroland.mainz@nrubsig.org 
1324887Schin #undef	localeconv
1334887Schin #define localeconv	_ast_localeconv
1344887Schin 
1354887Schin #undef	setlocale
1364887Schin #define setlocale	_ast_setlocale
1374887Schin 
1384887Schin #undef	strerror
1394887Schin #define strerror	_ast_strerror
1404887Schin 
1414887Schin extern __MANGLE__ struct lconv*	localeconv __PROTO__((void));
1428462SApril.Chin@Sun.COM extern __MANGLE__ char*		setenviron __PROTO__((const char*));
1434887Schin extern __MANGLE__ char*		setlocale __PROTO__((int, const char*));
1444887Schin extern __MANGLE__ char*		strerror __PROTO__((int));
1454887Schin 
1464887Schin #define AST_MESSAGE_SET		3	/* see <mc.h> mcindex()		*/
1474887Schin 
1484887Schin /*
1494887Schin  * maintain this order when adding categories
1504887Schin  */
1514887Schin 
1524887Schin #define AST_LC_ALL		0
1534887Schin #define AST_LC_COLLATE		1
1544887Schin #define AST_LC_CTYPE		2
1554887Schin #define AST_LC_MESSAGES		3
1564887Schin #define AST_LC_MONETARY		4
1574887Schin #define AST_LC_NUMERIC		5
1584887Schin #define AST_LC_TIME		6
1594887Schin #define AST_LC_IDENTIFICATION	7
1604887Schin #define AST_LC_ADDRESS		8
1614887Schin #define AST_LC_NAME		9
1624887Schin #define AST_LC_TELEPHONE	10
1634887Schin #define AST_LC_XLITERATE	11
1644887Schin #define AST_LC_MEASUREMENT	12
1654887Schin #define AST_LC_PAPER		13
1664887Schin #define AST_LC_COUNT		14
16710898Sroland.mainz@nrubsig.org #define AST_LC_LANG		255
1684887Schin 
169*12068SRoger.Faulkner@Oracle.COM #define AST_LC_internal		1
170*12068SRoger.Faulkner@Oracle.COM #define AST_LC_setenv		(1L<<27)
1714887Schin #define AST_LC_find		(1L<<28)
1724887Schin #define AST_LC_debug		(1L<<29)
1734887Schin #define AST_LC_setlocale	(1L<<30)
1744887Schin #define AST_LC_translate	(1L<<31)
1754887Schin 
1764887Schin #ifndef LC_ALL
1774887Schin #define LC_ALL			(-AST_LC_ALL)
1784887Schin #endif
1794887Schin #ifndef LC_COLLATE
1804887Schin #define LC_COLLATE		(-AST_LC_COLLATE)
1814887Schin #endif
1824887Schin #ifndef LC_CTYPE
1834887Schin #define LC_CTYPE		(-AST_LC_CTYPE)
1844887Schin #endif
1854887Schin #ifndef LC_MESSAGES
1864887Schin #define LC_MESSAGES		(-AST_LC_MESSAGES)
1874887Schin #endif
1884887Schin #ifndef LC_MONETARY
1894887Schin #define LC_MONETARY		(-AST_LC_MONETARY)
1904887Schin #endif
1914887Schin #ifndef LC_NUMERIC
1924887Schin #define LC_NUMERIC		(-AST_LC_NUMERIC)
1934887Schin #endif
1944887Schin #ifndef LC_TIME
1954887Schin #define LC_TIME			(-AST_LC_TIME)
1964887Schin #endif
1974887Schin #ifndef LC_ADDRESS
1984887Schin #define LC_ADDRESS		(-AST_LC_ADDRESS)
1994887Schin #endif
2004887Schin #ifndef LC_IDENTIFICATION
2014887Schin #define LC_IDENTIFICATION	(-AST_LC_IDENTIFICATION)
2024887Schin #endif
2034887Schin #ifndef LC_NAME
2044887Schin #define LC_NAME			(-AST_LC_NAME)
2054887Schin #endif
2064887Schin #ifndef LC_TELEPHONE
2074887Schin #define LC_TELEPHONE		(-AST_LC_TELEPHONE)
2084887Schin #endif
2094887Schin #ifndef LC_XLITERATE
2104887Schin #define LC_XLITERATE		(-AST_LC_XLITERATE)
2114887Schin #endif
2124887Schin #ifndef LC_MEASUREMENT
2134887Schin #define LC_MEASUREMENT		(-AST_LC_MEASUREMENT)
2144887Schin #endif
2154887Schin #ifndef LC_PAPER
2164887Schin #define LC_PAPER		(-AST_LC_PAPER)
2174887Schin #endif
21810898Sroland.mainz@nrubsig.org #ifndef LC_LANG
21910898Sroland.mainz@nrubsig.org #define LC_LANG			(-AST_LC_LANG)
22010898Sroland.mainz@nrubsig.org #endif
2214887Schin 
2224887Schin #undef __MANGLE__
2234887Schin #define __MANGLE__ __LINKAGE__
2244887Schin 
2254887Schin #undef	strcoll
2264887Schin #if _std_strcoll
2274887Schin #define strcoll		_ast_info.collate
2284887Schin #else
2294887Schin #define strcoll		strcmp
2304887Schin #endif
2314887Schin 
2324887Schin typedef struct
2334887Schin {
2344887Schin 
2354887Schin 	char*		id;
2364887Schin 
2374887Schin 	struct
2384887Schin 	{
2394887Schin 	uint32_t	serial;
2404887Schin 	uint32_t	set;
2414887Schin 	}		locale;
2424887Schin 
2434887Schin 	long		tmp_long;
2444887Schin 	size_t		tmp_size;
2454887Schin 	short		tmp_short;
2464887Schin 	char		tmp_char;
2474887Schin 	wchar_t		tmp_wchar;
2484887Schin 
2494887Schin 	int		(*collate) __PROTO__((const char*, const char*));
2504887Schin 
2514887Schin 	int		tmp_int;
2524887Schin 	__V_*		tmp_pointer;
2534887Schin 
2544887Schin 	int		mb_cur_max;
2554887Schin 	int		(*mb_len) __PROTO__((const char*, size_t));
2564887Schin 	int		(*mb_towc) __PROTO__((wchar_t*, const char*, size_t));
2574887Schin 	size_t		(*mb_xfrm) __PROTO__((char*, const char*, size_t));
2584887Schin 	int		(*mb_width) __PROTO__((wchar_t));
2594887Schin 	int		(*mb_conv) __PROTO__((char*, wchar_t));
2604887Schin 
2614887Schin 	uint32_t	env_serial;
26210898Sroland.mainz@nrubsig.org 	uint32_t	mb_sync;
263*12068SRoger.Faulkner@Oracle.COM 	uint32_t	version;
2644887Schin 
265*12068SRoger.Faulkner@Oracle.COM 	char		pad[936];
2664887Schin 
2674887Schin } _Ast_info_t;
2684887Schin 
2694887Schin #if _BLD_ast && defined(__EXPORT__)
2704887Schin #undef __MANGLE__
2714887Schin #define __MANGLE__ __LINKAGE__ __EXPORT__
2724887Schin #endif
2734887Schin #if !_BLD_ast && defined(__IMPORT__)
2744887Schin #undef __MANGLE__
2754887Schin #define __MANGLE__ __LINKAGE__ __IMPORT__
2764887Schin #endif
2774887Schin 
2784887Schin extern __MANGLE__ _Ast_info_t	_ast_info;
2794887Schin 
2804887Schin #undef __MANGLE__
2814887Schin #define __MANGLE__ __LINKAGE__
2824887Schin 
2834887Schin /* largefile hackery -- ast uses the large versions by default */
2844887Schin 
2854887Schin #if _typ_off64_t
2864887Schin #undef	off_t
2874887Schin #define off_t		off64_t
2884887Schin #endif
2894887Schin #if !defined(ftruncate) && _lib_ftruncate64
2904887Schin #define ftruncate	ftruncate64
2914887Schin extern __MANGLE__ int		ftruncate64 __PROTO__((int, off64_t));
2924887Schin #endif
2934887Schin #if !defined(lseek) && _lib_lseek64
2944887Schin #define lseek		lseek64
2954887Schin extern __MANGLE__ off64_t		lseek64 __PROTO__((int, off64_t, int));
2964887Schin #endif
2974887Schin #if !defined(truncate) && _lib_truncate64
2984887Schin #define truncate	truncate64
2994887Schin extern __MANGLE__ int		truncate64 __PROTO__((const char*, off64_t));
3004887Schin #endif
3014887Schin 
3024887Schin /* direct macro access for bsd crossover */
3034887Schin 
3044887Schin #if !defined(__cplusplus)
3054887Schin 
3064887Schin #if !defined(memcpy) && !defined(_lib_memcpy) && defined(_lib_bcopy)
3074887Schin #define memcpy(t,f,n)	(bcopy(f,t,n),(t))
3084887Schin #endif
3094887Schin 
3104887Schin #if !defined(memzero) && !defined(_lib_memzero)
3114887Schin #if defined(_lib_memset) || !defined(_lib_bzero)
3124887Schin #define memzero(b,n)	memset(b,0,n)
3134887Schin #else
3144887Schin #define memzero(b,n)	(bzero(b,n),(b))
3154887Schin #endif
3164887Schin #endif
3174887Schin 
3184887Schin #endif
3194887Schin 
3204887Schin #if !defined(remove)
3214887Schin extern __MANGLE__ int		remove __PROTO__((const char*));
3224887Schin #endif
3234887Schin 
3244887Schin #if !defined(rename)
3254887Schin extern __MANGLE__ int		rename __PROTO__((const char*, const char*));
3264887Schin #endif
3274887Schin 
3284887Schin #if !defined(strchr) && !defined(_lib_strchr) && defined(_lib_index)
3294887Schin #define strchr(s,c)	index(s,c)
3304887Schin #endif
3314887Schin 
3324887Schin #if !defined(strrchr) && !defined(_lib_strrchr) && defined(_lib_rindex)
3334887Schin #define strrchr(s,c)	rindex(s,c)
3344887Schin #endif
3354887Schin 
3364887Schin /* and now introducing prototypes botched by the standard(s) */
3374887Schin 
3384887Schin #if _BLD_ast && defined(__EXPORT__)
3394887Schin #undef __MANGLE__
3404887Schin #define __MANGLE__ __LINKAGE__		__EXPORT__
3414887Schin #endif
3424887Schin 
3434887Schin #undef	getpgrp
3444887Schin #define	getpgrp()	_ast_getpgrp()
3454887Schin extern __MANGLE__ int		_ast_getpgrp __PROTO__((void));
3464887Schin 
3474887Schin #undef __MANGLE__
3484887Schin #define __MANGLE__ __LINKAGE__
3494887Schin 
3504887Schin /*
3514887Schin  * and finally, standard interfaces hijacked by ast
352*12068SRoger.Faulkner@Oracle.COM  * _AST_STD_I delays headers that require <ast_map.h>
3534887Schin  */
3544887Schin 
3554887Schin #include <ast_map.h>
3564887Schin 
3574887Schin #undef	_AST_STD_I
3584887Schin 
3598462SApril.Chin@Sun.COM #if _AST_GETOPT_H < 0
3608462SApril.Chin@Sun.COM #undef	_AST_GETOPT_H
3618462SApril.Chin@Sun.COM #include <ast_getopt.h>
3628462SApril.Chin@Sun.COM #endif
3638462SApril.Chin@Sun.COM 
3648462SApril.Chin@Sun.COM #if _GETOPT_H < 0
3658462SApril.Chin@Sun.COM #undef	_GETOPT_H
3668462SApril.Chin@Sun.COM #include <getopt.h>
3678462SApril.Chin@Sun.COM #endif
3688462SApril.Chin@Sun.COM 
3694887Schin #if _REGEX_H < 0
3704887Schin #undef	_REGEX_H
3714887Schin #include <regex.h>
3724887Schin #endif
3734887Schin 
3744887Schin #endif
375