1/* ANSI C namespace clean utility typedefs */ 2 3/* This file defines various typedefs needed by the system calls that support 4 the C library. Basically, they're just the POSIX versions with an '_' 5 prepended. This file lives in the `sys' directory so targets can provide 6 their own if desired (or they can put target dependant conditionals here). 7*/ 8 9#ifndef _SYS__TYPES_H 10#define _SYS__TYPES_H 11 12#include <machine/_types.h> 13#include <sys/lock.h> 14 15#ifndef __off_t_defined 16typedef long _off_t; 17#endif 18 19#if defined(__rtems__) 20/* device numbers are 32-bit major and and 32-bit minor */ 21typedef unsigned long long __dev_t; 22#else 23#ifndef __dev_t_defined 24typedef short __dev_t; 25#endif 26#endif 27 28#ifndef __uid_t_defined 29typedef unsigned short __uid_t; 30#endif 31#ifndef __gid_t_defined 32typedef unsigned short __gid_t; 33#endif 34 35#ifndef __off64_t_defined 36__extension__ typedef long long _off64_t; 37#endif 38 39/* 40 * We need fpos_t for the following, but it doesn't have a leading "_", 41 * so we use _fpos_t instead. 42 */ 43#ifndef __fpos_t_defined 44typedef long _fpos_t; /* XXX must match off_t in <sys/types.h> */ 45 /* (and must be `long' for now) */ 46#endif 47 48#ifdef __LARGE64_FILES 49#ifndef __fpos64_t_defined 50typedef _off64_t _fpos64_t; 51#endif 52#endif 53 54#ifndef __ssize_t_defined 55#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647 56typedef int _ssize_t; 57#else 58typedef long _ssize_t; 59#endif 60#endif 61 62#define __need_wint_t 63#include <stddef.h> 64 65#ifndef __mbstate_t_defined 66/* Conversion state information. */ 67typedef struct 68{ 69 int __count; 70 union 71 { 72 wint_t __wch; 73 unsigned char __wchb[4]; 74 } __value; /* Value so far. */ 75} _mbstate_t; 76#endif 77 78#ifndef __flock_t_defined 79typedef _LOCK_RECURSIVE_T _flock_t; 80#endif 81 82#ifndef __iconv_t_defined 83/* Iconv descriptor type */ 84typedef void *_iconv_t; 85#endif 86 87#endif /* _SYS__TYPES_H */ 88