1/* 2 * Public domain 3 * sys/types.h compatibility shim 4 */ 5 6#ifdef _MSC_VER 7#if _MSC_VER >= 1900 8#include <../ucrt/sys/types.h> 9#else 10#include <../include/sys/types.h> 11#endif 12#endif 13 14#ifndef _COMPAT_TYPES_H 15#define _COMPAT_TYPES_H 16 17#include <stdint.h> 18 19#ifdef __MINGW32__ 20#include <_bsd_types.h> 21typedef uint32_t in_addr_t; 22typedef uint32_t uid_t; 23#endif 24 25#ifdef _MSC_VER 26typedef unsigned char u_char; 27typedef unsigned short u_short; 28typedef unsigned int u_int; 29typedef unsigned long u_long; 30 31#include <basetsd.h> 32typedef SSIZE_T ssize_t; 33 34#ifndef SSIZE_MAX 35#ifdef _WIN64 36#define SSIZE_MAX _I64_MAX 37#else 38#define SSIZE_MAX INT_MAX 39#endif 40#endif 41 42#endif 43 44#if !defined(HAVE_ATTRIBUTE__BOUNDED__) && !defined(__bounded__) 45# define __bounded__(x, y, z) 46#endif 47 48#ifdef _WIN32 49#define __warn_references(sym,msg) 50#else 51 52#ifndef __warn_references 53 54#ifndef __STRING 55#define __STRING(x) #x 56#endif 57 58#if defined(__GNUC__) && defined (HAS_GNU_WARNING_LONG) 59#define __warn_references(sym,msg) \ 60 __asm__(".section .gnu.warning." __STRING(sym) \ 61 "\n\t.ascii \"" msg "\"\n\t.text"); 62#else 63#define __warn_references(sym,msg) 64#endif 65 66#endif /* __warn_references */ 67#endif /* _WIN32 */ 68 69#endif /* !_COMPAT_TYPES_H */ 70