1 /* Declarations for common types.
3 Copyright (C) 1986-2023 Free Software Foundation, Inc.
5 This file is part of GDB.
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 #ifndef COMMON_COMMON_TYPES_H
21 #define COMMON_COMMON_TYPES_H
25 /* * A byte from the program being debugged. */
26 typedef unsigned char gdb_byte
;
28 /* * An address in the program being debugged. Host byte order. */
29 typedef uint64_t CORE_ADDR
;
31 /* Like a CORE_ADDR, but not directly convertible. This is used to
32 represent an unrelocated CORE_ADDR. DEFINE_OFFSET_TYPE is not used
33 here because there's no need to add or subtract values of this
35 enum class unrelocated_addr
: CORE_ADDR
{ };
37 /* LONGEST must be at least as big as CORE_ADDR. */
39 typedef int64_t LONGEST
;
40 typedef uint64_t ULONGEST
;
42 /* * The largest CORE_ADDR value. */
43 #define CORE_ADDR_MAX (~(CORE_ADDR) 0)
45 /* * The largest ULONGEST value, 0xFFFFFFFFFFFFFFFF for 64-bits. */
46 #define ULONGEST_MAX (~(ULONGEST) 0)
48 /* * The largest LONGEST value, 0x7FFFFFFFFFFFFFFF for 64-bits. */
49 #define LONGEST_MAX ((LONGEST) (ULONGEST_MAX >> 1))
51 /* * The smallest LONGEST value, 0x8000000000000000 for 64-bits. */
52 #define LONGEST_MIN ((LONGEST) (~(LONGEST) 0 ^ LONGEST_MAX))
54 enum tribool
{ TRIBOOL_UNKNOWN
= -1, TRIBOOL_FALSE
= 0, TRIBOOL_TRUE
= 1 };
56 #endif /* COMMON_COMMON_TYPES_H */