OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [mingw32.h] - Blame information for rev 768

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 706 jeremybenn
/****************************************************************************
2
 *                                                                          *
3
 *                         GNAT COMPILER COMPONENTS                         *
4
 *                                                                          *
5
 *                               M I N G W 3 2                              *
6
 *                                                                          *
7
 *                              C Header File                               *
8
 *                                                                          *
9
 *          Copyright (C) 2002-2011, Free Software Foundation, Inc.         *
10
 *                                                                          *
11
 * GNAT is free software;  you can  redistribute it  and/or modify it under *
12
 * terms of the  GNU General Public License as published  by the Free Soft- *
13
 * ware  Foundation;  either version 3,  or (at your option) any later ver- *
14
 * sion.  GNAT is distributed in the hope that it will be useful, but WITH- *
15
 * OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY *
16
 * or FITNESS FOR A PARTICULAR PURPOSE.                                     *
17
 *                                                                          *
18
 * As a special exception under Section 7 of GPL version 3, you are granted *
19
 * additional permissions described in the GCC Runtime Library Exception,   *
20
 * version 3.1, as published by the Free Software Foundation.               *
21
 *                                                                          *
22
 * You should have received a copy of the GNU General Public License and    *
23
 * a copy of the GCC Runtime Library Exception along with this program;     *
24
 * see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    *
25
 * <http://www.gnu.org/licenses/>.                                          *
26
 *                                                                          *
27
 * GNAT was originally developed  by the GNAT team at  New York University. *
28
 * Extensive contributions were provided by Ada Core Technologies Inc.      *
29
 *                                                                          *
30
 ****************************************************************************/
31
 
32
/*  This file provides some macros used for the MINGW32 platform. The main
33
    goal is to be able to build GNAT with a standard MINGW32 C header
34
    set. This files contains also the circuitry for the unicode support.   */
35
 
36
#ifndef _MINGW32_H
37
#define _MINGW32_H
38
 
39
#include <_mingw.h>
40
 
41
#ifndef RTX
42
#define GNAT_UNICODE_SUPPORT
43
#define _UNICODE /* For C runtime */
44
#define UNICODE  /* For Win32 API */
45
#endif
46
 
47
/* We need functionality available only starting with Windows XP */
48
#ifndef _WIN32_WINNT
49
#define _WIN32_WINNT 0x0501
50
#endif
51
 
52
#include <tchar.h>
53
#include <windows.h>
54
 
55
/* After including this file it is possible to use the character t as prefix
56
   to routines. If GNAT_UNICODE_SUPPORT is defined then the unicode enabled
57
   versions will be used.  */
58
 
59
/* Copy to/from wide-string, if GNAT_UNICODE_SUPPORT activated this will do
60
   the proper translations using the UTF-8 encoding.  */
61
 
62
#ifdef GNAT_UNICODE_SUPPORT
63
 
64
extern UINT CurrentCodePage;
65
 
66
/*  Macros to convert to/from the code page specified in CurrentCodePage.  */
67
#define S2WSC(wstr,str,len) \
68
   MultiByteToWideChar (CurrentCodePage,0,str,-1,wstr,len)
69
#define WS2SC(str,wstr,len) \
70
   WideCharToMultiByte (CurrentCodePage,0,wstr,-1,str,len,NULL,NULL)
71
 
72
/*  Macros to convert to/from UTF-8 code page.  */
73
#define S2WSU(wstr,str,len) \
74
   MultiByteToWideChar (CP_UTF8,0,str,-1,wstr,len)
75
#define WS2SU(str,wstr,len) \
76
   WideCharToMultiByte (CP_UTF8,0,wstr,-1,str,len,NULL,NULL)
77
 
78
/*  Macros to convert to/from Windows default code page.  */
79
#define S2WS(wstr,str,len) \
80
   MultiByteToWideChar (CP_ACP,0,str,-1,wstr,len)
81
#define WS2S(str,wstr,len) \
82
   WideCharToMultiByte (CP_ACP,0,wstr,-1,str,len,NULL,NULL)
83
#else
84
#define S2WSC(wstr,str,len) strncpy(wstr,str,len)
85
#define WS2SC(str,wstr,len) strncpy(str,wstr,len)
86
#define S2WSU(wstr,str,len) strncpy(wstr,str,len)
87
#define WS2SU(str,wstr,len) strncpy(str,wstr,len)
88
#define S2WS(wstr,str,len) strncpy(wstr,str,len)
89
#define WS2S(str,wstr,len) strncpy(str,wstr,len)
90
#endif
91
 
92
#include <stdlib.h>
93
 
94
/* STD_MINGW: standard if MINGW32 version > 1.3, we have switched to this
95
   version instead of the previous enhanced version to ease building GNAT on
96
   Windows platforms. By using STD_MINGW or OLD_MINGW it is possible to build
97
   GNAT using both MingW include files (Old MingW + ACT changes and standard
98
   MingW starting with version 1.3.
99
   For w64 Mingw the define STD_MINGW is always set to value 1, because
100
   there is no old header set present.  */
101
#ifdef _WIN64
102
#define STD_MINGW 1
103
#else
104
#define STD_MINGW ((__MINGW32_MAJOR_VERSION == 1 \
105
                   && __MINGW32_MINOR_VERSION >= 3) \
106
     || (__MINGW32_MAJOR_VERSION >= 2))
107
#endif
108
 
109
#define OLD_MINGW (!(STD_MINGW))
110
 
111
#ifndef MAXPATHLEN
112
#define MAXPATHLEN MAX_PATH
113
#endif
114
 
115
#endif /* _MINGW32_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.