Mercurial > projects > ldc
comparison dmd2/port.h @ 758:f04dde6e882c
Added initial D2 support, D2 frontend and changes to codegen to make things compile.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Tue, 11 Nov 2008 01:38:48 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
757:2c730d530c98 | 758:f04dde6e882c |
---|---|
1 | |
2 // Copyright (c) 1999-2002 by Digital Mars | |
3 // All Rights Reserved | |
4 // written by Walter Bright | |
5 // www.digitalmars.com | |
6 | |
7 #ifndef PORT_H | |
8 #define PORT_H | |
9 | |
10 // Portable wrapper around compiler/system specific things. | |
11 // The idea is to minimize #ifdef's in the app code. | |
12 | |
13 #ifndef TYPEDEFS | |
14 #define TYPEDEFS | |
15 | |
16 #include <wchar.h> | |
17 | |
18 #if _MSC_VER | |
19 typedef __int64 longlong; | |
20 typedef unsigned __int64 ulonglong; | |
21 #else | |
22 typedef long long longlong; | |
23 typedef unsigned long long ulonglong; | |
24 #endif | |
25 | |
26 #endif | |
27 | |
28 typedef double d_time; | |
29 | |
30 struct Port | |
31 { | |
32 static double nan; | |
33 static double infinity; | |
34 static double dbl_max; | |
35 static double dbl_min; | |
36 | |
37 #if __GNUC__ | |
38 // These conflict with macros in math.h, should rename them | |
39 #undef isnan | |
40 #undef isfinite | |
41 #undef isinfinity | |
42 #undef signbit | |
43 #endif | |
44 static int isNan(double); | |
45 static int isFinite(double); | |
46 static int isInfinity(double); | |
47 static int Signbit(double); | |
48 | |
49 static double floor(double); | |
50 static double pow(double x, double y); | |
51 | |
52 static ulonglong strtoull(const char *p, char **pend, int base); | |
53 | |
54 static char *ull_to_string(char *buffer, ulonglong ull); | |
55 static wchar_t *ull_to_string(wchar_t *buffer, ulonglong ull); | |
56 | |
57 // Convert ulonglong to double | |
58 static double ull_to_double(ulonglong ull); | |
59 | |
60 // Get locale-dependent list separator | |
61 static char *list_separator(); | |
62 static wchar_t *wlist_separator(); | |
63 }; | |
64 | |
65 #endif |