Add mingw-w64 header set as initial set.


git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@3 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/sys/cdefs.h b/mingw-w64-headers/include/sys/cdefs.h
new file mode 100755
index 0000000..24e5fd5
--- /dev/null
+++ b/mingw-w64-headers/include/sys/cdefs.h
@@ -0,0 +1,17 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef	_SYS_CDEFS_H
+#define _SYS_CDEFS_H
+#ifdef	__cplusplus
+#define	__BEGIN_DECLS	extern "C" {
+#define	__END_DECLS	}
+#else
+#define	__BEGIN_DECLS
+#define	__END_DECLS
+#endif
+#define __P(protos)     protos		/* full-blown ANSI C */
+#endif
+
diff --git a/mingw-w64-headers/include/sys/fcntl.h b/mingw-w64-headers/include/sys/fcntl.h
new file mode 100755
index 0000000..29fd55a
--- /dev/null
+++ b/mingw-w64-headers/include/sys/fcntl.h
@@ -0,0 +1,13 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+/*
+ * This file is part of the Mingw32 package.
+ *
+ * This fcntl.h maps to the root fcntl.h
+ */
+#ifndef __STRICT_ANSI__
+#include <fcntl.h>
+#endif
diff --git a/mingw-w64-headers/include/sys/file.h b/mingw-w64-headers/include/sys/file.h
new file mode 100755
index 0000000..370f352
--- /dev/null
+++ b/mingw-w64-headers/include/sys/file.h
@@ -0,0 +1,14 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+/*
+ * This file is part of the Mingw32 package.
+ *
+ * This file.h maps to the root fcntl.h
+ * TODO?
+ */
+#ifndef __STRICT_ANSI__
+#include <fcntl.h>
+#endif
diff --git a/mingw-w64-headers/include/sys/ioctl.h b/mingw-w64-headers/include/sys/ioctl.h
new file mode 100755
index 0000000..02b54ad
--- /dev/null
+++ b/mingw-w64-headers/include/sys/ioctl.h
@@ -0,0 +1,21 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _SYS_IOCTL_H
+#define _SYS_IOCTL_H
+
+#include <sys/cdefs.h>
+
+#define WINDOWS_POST	0	/* Set write() behavior to PostMessage() */
+#define WINDOWS_SEND	1	/* Set write() behavior to SendMessage() */
+#define WINDOWS_HWND	2	/* Set hWnd for read() calls */
+
+__BEGIN_DECLS
+
+int ioctl (int __fd, int __cmd, ...);
+
+__END_DECLS
+
+#endif
diff --git a/mingw-w64-headers/include/sys/locking.h b/mingw-w64-headers/include/sys/locking.h
new file mode 100755
index 0000000..e3fc85b
--- /dev/null
+++ b/mingw-w64-headers/include/sys/locking.h
@@ -0,0 +1,30 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_LOCKING
+#define _INC_LOCKING
+
+#ifndef _WIN32
+#error Only Win32 target is supported!
+#endif
+
+/* All the headers include this file. */
+#include <_mingw.h>
+
+#define _LK_UNLCK 0
+#define _LK_LOCK 1
+#define _LK_NBLCK 2
+#define _LK_RLCK 3
+#define _LK_NBRLCK 4
+
+#ifndef	NO_OLDNAMES
+#define LK_UNLCK _LK_UNLCK
+#define LK_LOCK _LK_LOCK
+#define LK_NBLCK _LK_NBLCK
+#define LK_RLCK _LK_RLCK
+#define LK_NBRLCK _LK_NBRLCK
+#endif
+
+#endif
diff --git a/mingw-w64-headers/include/sys/param.h b/mingw-w64-headers/include/sys/param.h
new file mode 100755
index 0000000..56e1a32
--- /dev/null
+++ b/mingw-w64-headers/include/sys/param.h
@@ -0,0 +1,46 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+/*
+ * param.h
+ *
+ * This file is part of the Mingw32 package.
+ *
+ * Contributors:
+ *  Created by Earnie Boyd <earnie@users.sf.net>
+ *
+ *  THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ *  This source code is offered for use in the public domain. You may
+ *  use, modify or distribute it freely.
+ *
+ *  This code is distributed in the hope that it will be useful but
+ *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ *  DISCLAIMED. This includes but is not limited to warranties of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $Revision: 1.3 $
+ * $Author: earnie $
+ * $Date: 2003/05/03 13:48:47 $
+ *
+ */
+
+#ifndef _SYS_PARAM_H
+#define _SYS_PARAM_H
+
+#include <sys/types.h>
+#include <limits.h>
+
+#ifndef __STRICT_ANSI__
+/* These are useful for cross-compiling */ 
+#define BIG_ENDIAN	4321
+#define LITTLE_ENDIAN	1234
+#define BYTE_ORDER	LITTLE_ENDIAN
+
+#define MAXPATHLEN PATH_MAX
+
+#endif
+
+#endif
diff --git a/mingw-w64-headers/include/sys/stat.h b/mingw-w64-headers/include/sys/stat.h
new file mode 100755
index 0000000..2c43e70
--- /dev/null
+++ b/mingw-w64-headers/include/sys/stat.h
@@ -0,0 +1,262 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_STAT
+#define _INC_STAT
+
+#ifndef _WIN32
+#error Only Win32 target is supported!
+#endif
+
+#include <_mingw.h>
+
+#pragma pack(push,_CRT_PACKING)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _CRTIMP
+#define _CRTIMP __declspec(dllimport)
+#endif
+
+#include <sys/types.h>
+
+#ifdef _USE_32BIT_TIME_T
+#ifdef _WIN64
+#undef _USE_32BIT_TIME_T
+#endif
+#else
+#if _INTEGRAL_MAX_BITS < 64
+#define _USE_32BIT_TIME_T
+#endif
+#endif
+
+#ifndef _TIME32_T_DEFINED
+  typedef long __time32_t;
+#define _TIME32_T_DEFINED
+#endif
+
+#ifndef _TIME64_T_DEFINED
+#if _INTEGRAL_MAX_BITS >= 64
+  typedef __int64 __time64_t;
+#endif
+#define _TIME64_T_DEFINED
+#endif
+
+#ifndef _TIME_T_DEFINED
+#ifdef _USE_32BIT_TIME_T
+  typedef __time32_t time_t;
+#else
+  typedef __time64_t time_t;
+#endif
+#define _TIME_T_DEFINED
+#endif
+
+#ifndef _WCHAR_T_DEFINED
+  typedef unsigned short wchar_t;
+#define _WCHAR_T_DEFINED
+#endif
+
+#ifndef _STAT_DEFINED
+
+  struct _stat32 {
+    _dev_t st_dev;
+    _ino_t st_ino;
+    unsigned short st_mode;
+    short st_nlink;
+    short st_uid;
+    short st_gid;
+    _dev_t st_rdev;
+    _off_t st_size;
+    __time32_t st_atime;
+    __time32_t st_mtime;
+    __time32_t st_ctime;
+  };
+
+#ifndef	NO_OLDNAMES
+  struct stat {
+    _dev_t st_dev;
+    _ino_t st_ino;
+    unsigned short st_mode;
+    short st_nlink;
+    short st_uid;
+    short st_gid;
+    _dev_t st_rdev;
+    _off_t st_size;
+    time_t st_atime;
+    time_t st_mtime;
+    time_t st_ctime;
+  };
+#endif
+
+#if _INTEGRAL_MAX_BITS >= 64
+  struct _stat32i64 {
+    _dev_t st_dev;
+    _ino_t st_ino;
+    unsigned short st_mode;
+    short st_nlink;
+    short st_uid;
+    short st_gid;
+    _dev_t st_rdev;
+    __int64 st_size;
+    __time32_t st_atime;
+    __time32_t st_mtime;
+    __time32_t st_ctime;
+  };
+
+  struct _stat64i32 {
+    _dev_t st_dev;
+    _ino_t st_ino;
+    unsigned short st_mode;
+    short st_nlink;
+    short st_uid;
+    short st_gid;
+    _dev_t st_rdev;
+    _off_t st_size;
+    __time64_t st_atime;
+    __time64_t st_mtime;
+    __time64_t st_ctime;
+  };
+
+  struct _stat64 {
+    _dev_t st_dev;
+    _ino_t st_ino;
+    unsigned short st_mode;
+    short st_nlink;
+    short st_uid;
+    short st_gid;
+    _dev_t st_rdev;
+    __int64 st_size;
+    __time64_t st_atime;
+    __time64_t st_mtime;
+    __time64_t st_ctime;
+  };
+#endif
+
+#define __stat64 _stat64
+
+#ifdef _USE_32BIT_TIME_T
+#define _fstat _fstat32
+#define _fstati64 _fstat32i64
+#define _stat _stat32
+#define _stati64 _stat32i64
+#define _wstat _wstat32
+#define _wstati64 _wstat32i64
+#else
+#define _fstat _fstat64i32
+#define _fstati64 _fstat64
+#define _stat _stat64i32
+#define _stati64 _stat64
+#define _wstat _wstat64i32
+#define _wstati64 _wstat64
+#endif
+
+#define _STAT_DEFINED
+#endif
+
+#define _S_IFMT 0xF000
+#define _S_IFDIR 0x4000
+#define _S_IFCHR 0x2000
+#define _S_IFIFO 0x1000
+#define _S_IFREG 0x8000
+#define _S_IREAD 0x0100
+#define _S_IWRITE 0x0080
+#define _S_IEXEC 0x0040
+
+  _CRTIMP int __cdecl _fstat32(int _FileDes,struct _stat32 *_Stat);
+  _CRTIMP int __cdecl _stat32(const char *_Name,struct _stat32 *_Stat);
+#if _INTEGRAL_MAX_BITS >= 64
+  _CRTIMP int __cdecl _fstat64(int _FileDes,struct _stat64 *_Stat);
+  _CRTIMP int __cdecl _fstat32i64(int _FileDes,struct _stat32i64 *_Stat);
+  __CRT_INLINE int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat)
+  {
+    struct _stat64 st;
+    int ret=_fstat64(_FileDes,&st);
+    _Stat->st_dev=st.st_dev;
+    _Stat->st_ino=st.st_ino;
+    _Stat->st_mode=st.st_mode;
+    _Stat->st_nlink=st.st_nlink;
+    _Stat->st_uid=st.st_uid;
+    _Stat->st_gid=st.st_gid;
+    _Stat->st_rdev=st.st_rdev;
+    _Stat->st_size=(_off_t) st.st_size;
+    _Stat->st_atime=st.st_atime;
+    _Stat->st_mtime=st.st_mtime;
+    _Stat->st_ctime=st.st_ctime;
+    return ret;
+  }
+  _CRTIMP int __cdecl _stat64(const char *_Name,struct _stat64 *_Stat);
+  _CRTIMP int __cdecl _stat32i64(const char *_Name,struct _stat32i64 *_Stat);
+  __CRT_INLINE int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat)
+  {
+    struct _stat64 st;
+    int ret=_stat64(_Name,&st);
+    _Stat->st_dev=st.st_dev;
+    _Stat->st_ino=st.st_ino;
+    _Stat->st_mode=st.st_mode;
+    _Stat->st_nlink=st.st_nlink;
+    _Stat->st_uid=st.st_uid;
+    _Stat->st_gid=st.st_gid;
+    _Stat->st_rdev=st.st_rdev;
+    _Stat->st_size=(_off_t) st.st_size;
+    _Stat->st_atime=st.st_atime;
+    _Stat->st_mtime=st.st_mtime;
+    _Stat->st_ctime=st.st_ctime;
+    return ret;
+  }
+#endif
+
+#ifndef _WSTAT_DEFINED
+#define _WSTAT_DEFINED
+  _CRTIMP int __cdecl _wstat32(const wchar_t *_Name,struct _stat32 *_Stat);
+#if _INTEGRAL_MAX_BITS >= 64
+  _CRTIMP int __cdecl _wstat32i64(const wchar_t *_Name,struct _stat32i64 *_Stat);
+  _CRTIMP int __cdecl _wstat64i32(const wchar_t *_Name,struct _stat64i32 *_Stat);
+  _CRTIMP int __cdecl _wstat64(const wchar_t *_Name,struct _stat64 *_Stat);
+#endif
+#endif
+
+#ifndef	NO_OLDNAMES
+#define	_S_IFBLK	0x3000	/* Block: Is this ever set under w32? */
+
+#define S_IFMT _S_IFMT
+#define S_IFDIR _S_IFDIR
+#define S_IFCHR _S_IFCHR
+#define S_IFREG _S_IFREG
+#define S_IREAD _S_IREAD
+#define S_IWRITE _S_IWRITE
+#define S_IEXEC _S_IEXEC
+#define	S_IFIFO		_S_IFIFO
+#define	S_IFBLK		_S_IFBLK
+
+#define	_S_IRWXU	(_S_IREAD | _S_IWRITE | _S_IEXEC)
+#define	_S_IXUSR	_S_IEXEC
+#define	_S_IWUSR	_S_IWRITE
+
+#define	S_IRWXU		_S_IRWXU
+#define	S_IXUSR		_S_IXUSR
+#define	S_IWUSR		_S_IWUSR
+#define	S_IRUSR		_S_IRUSR
+#define	_S_IRUSR	_S_IREAD
+
+#define	S_ISDIR(m)	(((m) & S_IFMT) == S_IFDIR)
+#define	S_ISFIFO(m)	(((m) & S_IFMT) == S_IFIFO)
+#define	S_ISCHR(m)	(((m) & S_IFMT) == S_IFCHR)
+#define	S_ISBLK(m)	(((m) & S_IFMT) == S_IFBLK)
+#define	S_ISREG(m)	(((m) & S_IFMT) == S_IFREG)
+
+#endif
+
+#ifndef RC_INVOKED
+#include <sys/stat.inl>
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#pragma pack(pop)
+#endif
diff --git a/mingw-w64-headers/include/sys/stat.inl b/mingw-w64-headers/include/sys/stat.inl
new file mode 100755
index 0000000..40730fe
--- /dev/null
+++ b/mingw-w64-headers/include/sys/stat.inl
@@ -0,0 +1,34 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_STAT_INL
+#define _INC_STAT_INL
+#include <sys/stat.h>
+#ifndef _STATIC_ASSERT
+#define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr)]
+#endif
+
+#ifndef	NO_OLDNAMES
+#ifdef _USE_32BIT_TIME_T
+__CRT_INLINE int __cdecl fstat(int _Desc,struct stat *_Stat) {
+  _STATIC_ASSERT(sizeof(struct stat)==sizeof(struct _stat32));
+  return _fstat32(_Desc,(struct _stat32 *)_Stat);
+}
+__CRT_INLINE int __cdecl stat(const char *_Filename,struct stat *_Stat) {
+  _STATIC_ASSERT(sizeof(struct stat)==sizeof(struct _stat32));
+  return _stat32(_Filename,(struct _stat32 *)_Stat);
+}
+#else
+__CRT_INLINE int __cdecl fstat(int _Desc,struct stat *_Stat) {
+  _STATIC_ASSERT(sizeof(struct stat)==sizeof(struct _stat64i32));
+  return _fstat64i32(_Desc,(struct _stat64i32 *)_Stat);
+}
+__CRT_INLINE int __cdecl stat(const char *_Filename,struct stat *_Stat) {
+  _STATIC_ASSERT(sizeof(struct stat)==sizeof(struct _stat64i32));
+  return _stat64i32(_Filename,(struct _stat64i32 *)_Stat);
+}
+#endif
+#endif
+#endif
diff --git a/mingw-w64-headers/include/sys/termio.h b/mingw-w64-headers/include/sys/termio.h
new file mode 100755
index 0000000..5a1bd45
--- /dev/null
+++ b/mingw-w64-headers/include/sys/termio.h
@@ -0,0 +1,6 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#include <sys/termios.h>
diff --git a/mingw-w64-headers/include/sys/termios.h b/mingw-w64-headers/include/sys/termios.h
new file mode 100755
index 0000000..6c062f1
--- /dev/null
+++ b/mingw-w64-headers/include/sys/termios.h
@@ -0,0 +1,339 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+/* sys/termios.h
+
+   Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003 Red Hat, Inc.
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+/* sys/termios.h */
+
+#ifndef	_SYS_TERMIOS_H
+#define _SYS_TERMIOS_H
+
+#define	TIOCMGET	0x5415
+#define	TIOCMSET	0x5418
+#define	TIOCINQ		0x541B	
+
+/* TIOCINQ is utilized instead of FIONREAD which has been
+accupied for other purposes under CYGWIN.
+Other UNIX ioctl requests has been omited because
+effects of their work one can achive by standard
+POSIX commands */
+
+
+#define	TIOCM_DTR	0x002
+#define	TIOCM_RTS	0x004
+#define	TIOCM_CTS	0x020
+#define	TIOCM_CAR	0x040
+#define	TIOCM_RNG	0x080
+#define	TIOCM_DSR	0x100
+#define	TIOCM_CD	TIOCM_CAR
+#define	TIOCM_RI	TIOCM_RNG
+
+#define TCOOFF		0
+#define TCOON		1
+#define TCIOFF		2
+#define TCION		3
+
+#define TCGETA	5
+#define TCSETA	6
+#define TCSETAW		7
+#define TCSETAF		8
+
+#define TCIFLUSH	0
+#define TCOFLUSH	1
+#define TCIOFLUSH	2
+#define TCFLSH          3
+
+#define TCSAFLUSH	1
+#define TCSANOW		2
+#define TCSADRAIN	3
+#define TCSADFLUSH	4
+
+#define TIOCPKT		6
+
+#define TIOCPKT_DATA		 0
+#define TIOCPKT_FLUSHREAD	 1
+#define TIOCPKT_FLUSHWRITE	 2
+#define TIOCPKT_STOP		 4
+#define TIOCPKT_START		 8
+#define TIOCPKT_NOSTOP		16
+#define TIOCPKT_DOSTOP		32
+
+#define FIONBIO 0x8004667e /* To be compatible with socket version */
+
+#define CTRL(ch)	((ch)&0x1F)
+
+#define CNUL	0
+#define CDEL	0x0007f
+#define CESC	'\\'
+#define CINTR	CTRL('C')
+#define CQUIT	0x0001c
+#define CERASE	CTRL('H')
+#define CKILL	CTRL('U')
+#define CEOT	CTRL('D')
+#define CEOL	0
+#define CEOL2	0
+#define CEOF	CTRL('D')
+#define CSTART	CTRL('Q')
+#define CSTOP	CTRL('S')
+#define CSWTCH	0x0001a
+#define NSWTCH	0
+#define CSUSP	CTRL('Z')
+#define CDSUSP	CTRL('Y')
+#define CRPRNT	CTRL('R')
+#define CFLUSH	CTRL('O')
+#define CWERASE	CTRL('W')
+#define CLNEXT	CTRL('V')
+
+/* iflag bits */
+#define IGNBRK	0x00001
+#define BRKINT	0x00002
+#define IGNPAR	0x00004
+#define IMAXBEL	0x00008
+#define INPCK	0x00010
+#define ISTRIP	0x00020
+#define INLCR	0x00040
+#define IGNCR	0x00080
+#define ICRNL	0x00100
+#define IXON	0x00400
+#define IXOFF	0x01000
+#define IUCLC	0x04000
+#define IXANY	0x08000
+#define PARMRK	0x10000
+
+/* oflag bits */
+
+#define OPOST	0x00001
+#define OLCUC	0x00002
+#define OCRNL	0x00004
+#define ONLCR	0x00008
+#define ONOCR	0x00010
+#define ONLRET	0x00020
+#define OFILL	0x00040
+#define CRDLY	0x00180
+#define CR0	0x00000
+#define CR1	0x00080
+#define CR2	0x00100
+#define CR3	0x00180
+#define NLDLY	0x00200
+#define NL0	0x00000
+#define NL1	0x00200
+#define BSDLY	0x00400
+#define BS0	0x00000
+#define BS1	0x00400
+#define TABDLY	0x01800
+#define TAB0	0x00000
+#define TAB1	0x00800
+#define TAB2	0x01000
+#define TAB3	0x01800
+#define XTABS	0x01800
+#define VTDLY	0x02000
+#define VT0	0x00000
+#define VT1	0x02000
+#define FFDLY	0x04000
+#define FF0	0x00000
+#define FF1	0x04000
+#define OFDEL	0x08000
+
+/* cflag bits */
+
+/* Baud rate values.  These must fit in speed_t, which is unsigned
+   char.  See also the extended baud rates below.  These baud rates
+   set an additional bit. */
+#define CBAUD	 0x0100f
+#define B0	 0x00000
+#define B50	 0x00001
+#define B75	 0x00002
+#define B110	 0x00003
+#define B134	 0x00004
+#define B150	 0x00005
+#define B200	 0x00006
+#define B300	 0x00007
+#define B600	 0x00008
+#define B1200	 0x00009
+#define B1800	 0x0000a
+#define B2400	 0x0000b
+#define B4800	 0x0000c
+#define B9600	 0x0000d
+#define B19200	 0x0000e
+#define B38400	 0x0000f
+
+#define CSIZE	 0x00030
+#define CS5	 0x00000
+#define CS6	 0x00010
+#define CS7	 0x00020
+#define CS8	 0x00030
+#define CSTOPB	 0x00040
+#define CREAD	 0x00080
+#define PARENB	 0x00100
+#define PARODD	 0x00200
+#define HUPCL	 0x00400
+#define CLOCAL	 0x00800
+#define CBAUDEX	 0x0100f
+#define B57600	 0x01001
+#define B115200	 0x01002
+#define B128000	 0x01003
+#define B230400  0x01004
+#define B256000	 0x01005
+#define CRTSXOFF 0x04000
+#define CRTSCTS	 0x08000
+
+/* lflag bits */
+#define ISIG	0x0001
+#define ICANON	0x0002
+#define ECHO	0x0004
+#define ECHOE	0x0008
+#define ECHOK	0x0010
+#define ECHONL	0x0020
+#define NOFLSH	0x0040
+#define TOSTOP	0x0080
+#define IEXTEN	0x0100
+#define FLUSHO	0x0200
+#define ECHOKE	0x0400
+#define ECHOCTL	0x0800
+
+#define VDISCARD	1
+#define VEOL		2
+#define VEOL2		3
+#define VEOF		4
+#define VERASE		5
+#define VINTR		6
+#define VKILL		7
+#define VLNEXT		8
+#define VMIN		9
+#define VQUIT		10
+#define VREPRINT	11
+#define VSTART		12
+#define VSTOP		13
+#define VSUSP		14
+#define VSWTC		15
+#define VTIME		16
+#define VWERASE	17
+
+#define NCCS		18
+
+/* `c_cc' member of 'struct termios' structure can be disabled by
+   using the value _POSIX_VDISABLE.  */
+#define	_POSIX_VDISABLE	'\0'
+
+/* Compare a character C to a value VAL from the `c_cc' array in a
+   `struct termios'.  If VAL is _POSIX_VDISABLE, no character can match it.  */
+#define CCEQ(val, c)	((c) == (val) && (val) != _POSIX_VDISABLE)
+
+typedef unsigned char cc_t;
+typedef unsigned int  tcflag_t;
+typedef unsigned int  speed_t;
+typedef unsigned short otcflag_t;
+typedef unsigned char ospeed_t;
+
+struct __oldtermios {
+	otcflag_t	c_iflag;
+	otcflag_t	c_oflag;
+	otcflag_t	c_cflag;
+	otcflag_t	c_lflag;
+	char		c_line;
+	cc_t		c_cc[NCCS];
+	ospeed_t	c_ispeed;
+	ospeed_t	c_ospeed;
+};
+
+struct termios {
+	tcflag_t	c_iflag;
+	tcflag_t	c_oflag;
+	tcflag_t	c_cflag;
+	tcflag_t	c_lflag;
+	char		c_line;
+	cc_t		c_cc[NCCS];
+	speed_t		c_ispeed;
+	speed_t		c_ospeed;
+};
+
+#ifdef CYGWIN_VERSION_DLL_IS_OLD_TERMIOS
+#ifdef __GNUC__
+# define __tonew_termios(ti) \
+  ({ \
+    struct termios *__newti; \
+   \
+    if (!CYGWIN_VERSION_DLL_IS_OLD_TERMIOS) \
+      __newti = (struct termios *) ti; \
+    else \
+      { \
+	__newti = (struct termios *) alloca(sizeof(struct termios)); \
+	__newti->c_iflag = ((struct __oldtermios *)ti)->c_iflag; \
+	__newti->c_oflag = ((struct __oldtermios *)ti)->c_oflag; \
+	__newti->c_cflag = ((struct __oldtermios *)ti)->c_cflag; \
+	__newti->c_lflag = ((struct __oldtermios *)ti)->c_lflag; \
+	__newti->c_line = ((struct __oldtermios *)ti)->c_line; \
+	__newti->c_ispeed = ((struct __oldtermios *)ti)->c_ispeed; \
+	__newti->c_ospeed = ((struct __oldtermios *)ti)->c_ospeed; \
+	memcpy (__newti->c_cc, ((struct __oldtermios *)ti)->c_cc, sizeof(__newti->c_cc)); \
+      } \
+    __newti; \
+  })
+
+# define __makenew_termios(ti) \
+  (CYGWIN_VERSION_DLL_IS_OLD_TERMIOS ? \
+   (struct termios *) alloca (sizeof (struct termios)) : (ti))
+
+# define __toapp_termios(toti, fromti) \
+  ({ \
+    if (!CYGWIN_VERSION_DLL_IS_OLD_TERMIOS) \
+      toti = fromti; \
+    else \
+      { \
+	((struct __oldtermios *)toti)->c_iflag = fromti->c_iflag; \
+	((struct __oldtermios *)toti)->c_oflag = fromti->c_oflag; \
+	((struct __oldtermios *)toti)->c_cflag = fromti->c_cflag; \
+	((struct __oldtermios *)toti)->c_lflag = fromti->c_lflag; \
+	((struct __oldtermios *)toti)->c_line = fromti->c_line; \
+	((struct __oldtermios *)toti)->c_ispeed = fromti->c_ispeed; \
+	((struct __oldtermios *)toti)->c_ospeed = fromti->c_ospeed; \
+	memcpy (((struct __oldtermios*)toti)->c_cc, fromti->c_cc, sizeof(fromti->c_cc)); \
+      } \
+    toti; \
+  })
+#endif /*__GNUC__*/
+#endif
+
+#define termio termios
+
+#define cfgetospeed(tp)		((tp)->c_ospeed)
+#define cfgetispeed(tp)		((tp)->c_ispeed)
+#define cfsetospeed(tp,s)	(((tp)->c_ospeed = (s)), 0)
+#define cfsetispeed(tp,s)	(((tp)->c_ispeed = (s)), 0)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int tcgetattr (int, struct termios *);
+int tcsetattr (int, int, const struct termios *);
+int tcsendbreak (int, int);
+int tcdrain (int);
+int tcflush (int, int);
+int tcflow (int, int);
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Extra stuff to make porting stuff easier.  */
+struct winsize
+{
+  unsigned short ws_row, ws_col;
+  unsigned short ws_xpixel, ws_ypixel;
+};
+
+#define TIOCGWINSZ (('T' << 8) | 1)
+#define TIOCSWINSZ (('T' << 8) | 2)
+
+#endif	/* _SYS_TERMIOS_H */
diff --git a/mingw-w64-headers/include/sys/time.h b/mingw-w64-headers/include/sys/time.h
new file mode 100755
index 0000000..eb37561
--- /dev/null
+++ b/mingw-w64-headers/include/sys/time.h
@@ -0,0 +1,24 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#include <time.h>
+
+#ifndef __STRICT_ANSI__
+#ifndef _TIMEVAL_DEFINED /* also in winsock[2].h */
+#define _TIMEVAL_DEFINED
+struct timeval {
+  long tv_sec;
+  long tv_usec;
+};
+#define timerisset(tvp)	 ((tvp)->tv_sec || (tvp)->tv_usec)
+#define timercmp(tvp, uvp, cmp) \
+  (((tvp)->tv_sec != (uvp)->tv_sec) ? \
+  ((tvp)->tv_sec cmp (uvp)->tv_sec) : \
+  ((tvp)->tv_usec cmp (uvp)->tv_usec))
+#define timerclear(tvp)	 (tvp)->tv_sec = (tvp)->tv_usec = 0
+#endif /* _TIMEVAL_DEFINED */
+
+#endif /* __STRICT_ANSI__ */
diff --git a/mingw-w64-headers/include/sys/timeb.h b/mingw-w64-headers/include/sys/timeb.h
new file mode 100755
index 0000000..f85ac89
--- /dev/null
+++ b/mingw-w64-headers/include/sys/timeb.h
@@ -0,0 +1,124 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_TIMEB
+#define _INC_TIMEB
+
+#include <_mingw.h>
+
+#ifndef _WIN32
+#error Only Win32 target is supported!
+#endif
+
+#pragma pack(push,_CRT_PACKING)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _CRTIMP
+#define _CRTIMP __declspec(dllimport)
+#endif
+
+#ifdef _USE_32BIT_TIME_T
+#ifdef _WIN64
+#undef _USE_32BIT_TIME_T
+#endif
+#else
+#if _INTEGRAL_MAX_BITS < 64
+#define _USE_32BIT_TIME_T
+#endif
+#endif
+
+#ifndef _TIME32_T_DEFINED
+  typedef long __time32_t;
+#define _TIME32_T_DEFINED
+#endif
+
+#ifndef _TIME64_T_DEFINED
+#if _INTEGRAL_MAX_BITS >= 64
+  typedef __int64 __time64_t;
+#endif
+#define _TIME64_T_DEFINED
+#endif
+
+#ifndef _TIME_T_DEFINED
+#ifdef _USE_32BIT_TIME_T
+  typedef __time32_t time_t;
+#else
+  typedef __time64_t time_t;
+#endif
+#define _TIME_T_DEFINED
+#endif
+
+#ifndef _TIMEB_DEFINED
+#define _TIMEB_DEFINED
+
+  struct __timeb32 {
+    __time32_t time;
+    unsigned short millitm;
+    short timezone;
+    short dstflag;
+  };
+
+#ifndef	NO_OLDNAMES
+  struct timeb {
+    time_t time;
+    unsigned short millitm;
+    short timezone;
+    short dstflag;
+  };
+#endif
+
+#if _INTEGRAL_MAX_BITS >= 64
+  struct __timeb64 {
+    __time64_t time;
+    unsigned short millitm;
+    short timezone;
+    short dstflag;
+  };
+#endif
+
+#ifdef _USE_32BIT_TIME_T
+#define _timeb __timeb32
+#define _ftime _ftime32
+#define _ftime_s _ftime32_s
+#else
+#define _timeb __timeb64
+#define _ftime _ftime64
+#define _ftime_s _ftime64_s
+#endif
+#endif
+
+  _CRTIMP void __cdecl _ftime32(struct __timeb32 *_Time);
+  _CRTIMP errno_t __cdecl _ftime32_s(struct __timeb32 *_Time);
+#if _INTEGRAL_MAX_BITS >= 64
+  _CRTIMP void __cdecl _ftime64(struct __timeb64 *_Time);
+  _CRTIMP errno_t __cdecl _ftime64_s(struct __timeb64 *_Time);
+#endif
+
+#ifndef TIMESPEC_DEFINED
+#define TIMESPEC_DEFINED
+struct timespec {
+  time_t  tv_sec;   /* Seconds */
+  long    tv_nsec;  /* Nanoseconds */
+};
+
+struct itimerspec {
+  struct timespec  it_interval;  /* Timer period */
+  struct timespec  it_value;     /* Timer expiration */
+};
+#endif
+
+#ifndef RC_INVOKED
+#include <sys/timeb.inl>
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#pragma pack(pop)
+#endif
diff --git a/mingw-w64-headers/include/sys/timeb.inl b/mingw-w64-headers/include/sys/timeb.inl
new file mode 100755
index 0000000..6531f1b
--- /dev/null
+++ b/mingw-w64-headers/include/sys/timeb.inl
@@ -0,0 +1,25 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_TIMEB_INL
+#define _INC_TIMEB_INL
+#ifndef _STATIC_ASSERT
+#define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr) ]
+#endif
+
+#ifndef	NO_OLDNAMES
+#ifdef _USE_32BIT_TIME_T
+__CRT_INLINE void __cdecl ftime(struct timeb *_Tmb) {
+  _STATIC_ASSERT(sizeof(struct timeb)==sizeof(struct __timeb32));
+  _ftime32((struct __timeb32 *)_Tmb);
+}
+#else
+__CRT_INLINE void __cdecl ftime(struct timeb *_Tmb) {
+  _STATIC_ASSERT(sizeof(struct timeb)==sizeof(struct __timeb64));
+  _ftime64((struct __timeb64 *)_Tmb);
+}
+#endif
+#endif
+#endif
diff --git a/mingw-w64-headers/include/sys/ttychars.h b/mingw-w64-headers/include/sys/ttychars.h
new file mode 100755
index 0000000..fcd8870
--- /dev/null
+++ b/mingw-w64-headers/include/sys/ttychars.h
@@ -0,0 +1,66 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+/*-
+ * Copyright (c) 1982, 1986, 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ttychars.h	8.2 (Berkeley) 1/4/94
+ */
+
+/*
+ * 4.3 COMPATIBILITY FILE
+ *
+ * User visible structures and constants related to terminal handling.
+ */
+#ifndef _SYS_TTYCHARS_H
+#define	_SYS_TTYCHARS_H 1
+
+struct ttychars {
+	char	tc_erase;	/* erase last character */
+	char	tc_kill;	/* erase entire line */
+	char	tc_intrc;	/* interrupt */
+	char	tc_quitc;	/* quit */
+	char	tc_startc;	/* start output */
+	char	tc_stopc;	/* stop output */
+	char	tc_eofc;	/* end-of-file */
+	char	tc_brkc;	/* input delimiter (like nl) */
+	char	tc_suspc;	/* stop process signal */
+	char	tc_dsuspc;	/* delayed stop process signal */
+	char	tc_rprntc;	/* reprint line */
+	char	tc_flushc;	/* flush output (toggles) */
+	char	tc_werasc;	/* word erase */
+	char	tc_lnextc;	/* literal next character */
+};
+
+#ifdef __USE_OLD_TTY
+#include <sys/ttydefaults.h>	/* to pick up character defaults */
+#endif
+
+#endif /* sys/ttychars.h */
diff --git a/mingw-w64-headers/include/sys/types.h b/mingw-w64-headers/include/sys/types.h
new file mode 100755
index 0000000..307aa1e
--- /dev/null
+++ b/mingw-w64-headers/include/sys/types.h
@@ -0,0 +1,113 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_TYPES
+#define _INC_TYPES
+
+#ifndef _WIN32
+#error Only Win32 target is supported!
+#endif
+
+#include <_mingw.h>
+
+#ifdef _USE_32BIT_TIME_T
+#ifdef _WIN64
+#undef _USE_32BIT_TIME_T
+#endif
+#else
+#if _INTEGRAL_MAX_BITS < 64
+#define _USE_32BIT_TIME_T
+#endif
+#endif
+
+#ifndef _TIME32_T_DEFINED
+#define _TIME32_T_DEFINED
+typedef long __time32_t;
+#endif
+
+#ifndef _TIME64_T_DEFINED
+#define _TIME64_T_DEFINED
+#if _INTEGRAL_MAX_BITS >= 64
+typedef __int64 __time64_t;
+#endif
+#endif
+
+#ifndef _TIME_T_DEFINED
+#define _TIME_T_DEFINED
+#ifdef _USE_32BIT_TIME_T
+typedef __time32_t time_t;
+#else
+typedef __time64_t time_t;
+#endif
+#endif
+
+#ifndef _INO_T_DEFINED
+#define _INO_T_DEFINED
+typedef unsigned short _ino_t;
+#ifndef	NO_OLDNAMES
+typedef unsigned short ino_t;
+#endif
+#endif
+
+#ifndef _DEV_T_DEFINED
+#define _DEV_T_DEFINED
+typedef unsigned int _dev_t;
+#ifndef	NO_OLDNAMES
+typedef unsigned int dev_t;
+#endif
+#endif
+
+#ifndef _PID_T_
+#define	_PID_T_
+#ifndef _WIN64
+typedef int	_pid_t;
+#else
+typedef __int64	_pid_t;
+#endif
+
+#ifndef	_NO_OLDNAMES
+typedef _pid_t	pid_t;
+#endif
+#endif	/* Not _PID_T_ */
+
+#ifndef _MODE_T_
+#define	_MODE_T_
+typedef unsigned short _mode_t;
+
+#ifndef	_NO_OLDNAMES
+typedef _mode_t	mode_t;
+#endif
+#endif	/* Not _MODE_T_ */
+
+#ifndef _OFF_T_DEFINED
+#define _OFF_T_DEFINED
+typedef long _off_t;
+#ifndef	NO_OLDNAMES
+typedef long off_t;
+#endif
+#endif
+
+#ifndef _OFF64_T_DEFINED

+#define _OFF64_T_DEFINED

+  typedef long long _off64_t;

+#if !defined(NO_OLDNAMES) || defined(_POSIX)

+  typedef long long off64_t;

+#endif

+#endif

+
+#ifndef TIMESPEC_DEFINED
+#define TIMESPEC_DEFINED
+struct timespec {
+  time_t  tv_sec;   /* Seconds */
+  long    tv_nsec;  /* Nanoseconds */
+};
+
+struct itimerspec {
+  struct timespec  it_interval;  /* Timer period */
+  struct timespec  it_value;     /* Timer expiration */
+};
+#endif
+
+#endif
diff --git a/mingw-w64-headers/include/sys/unistd.h b/mingw-w64-headers/include/sys/unistd.h
new file mode 100755
index 0000000..31006d3
--- /dev/null
+++ b/mingw-w64-headers/include/sys/unistd.h
@@ -0,0 +1,14 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+/*
+ * This file is part of the Mingw32 package.
+ *
+ * unistd.h maps (roughly) to io.h
+ */
+#ifndef __STRICT_ANSI__
+#include <io.h>
+#endif
+
diff --git a/mingw-w64-headers/include/sys/utime.h b/mingw-w64-headers/include/sys/utime.h
new file mode 100755
index 0000000..22cdd83
--- /dev/null
+++ b/mingw-w64-headers/include/sys/utime.h
@@ -0,0 +1,112 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_UTIME
+#define _INC_UTIME
+
+#ifndef _WIN32
+#error Only Win32 target is supported!
+#endif
+
+#include <_mingw.h>
+
+#pragma pack(push,_CRT_PACKING)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _CRTIMP
+#define _CRTIMP __declspec(dllimport)
+#endif
+
+#ifndef _WCHAR_T_DEFINED
+  typedef unsigned short wchar_t;
+#define _WCHAR_T_DEFINED
+#endif
+
+#ifdef _USE_32BIT_TIME_T
+#ifdef _WIN64
+#undef _USE_32BIT_TIME_T
+#endif
+#else
+#if _INTEGRAL_MAX_BITS < 64
+#define _USE_32BIT_TIME_T
+#endif
+#endif
+
+#ifndef _TIME32_T_DEFINED
+#define _TIME32_T_DEFINED
+  typedef long __time32_t;
+#endif
+
+#ifndef _TIME64_T_DEFINED
+#define _TIME64_T_DEFINED
+#if _INTEGRAL_MAX_BITS >= 64
+  typedef __int64 __time64_t;
+#endif
+#endif
+
+#ifndef _TIME_T_DEFINED
+#define _TIME_T_DEFINED
+#ifdef _USE_32BIT_TIME_T
+  typedef __time32_t time_t;
+#else
+  typedef __time64_t time_t;
+#endif
+#endif
+
+#ifndef _UTIMBUF_DEFINED
+#define _UTIMBUF_DEFINED
+
+  struct _utimbuf {
+    time_t actime;
+    time_t modtime;
+  };
+
+  struct __utimbuf32 {
+    __time32_t actime;
+    __time32_t modtime;
+  };
+
+#if _INTEGRAL_MAX_BITS >= 64
+  struct __utimbuf64 {
+    __time64_t actime;
+    __time64_t modtime;
+  };
+#endif
+
+#ifndef	NO_OLDNAMES
+  struct utimbuf {
+    time_t actime;
+    time_t modtime;
+  };
+
+  struct utimbuf32 {
+    __time32_t actime;
+    __time32_t modtime;
+  };
+#endif
+#endif
+
+  _CRTIMP int __cdecl _utime32(const char *_Filename,struct __utimbuf32 *_Time);
+  _CRTIMP int __cdecl _futime32(int _FileDes,struct __utimbuf32 *_Time);
+  _CRTIMP int __cdecl _wutime32(const wchar_t *_Filename,struct __utimbuf32 *_Time);
+#if _INTEGRAL_MAX_BITS >= 64
+  _CRTIMP int __cdecl _utime64(const char *_Filename,struct __utimbuf64 *_Time);
+  _CRTIMP int __cdecl _futime64(int _FileDes,struct __utimbuf64 *_Time);
+  _CRTIMP int __cdecl _wutime64(const wchar_t *_Filename,struct __utimbuf64 *_Time);
+#endif
+
+#if !defined(RC_INVOKED)
+#include <sys/utime.inl>
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#pragma pack(pop)
+#endif
diff --git a/mingw-w64-headers/include/sys/utime.inl b/mingw-w64-headers/include/sys/utime.inl
new file mode 100755
index 0000000..d40b266
--- /dev/null
+++ b/mingw-w64-headers/include/sys/utime.inl
@@ -0,0 +1,53 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_UTIME_INL
+#define _INC_UTIME_INL
+#ifndef _STATIC_ASSERT
+#define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr) ]
+#endif
+
+#ifdef _USE_32BIT_TIME_T
+__CRT_INLINE int __cdecl _utime(const char *_Filename,struct _utimbuf *_Utimbuf) {
+  _STATIC_ASSERT(sizeof(struct _utimbuf)==sizeof(struct __utimbuf32));
+  return _utime32(_Filename,(struct __utimbuf32 *)_Utimbuf);
+}
+__CRT_INLINE int __cdecl _futime(int _Desc,struct _utimbuf *_Utimbuf) {
+  _STATIC_ASSERT(sizeof(struct _utimbuf)==sizeof(struct __utimbuf32));
+  return _futime32(_Desc,(struct __utimbuf32 *)_Utimbuf);
+}
+__CRT_INLINE int __cdecl _wutime(const wchar_t *_Filename,struct _utimbuf *_Utimbuf) {
+  _STATIC_ASSERT(sizeof(struct _utimbuf)==sizeof(struct __utimbuf32));
+  return _wutime32(_Filename,(struct __utimbuf32 *)_Utimbuf);
+}
+#else
+__CRT_INLINE int __cdecl _utime(const char *_Filename,struct _utimbuf *_Utimbuf) {
+  _STATIC_ASSERT(sizeof(struct _utimbuf)==sizeof(struct __utimbuf64));
+  return _utime64(_Filename,(struct __utimbuf64 *)_Utimbuf);
+}
+__CRT_INLINE int __cdecl _futime(int _Desc,struct _utimbuf *_Utimbuf) {
+  _STATIC_ASSERT(sizeof(struct _utimbuf)==sizeof(struct __utimbuf64));
+  return _futime64(_Desc,(struct __utimbuf64 *)_Utimbuf);
+}
+__CRT_INLINE int __cdecl _wutime(const wchar_t *_Filename,struct _utimbuf *_Utimbuf) {
+  _STATIC_ASSERT(sizeof(struct _utimbuf)==sizeof(struct __utimbuf64));
+  return _wutime64(_Filename,(struct __utimbuf64 *)_Utimbuf);
+}
+#endif
+
+#ifndef	NO_OLDNAMES
+#ifdef _USE_32BIT_TIME_T
+__CRT_INLINE int __cdecl utime(const char *_Filename,struct utimbuf *_Utimbuf) {
+  _STATIC_ASSERT(sizeof(struct utimbuf)==sizeof(struct __utimbuf32));
+  return _utime32(_Filename,(struct __utimbuf32 *)_Utimbuf);
+}
+#else
+__CRT_INLINE int __cdecl utime(const char *_Filename,struct utimbuf *_Utimbuf) {
+  _STATIC_ASSERT(sizeof(struct utimbuf)==sizeof(struct __utimbuf64));
+  return _utime64(_Filename,(struct __utimbuf64 *)_Utimbuf);
+}
+#endif
+#endif
+#endif
diff --git a/mingw-w64-headers/include/sys/wstat.inl b/mingw-w64-headers/include/sys/wstat.inl
new file mode 100755
index 0000000..b1d1d1f
--- /dev/null
+++ b/mingw-w64-headers/include/sys/wstat.inl
@@ -0,0 +1,37 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_WSTAT_INL
+#define _INC_WSTAT_INL
+#ifndef _STATIC_ASSERT
+#define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr) ]
+#endif
+
+#ifdef _USE_32BIT_TIME_T
+__CRT_INLINE int __cdecl _wstat(const wchar_t *_Filename,struct _stat *_Stat) {
+  _STATIC_ASSERT(sizeof(struct _stat)==sizeof(struct _stat32));
+  return _wstat32(_Filename,(struct _stat32 *)_Stat);
+}
+#else
+__CRT_INLINE int __cdecl _wstat(const wchar_t *_Filename,struct _stat *_Stat) {
+  _STATIC_ASSERT(sizeof(struct _stat)==sizeof(struct _stat64i32));
+  return _wstat64i32(_Filename,(struct _stat64i32 *)_Stat);
+}
+#endif
+
+#if _INTEGRAL_MAX_BITS >= 64
+#ifdef _USE_32BIT_TIME_T
+__CRT_INLINE int __cdecl _wstati64(const wchar_t *_Filename,struct _stati64 *_Stat) {
+  _STATIC_ASSERT(sizeof(struct _stati64)==sizeof(struct _stat32i64));
+  return _wstat32i64(_Filename,(struct _stat32i64*)_Stat);
+}
+#else
+__CRT_INLINE int __cdecl _wstati64(const wchar_t *_Filename,struct _stati64 *_Stat) {
+  _STATIC_ASSERT(sizeof(struct _stati64)==sizeof(struct _stat64));
+  return _wstat64(_Filename,(struct _stat64*)_Stat);
+}
+#endif
+#endif
+#endif