00001 00008 #ifndef _TXC_LIBC_INTERNAL_H 00009 #define _TXC_LIBC_INTERNAL_H 00010 00011 #include <stdio.h> 00012 #include <stdlib.h> 00013 #include <sys/socket.h> 00014 #include <nl_types.h> 00015 #include <stdarg.h> 00016 #include <iconv.h> 00017 00018 00019 #define HUGE 1.701411733192644270e38 00020 #define LOGHUGE 39 00021 00022 #define ic_from(x) (((x))&0xffff) 00023 #define ic_to(x) (((x)>>16)&0xffff) 00024 00025 # define __ptr_t char * /* Not C++ or ANSI C. */ 00026 //# define __ptr_t void * /* C++ or ANSI C. */ 00027 typedef unsigned short int uint16_t; 00028 typedef unsigned int uint32_t; 00029 00030 /* Flags for file I/O */ 00031 #define _IOREAD 01 00032 #define _IOWRT 02 00033 #define _IONBF 04 00034 #define _IOMYBUF 010 00035 #define _IOEOF 020 00036 #define _IOERR 040 00037 #define _IOSTRG 0100 00038 #define _IORW 0200 00039 #define EOF (-1) 00040 #define _NFILE 20 00041 00042 struct catalog_obj 00043 { 00044 u_int32_t magic; 00045 u_int32_t plane_size; 00046 u_int32_t plane_depth; 00047 /* This is in fact two arrays in one: always a pair of name and 00048 *pointer into the data area. */ 00049 u_int32_t name_ptr[0]; 00050 }; 00051 00052 00053 /* This structure will be filled after loading the catalog. */ 00054 typedef struct catalog_info 00055 { 00056 enum { mmapped, malloced } status; 00057 size_t plane_size; 00058 size_t plane_depth; 00059 u_int32_t *name_ptr; 00060 const char *strings; 00061 struct catalog_obj *file_ptr; 00062 size_t file_size; 00063 } *__nl_catd; 00064 00065 enum charset { 00066 INVALID=0, 00067 ISO_8859_1, 00068 UTF_8, 00069 UCS_2, 00070 UCS_4, 00071 UTF_16_BE, 00072 UTF_16_LE, 00073 UTF_16 00074 }; 00075 00076 00077 #include <inc/txc/libc.h> 00078 00079 #endif