1 #ifndef NV_CORE_H
2 #error "Do not include this file directly."
3 #endif
4 
5 // Function linkage
6 #define DLL_IMPORT __declspec(dllimport)
7 #define DLL_EXPORT __declspec(dllexport)
8 #define DLL_EXPORT_CLASS DLL_EXPORT
9 
10 // Function calling modes
11 #define NV_CDECL        __cdecl
12 #define NV_STDCALL      __stdcall
13 #define NV_FASTCALL     __fastcall
14 #define NV_FORCEINLINE  __forceinline
15 #define NV_DEPRECATED
16 
17 #define NV_PURE
18 #define NV_CONST
19 
20 // Set standard function names.
21 #define snprintf _snprintf
22 #if _MSC_VER < 1500
23 #	define vsnprintf _vsnprintf
24 #endif
25 #define vsscanf _vsscanf
26 #define chdir _chdir
27 #define getcwd _getcwd
28 
29 #define va_copy(a, b)	a = b
30 
31 #if !defined restrict
32 #define restrict
33 #endif
34 
35 // Ignore gcc attributes.
36 #define __attribute__(X)
37 
38 #if !defined __FUNC__
39 #define __FUNC__ __FUNCTION__
40 #endif
41 
42 
43 // Type definitions
44 typedef unsigned char       uint8;
45 typedef signed char         int8;
46 
47 typedef unsigned short      uint16;
48 typedef signed short        int16;
49 
50 typedef unsigned int        uint32;
51 typedef signed int          int32;
52 
53 typedef unsigned __int64    uint64;
54 typedef signed __int64      int64;
55 
56 // Aliases
57 typedef uint32              uint;
58 
59 
60 // Unwanted VC++ warnings to disable.
61 /*
62 #pragma warning(disable : 4244)		// conversion to float, possible loss of data
63 #pragma warning(disable : 4245)		// conversion from 'enum ' to 'unsigned long', signed/unsigned mismatch
64 #pragma warning(disable : 4100)		// unreferenced formal parameter
65 #pragma warning(disable : 4514)		// unreferenced inline function has been removed
66 #pragma warning(disable : 4710)		// inline function not expanded
67 #pragma warning(disable : 4127)		// Conditional expression is constant
68 #pragma warning(disable : 4305)		// truncation from 'const double' to 'float'
69 #pragma warning(disable : 4505)		// unreferenced local function has been removed
70 
71 #pragma warning(disable : 4702)		// unreachable code in inline expanded function
72 #pragma warning(disable : 4711)		// function selected for automatic inlining
73 #pragma warning(disable : 4725)		// Pentium fdiv bug
74 
75 #pragma warning(disable : 4786)		// Identifier was truncated and cannot be debugged.
76 
77 #pragma warning(disable : 4675)		// resolved overload was found by argument-dependent lookup
78 */
79