VirtualC64
v5.0 beta
Commodore 64 Emulator
Loading...
Searching...
No Matches
Types.h
1
// -----------------------------------------------------------------------------
2
// This file is part of VirtualC64
3
//
4
// Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de
5
// This FILE is dual-licensed. You are free to choose between:
6
//
7
// - The GNU General Public License v3 (or any later version)
8
// - The Mozilla Public License v2
9
//
10
// SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0
11
// -----------------------------------------------------------------------------
12
13
#pragma once
14
15
#include <sys/types.h>
16
#include <stdint.h>
17
18
//
19
// Integers
20
//
21
22
// Signed integers
23
typedef
signed
char
i8;
24
typedef
signed
short
i16;
25
typedef
signed
int
i32;
26
typedef
signed
long
long
i64;
27
typedef
signed
long
isize;
28
29
// Unsigned integers
30
typedef
unsigned
char
u8;
31
typedef
unsigned
short
u16;
32
typedef
unsigned
int
u32;
33
typedef
unsigned
long
long
u64;
34
typedef
unsigned
long
usize;
35
36
37
//
38
// Strings
39
//
40
41
#include <string>
42
#include <cstring>
43
using
std::string;
44
45
46
//
47
// Optionals
48
//
49
50
#include <optional>
51
using
std::optional;
52
53
54
//
55
// Enums
56
//
57
58
#if defined(__SWIFT__)
59
60
#define new_enum_generic(_name, _type) \
61
enum __attribute__((enum_extensibility(open))) _name : _type
62
#define enum_long(_name) new_enum_generic(_name, long)
63
#define enum_i8(_name) new_enum_generic(_name, i8)
64
65
#else
66
67
#define new_enum_generic(_name, _type) \
68
enum _name : _type
69
#define enum_long(_name) new_enum_generic(_name, long)
70
#define enum_i8(_name) new_enum_generic(_name, i8)
71
72
#endif
Emulator
Utilities
Types.h
Generated by
1.10.0