Open Reality Reference Guide
 
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1
4#ifndef KARCH_TYPES_H
5#define KARCH_TYPES_H
6
7/**************************************************************************************
8
9 Copyright (C) 2001 - 2009 Autodesk, Inc. and/or its licensors.
10 All Rights Reserved.
11
12 The coded instructions, statements, computer programs, and/or related material
13 (collectively the "Data") in these files contain unpublished information
14 proprietary to Autodesk, Inc. and/or its licensors, which is protected by
15 Canada and United States of America federal copyright law and by international
16 treaties.
17
18 The Data may not be disclosed or distributed to third parties, in whole or in
19 part, without the prior written consent of Autodesk, Inc. ("Autodesk").
20
21 THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
22 ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
23 WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR ARISING
24 BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES OF TITLE,
25 NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR USE.
26 WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT WARRANT THAT THE OPERATION
27 OF THE DATA WILL BE UNINTERRUPTED OR ERROR FREE.
28
29 IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
30 OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR EXPENSES
31 OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE DAMAGES OR OTHER
32 SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS OF PROFITS, REVENUE
33 OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR DAMAGES OF ANY KIND),
34 HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF LIABILITY, WHETHER DERIVED
35 FROM CONTRACT, TORT (INCLUDING, BUT NOT LIMITED TO, NEGLIGENCE), OR OTHERWISE,
36 ARISING OUT OF OR RELATING TO THE DATA OR ITS USE OR ANY OTHER PERFORMANCE,
37 WHETHER OR NOT AUTODESK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS
38 OR DAMAGE.
39
40**************************************************************************/
41
42#ifndef KARCH_ARCH_H
43 #include <karch/arch.h>
44#endif
45
46#include <cstdint>
47
48// Common independant definitions
49
50typedef signed char kByte; /* signed 8-bit integer */
51typedef unsigned char kUByte; /* unsigned 8-bit integer */
52typedef signed char kSChar;
53typedef unsigned char kUChar;
54typedef unsigned int kUInt;
55typedef signed short kShort;
56typedef unsigned short kUShort;
57
58#define K_SCHAR_MIN (-128)
59#define K_SCHAR_MAX (127)
60#define K_UCHAR_MIN (0)
61#define K_UCHAR_MAX (255)
62
63#define K_INT8_MIN (-128)
64#define K_INT8_MAX (127)
65#define K_UINT8_MIN (0)
66#define K_UINT8_MAX (255)
67
68#define K_INT16_MIN (-32768)
69#define K_INT16_MAX (32767)
70#define K_UINT16_MIN (0)
71#define K_UINT16_MAX (65535)
72
73#define K_INT32_MIN (0x80000000)
74#define K_INT32_MAX (0x7fffffff)
75#define K_UINT32_MIN (0)
76#define K_UINT32_MAX (0xffffffff)
77
78#define KARCH_LITTLE_ENDIAN
79
80#define K_CHAR(x) char(x)
81#define K_SCHAR(x) kSChar(x)
82#define K_UCHAR(x) kUChar(x##L)
83
84#ifndef _T
85 #define __T(x) x
86 #define _T(x) __T(x)
87#endif
88
89#define K_SHORT(x) kShort(x)
90#define K_USHORT(x) kUShort(x##U)
91#define K_SHORT_MIN K_SHORT(-32768)
92#define K_SHORT_MAX K_SHORT(32767)
93#define K_USHORT_MIN K_USHORT(0)
94#define K_USHORT_MAX K_USHORT(65535)
95
96#define K_INT(x) (x)
97#define K_UINT(x) (x##U)
98#define K_INT_MIN K_INT(0x80000000)
99#define K_INT_MAX K_INT(0x7fffffff)
100#define K_UINT_MIN K_UINT(0)
101#define K_UINT_MAX K_UINT(0xffffffff)
102
103#ifdef __LP64__
104 typedef signed int kLong;
105 typedef unsigned int kULong;
106 #define zlufmt "%0u"
107 #define lufmt "%u"
108#else
109 typedef signed long kLong;
110 typedef unsigned long kULong;
111 #define zlufmt "%0lu"
112 #define lufmt "%lu"
113#endif
114
115#define K_LONG(x) (x)
116#define K_ULONG(x) (x##U)
117#define K_LONG_MIN K_LONG(0x80000000)
118#define K_LONG_MAX K_LONG(0x7fffffff)
119#define K_ULONG_MIN K_ULONG(0)
120#define K_ULONG_MAX K_ULONG(0xffffffff)
121
122typedef signed long long kLongLong;
123#define K_LONGLONG(x) ((kLongLong)(x##LL))
124typedef unsigned long long kULongLong;
125#define K_ULONGLONG(x) ((kULongLong)(x##ULL))
126
127#define K_LONGLONG_MIN K_LONGLONG(0x8000000000000000)
128#define K_LONGLONG_MAX K_LONGLONG(0x7fffffffffffffff)
129#define K_ULONGLONG_MIN K_ULONGLONG(0)
130#define K_ULONGLONG_MAX K_ULONGLONG(0xffffffffffffffff)
131
132typedef int8_t kInt8;
133typedef uint8_t kUInt8;
134
135typedef int16_t kInt16;
136typedef uint16_t kUInt16;
137
138typedef int32_t kInt32;
139typedef uint32_t kUInt32;
140
141typedef int64_t kInt64;
142typedef uint64_t kUInt64;
143
144// Atomic definitions
145#ifdef KARCH_ARCH_64
146 typedef int64_t kAtomic;
147#else
148 typedef int32_t kAtomic;
149#endif
150
151// Pointer definitions
152typedef uintptr_t kReference;
153#define K_REFERENCE_MAX UINTPTR_MAX
154
155typedef kULongLong KMicroTime;
156
157#endif