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