ast_std.h revision 34f9b3eef6fdadbda0a846aa4d68691ac40eace5
2N/A
2N/A/* : : generated by proto : : */
2N/A/***********************************************************************
2N/A* *
2N/A* This software is part of the ast package *
2N/A* Copyright (c) 1985-2009 AT&T Intellectual Property *
2N/A* and is licensed under the *
2N/A* Common Public License, Version 1.0 *
2N/A* by AT&T Intellectual Property *
2N/A* *
2N/A* A copy of the License is available at *
2N/A* http://www.opensource.org/licenses/cpl1.0.txt *
2N/A* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
2N/A* *
2N/A* Information and Software Systems Research *
2N/A* AT&T Research *
2N/A* Florham Park NJ *
2N/A* *
2N/A* Glenn Fowler <gsf@research.att.com> *
2N/A* David Korn <dgk@research.att.com> *
2N/A* Phong Vo <kpv@research.att.com> *
2N/A* *
2N/A***********************************************************************/
2N/A
2N/A/*
2N/A * Advanced Software Technology Library
2N/A * AT&T Research
2N/A *
2N/A * a union of standard headers that works
2N/A * with local extensions enabled
2N/A * and local omission compensation
2N/A */
2N/A
2N/A#ifndef _AST_STD_H
2N/A#if !defined(__PROTO__)
2N/A#include <prototyped.h>
2N/A#endif
2N/A#if !defined(__LINKAGE__)
2N/A#define __LINKAGE__ /* 2004-08-11 transition */
2N/A#endif
2N/A
2N/A#define _AST_STD_H 1
2N/A#define _AST_STD_I 1
2N/A
2N/A#include <ast_common.h>
2N/A
2N/A#if _BLD_ast
2N/A#define _BLD_cdt 1
2N/A#define _BLD_sfio 1
2N/A#if !_UWIN
2N/A#define _BLD_vmalloc 1
2N/A#endif
2N/A#endif
2N/A
2N/A#ifdef _SFSTDIO_H
2N/A#define _SKIP_SFSTDIO_H
2N/A#else
2N/A#define _SFSTDIO_H
2N/A#ifndef FILE
2N/A#ifndef _SFIO_H
2N/Astruct _sfio_s;
2N/A#endif
2N/A#define FILE struct _sfio_s
2N/A#ifndef __FILE_typedef
2N/A#define __FILE_typedef 1
2N/A#endif
2N/A#ifndef _FILEDEFED
2N/A#define _FILEDEFED 1
2N/A#endif
2N/A#endif
2N/A#endif
2N/A
2N/A#include <ast_lib.h>
2N/A#include <ast_sys.h>
2N/A#include <ast_getopt.h> /* <stdlib.h> does this */
2N/A#include <ast_fcntl.h>
2N/A#include <ast_limits.h>
2N/A#include <ast_botch.h>
2N/A
2N/A#ifdef _SKIP_SFSTDIO_H
2N/A#undef _SKIP_SFSTDIO_H
2N/A#else
2N/A#undef _SFSTDIO_H
2N/A#undef FILE
2N/A#endif
2N/A
2N/A/* locale stuff */
2N/A
2N/A#if !_hdr_locale
2N/A
2N/Astruct lconv
2N/A{
2N/A char* decimal_point;
2N/A char* thousands_sep;
2N/A char* grouping;
2N/A char* int_curr_symbol;
2N/A char* currency_symbol;
2N/A char* mon_decimal_point;
2N/A char* mon_thousands_sep;
2N/A char* mon_grouping;
2N/A char* positive_sign;
2N/A char* negative_sign;
2N/A char int_frac_digits;
2N/A char frac_digits;
2N/A char p_cs_precedes;
2N/A char p_sep_by_space;
2N/A char n_cs_precedes;
2N/A char n_sep_by_space;
2N/A char p_sign_posn;
2N/A char n_sign_posn;
2N/A};
2N/A
2N/A#endif
2N/A
2N/A#if _BLD_ast && defined(__EXPORT__)
2N/A#undef __MANGLE__
2N/A#define __MANGLE__ __LINKAGE__ __EXPORT__
2N/A#endif
2N/A
2N/A#if !_UWIN /* for ast54 compatibility */
2N/A
2N/A#undef getenv
2N/A#define getenv _ast_getenv
2N/A
2N/A#undef setenviron
2N/A#define setenviron _ast_setenviron
2N/A
2N/Aextern __MANGLE__ char* getenv __PROTO__((const char*));
2N/A
2N/A#endif
2N/A
2N/A#undef localeconv
2N/A#define localeconv _ast_localeconv
2N/A
2N/A#undef setlocale
2N/A#define setlocale _ast_setlocale
2N/A
2N/A#undef strerror
2N/A#define strerror _ast_strerror
2N/A
2N/Aextern __MANGLE__ struct lconv* localeconv __PROTO__((void));
2N/Aextern __MANGLE__ char* setenviron __PROTO__((const char*));
2N/Aextern __MANGLE__ char* setlocale __PROTO__((int, const char*));
2N/Aextern __MANGLE__ char* strerror __PROTO__((int));
2N/A
2N/A#define AST_MESSAGE_SET 3 /* see <mc.h> mcindex() */
2N/A
2N/A/*
2N/A * maintain this order when adding categories
2N/A */
2N/A
2N/A#define AST_LC_ALL 0
2N/A#define AST_LC_COLLATE 1
2N/A#define AST_LC_CTYPE 2
2N/A#define AST_LC_MESSAGES 3
2N/A#define AST_LC_MONETARY 4
2N/A#define AST_LC_NUMERIC 5
2N/A#define AST_LC_TIME 6
2N/A#define AST_LC_IDENTIFICATION 7
2N/A#define AST_LC_ADDRESS 8
2N/A#define AST_LC_NAME 9
2N/A#define AST_LC_TELEPHONE 10
2N/A#define AST_LC_XLITERATE 11
2N/A#define AST_LC_MEASUREMENT 12
2N/A#define AST_LC_PAPER 13
2N/A#define AST_LC_COUNT 14
2N/A#define AST_LC_LANG 255
2N/A
2N/A#define AST_LC_find (1L<<28)
2N/A#define AST_LC_debug (1L<<29)
2N/A#define AST_LC_setlocale (1L<<30)
2N/A#define AST_LC_translate (1L<<31)
2N/A
2N/A#ifndef LC_ALL
2N/A#define LC_ALL (-AST_LC_ALL)
2N/A#endif
2N/A#ifndef LC_COLLATE
2N/A#define LC_COLLATE (-AST_LC_COLLATE)
2N/A#endif
2N/A#ifndef LC_CTYPE
2N/A#define LC_CTYPE (-AST_LC_CTYPE)
2N/A#endif
2N/A#ifndef LC_MESSAGES
2N/A#define LC_MESSAGES (-AST_LC_MESSAGES)
2N/A#endif
2N/A#ifndef LC_MONETARY
2N/A#define LC_MONETARY (-AST_LC_MONETARY)
2N/A#endif
2N/A#ifndef LC_NUMERIC
2N/A#define LC_NUMERIC (-AST_LC_NUMERIC)
2N/A#endif
2N/A#ifndef LC_TIME
2N/A#define LC_TIME (-AST_LC_TIME)
2N/A#endif
2N/A#ifndef LC_ADDRESS
2N/A#define LC_ADDRESS (-AST_LC_ADDRESS)
2N/A#endif
2N/A#ifndef LC_IDENTIFICATION
2N/A#define LC_IDENTIFICATION (-AST_LC_IDENTIFICATION)
2N/A#endif
2N/A#ifndef LC_NAME
2N/A#define LC_NAME (-AST_LC_NAME)
2N/A#endif
2N/A#ifndef LC_TELEPHONE
2N/A#define LC_TELEPHONE (-AST_LC_TELEPHONE)
2N/A#endif
2N/A#ifndef LC_XLITERATE
2N/A#define LC_XLITERATE (-AST_LC_XLITERATE)
2N/A#endif
2N/A#ifndef LC_MEASUREMENT
2N/A#define LC_MEASUREMENT (-AST_LC_MEASUREMENT)
2N/A#endif
2N/A#ifndef LC_PAPER
2N/A#define LC_PAPER (-AST_LC_PAPER)
2N/A#endif
2N/A#ifndef LC_LANG
2N/A#define LC_LANG (-AST_LC_LANG)
2N/A#endif
2N/A
2N/A#undef __MANGLE__
2N/A#define __MANGLE__ __LINKAGE__
2N/A
2N/A#undef strcoll
2N/A#if _std_strcoll
2N/A#define strcoll _ast_info.collate
2N/A#else
2N/A#define strcoll strcmp
2N/A#endif
2N/A
2N/Atypedef struct
2N/A{
2N/A
2N/A char* id;
2N/A
2N/A struct
2N/A {
2N/A uint32_t serial;
2N/A uint32_t set;
2N/A } locale;
2N/A
2N/A long tmp_long;
2N/A size_t tmp_size;
2N/A short tmp_short;
2N/A char tmp_char;
2N/A wchar_t tmp_wchar;
2N/A
2N/A int (*collate) __PROTO__((const char*, const char*));
2N/A
2N/A int tmp_int;
2N/A __V_* tmp_pointer;
2N/A
2N/A int mb_cur_max;
2N/A int (*mb_len) __PROTO__((const char*, size_t));
2N/A int (*mb_towc) __PROTO__((wchar_t*, const char*, size_t));
2N/A size_t (*mb_xfrm) __PROTO__((char*, const char*, size_t));
2N/A int (*mb_width) __PROTO__((wchar_t));
2N/A int (*mb_conv) __PROTO__((char*, wchar_t));
2N/A
2N/A uint32_t env_serial;
2N/A uint32_t mb_sync;
2N/A
2N/A char pad[940];
2N/A
2N/A} _Ast_info_t;
2N/A
2N/A#if _BLD_ast && defined(__EXPORT__)
2N/A#undef __MANGLE__
2N/A#define __MANGLE__ __LINKAGE__ __EXPORT__
2N/A#endif
2N/A#if !_BLD_ast && defined(__IMPORT__)
2N/A#undef __MANGLE__
2N/A#define __MANGLE__ __LINKAGE__ __IMPORT__
2N/A#endif
2N/A
2N/Aextern __MANGLE__ _Ast_info_t _ast_info;
2N/A
2N/A#undef __MANGLE__
2N/A#define __MANGLE__ __LINKAGE__
2N/A
2N/A/* largefile hackery -- ast uses the large versions by default */
2N/A
2N/A#if _typ_off64_t
2N/A#undef off_t
2N/A#define off_t off64_t
2N/A#endif
2N/A#if !defined(ftruncate) && _lib_ftruncate64
2N/A#define ftruncate ftruncate64
2N/Aextern __MANGLE__ int ftruncate64 __PROTO__((int, off64_t));
2N/A#endif
2N/A#if !defined(lseek) && _lib_lseek64
2N/A#define lseek lseek64
2N/Aextern __MANGLE__ off64_t lseek64 __PROTO__((int, off64_t, int));
2N/A#endif
2N/A#if !defined(truncate) && _lib_truncate64
2N/A#define truncate truncate64
2N/Aextern __MANGLE__ int truncate64 __PROTO__((const char*, off64_t));
2N/A#endif
2N/A
2N/A/* direct macro access for bsd crossover */
2N/A
2N/A#if !defined(__cplusplus)
2N/A
2N/A#if !defined(memcpy) && !defined(_lib_memcpy) && defined(_lib_bcopy)
2N/A#define memcpy(t,f,n) (bcopy(f,t,n),(t))
2N/A#endif
2N/A
2N/A#if !defined(memzero) && !defined(_lib_memzero)
2N/A#if defined(_lib_memset) || !defined(_lib_bzero)
2N/A#define memzero(b,n) memset(b,0,n)
2N/A#else
2N/A#define memzero(b,n) (bzero(b,n),(b))
2N/A#endif
2N/A#endif
2N/A
2N/A#endif
2N/A
2N/A#if !defined(remove)
2N/Aextern __MANGLE__ int remove __PROTO__((const char*));
2N/A#endif
2N/A
2N/A#if !defined(rename)
2N/Aextern __MANGLE__ int rename __PROTO__((const char*, const char*));
2N/A#endif
2N/A
2N/A#if !defined(strchr) && !defined(_lib_strchr) && defined(_lib_index)
2N/A#define strchr(s,c) index(s,c)
2N/A#endif
2N/A
2N/A#if !defined(strrchr) && !defined(_lib_strrchr) && defined(_lib_rindex)
2N/A#define strrchr(s,c) rindex(s,c)
2N/A#endif
2N/A
2N/A/* and now introducing prototypes botched by the standard(s) */
2N/A
2N/A#if _BLD_ast && defined(__EXPORT__)
2N/A#undef __MANGLE__
2N/A#define __MANGLE__ __LINKAGE__ __EXPORT__
2N/A#endif
2N/A
2N/A#undef getpgrp
2N/A#define getpgrp() _ast_getpgrp()
2N/Aextern __MANGLE__ int _ast_getpgrp __PROTO__((void));
2N/A
2N/A#undef __MANGLE__
2N/A#define __MANGLE__ __LINKAGE__
2N/A
2N/A/*
2N/A * and finally, standard interfaces hijacked by ast
2N/A * _ATS_STD_I delays headers that require <ast_map.h>
2N/A */
2N/A
2N/A#include <ast_map.h>
2N/A
2N/A#undef _AST_STD_I
2N/A
2N/A#if _AST_GETOPT_H < 0
2N/A#undef _AST_GETOPT_H
2N/A#include <ast_getopt.h>
2N/A#endif
2N/A
2N/A#if _GETOPT_H < 0
2N/A#undef _GETOPT_H
2N/A#include <getopt.h>
2N/A#endif
2N/A
2N/A#if _REGEX_H < 0
2N/A#undef _REGEX_H
2N/A#include <regex.h>
2N/A#endif
2N/A
2N/A#endif
2N/A