#ifndef TQPLATFORMDEFS_H
#define TQPLATFORMDEFS_H

#ifdef UNICODE
#ifndef _UNICODE
#define _UNICODE
#endif
#endif

// Get TQt defines/settings

#include "tqglobal.h"

#include <tchar.h>
#include <io.h>
#include <direct.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <windows.h>

#if !defined(_WIN32_WINNT) || (_WIN32_WINNT-0 < 0x0500)
typedef enum {
    NameUnknown		  = 0, 
    NameFullyQualifiedDN  = 1, 
    NameSamCompatible	  = 2, 
    NameDisplay		  = 3, 
    NameUniqueId	  = 6, 
    NameCanonical	  = 7, 
    NameUserPrincipal	  = 8, 
    NameCanonicalEx	  = 9, 
    NameServicePrincipal  = 10, 
    NameDnsDomain	  = 12
} EXTENDED_NAME_FORMAT, *PEXTENDED_NAME_FORMAT;
#endif

#define TQ_FS_FAT
#ifdef TQT_LARGEFILE_SUPPORT
#define TQT_STATBUF		struct _stati64		// non-ANSI defs
#define TQT_STATBUF4TSTAT	struct _stati64		// non-ANSI defs
#define TQT_STAT			::_stati64
#define TQT_FSTAT		::_fstati64
#else
#define TQT_STATBUF		struct _stat		// non-ANSI defs
#define TQT_STATBUF4TSTAT	struct _stat		// non-ANSI defs
#define TQT_STAT			::_stat
#define TQT_FSTAT		::_fstat
#endif
#define TQT_STAT_REG		_S_IFREG
#define TQT_STAT_DIR		_S_IFDIR
#define TQT_STAT_MASK		_S_IFMT
#if defined(_S_IFLNK)
#  define TQT_STAT_LNK		_S_IFLNK
#endif
#define TQT_FILENO		_fileno
#define TQT_OPEN			::_open
#define TQT_CLOSE		::_close
#ifdef TQT_LARGEFILE_SUPPORT
#define TQT_LSEEK		::_lseeki64
#define TQT_TSTAT		::_tstati64
#else
#define TQT_LSEEK		::_lseek
#define TQT_TSTAT		::_tstat
#endif
#define TQT_READ			::_read
#define TQT_WRITE		::_write
#define TQT_ACCESS		::_access
#define TQT_GETCWD		::_getcwd
#define TQT_CHDIR		::_chdir
#define TQT_MKDIR		::_mkdir
#define TQT_RMDIR		::_rmdir
#define TQT_OPEN_RDONLY		_O_RDONLY
#define TQT_OPEN_WRONLY		_O_WRONLY
#define TQT_OPEN_RDWR		_O_RDWR
#define TQT_OPEN_CREAT		_O_CREAT
#define TQT_OPEN_TRUNC		_O_TRUNC
#define TQT_OPEN_APPEND		_O_APPEND
#if defined(O_TEXT)
# define TQT_OPEN_TEXT		_O_TEXT
# define TQT_OPEN_BINARY		_O_BINARY
#endif

#define TQT_SIGNAL_ARGS		int

#define TQT_VSNPRINTF		::_vsnprintf
#define TQT_SNPRINTF		::_snprintf

# define F_OK	0
# define X_OK	1
# define W_OK	2
# define R_OK	4


#endif // TQPLATFORMDEFS_H
