MFMv2.0.10
Movable Feast Machine Simulator 2.0.10
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
itype.h
Go to the documentation of this file.
1 /* -*- mode:C++ -*-
2  itype.h Short names for sized ints, and limits
3  Copyright (C) 2008-2014 The Regents of the University of New Mexico. All rights reserved.
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public
7  License as published by the Free Software Foundation; either
8  version 2.1 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this library; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
18  USA
19 */
20 
27 #ifndef ITYPE_H
28 #define ITYPE_H
29 
30 #include <inttypes.h>
31 
32 namespace MFM {
33 
34 typedef int8_t s8;
35 typedef int16_t s16;
36 typedef int32_t s32;
37 typedef int64_t s64;
38 typedef intptr_t sptr;
40 typedef const int8_t sc8;
41 typedef const int16_t sc16;
42 typedef const int32_t sc32;
43 typedef const int64_t sc64;
44 typedef const intptr_t scptr;
46 typedef volatile int8_t sv8;
47 typedef volatile int16_t sv16;
48 typedef volatile int32_t sv32;
49 typedef volatile int64_t sv64;
50 typedef volatile intptr_t svptr;
52 typedef volatile const int8_t svc8;
53 typedef volatile const int16_t svc16;
54 typedef volatile const int32_t svc32;
55 typedef volatile const int64_t svc64;
56 typedef volatile const intptr_t svcptr;
58 typedef uint8_t u8;
59 typedef uint16_t u16;
60 typedef uint32_t u32;
61 typedef uint64_t u64;
62 typedef uintptr_t uptr;
64 typedef const uint8_t uc8;
65 typedef const uint16_t uc16;
66 typedef const uint32_t uc32;
67 typedef const uint64_t uc64;
68 typedef const uintptr_t ucptr;
70 typedef volatile uint8_t uv8;
71 typedef volatile uint16_t uv16;
72 typedef volatile uint32_t uv32;
73 typedef volatile uint64_t uv64;
74 typedef volatile uintptr_t uvptr;
76 typedef volatile const uint8_t uvc8;
77 typedef volatile const uint16_t uvc16;
78 typedef volatile const uint32_t uvc32;
79 typedef volatile const uint64_t uvc64;
80 typedef volatile const uintptr_t uvcptr;
82 #define S8_MAX ((s8)127)
83 #define S8_MIN ((s8)-128)
84 #define S16_MAX ((s16)32767)
85 #define S16_MIN ((s16)-32768)
86 #define S32_MAX ((s32)2147483647)
87 #define S32_MIN ((s32)2147483648UL)
88 #define S64_MAX ((((s64)0x7fffffff)<<32)|0xffffffff)
89 #define S64_MIN ((((s64)0x80000000)<<32))
91 #define U8_MAX ((u8)255)
92 #define U8_MIN ((u8)0)
93 #define U16_MAX ((u16)65535U)
94 #define U16_MIN ((u16)0)
95 #define U32_MAX ((u32)4294967295UL)
96 #define U32_MIN ((u32)0)
97 #define U64_MAX ((((u64)0xffffffff)<<32)|0xffffffff)
98  /* U64_MAX hacked with an expression to avoid C99ish syntax.. */
99 #define U64_MIN ((u64)0LL)
101 } /* namespace MFM */
102 
103 #endif /* ITYPE_H */
104