Introduce common-types.h

This introduces common-types.h.  This file defines various standard
types used by gdb and gdbserver.

Currently these types are conditionally defined based on GDBSERVER.
The long term goal is to remove all such tests; however, this is
difficult as currently gdb uses definitions from BFD.  In the meantime
this is still a step in the right direction.

gdb/ChangeLog:

	* common/common-types.h: New file.
	* Makefile.in (HFILES_NO_SRCDIR): Add common/common-types.h.
	* common/common-defs.h: Include common-types.h.
	* defs.h (gdb_byte, CORE_ADDR, CORE_ADDR_MAX, LONGEST)
	(ULONGEST): Remove.

gdb/gdbserver/ChangeLog:

	* server.h: Add static assertion.
	(gdb_byte, CORE_ADDR, LONGEST, ULONGEST): Remove.
This commit is contained in:
Gary Benson 2014-07-30 15:31:10 +01:00
parent ef87c8bbe7
commit 9239eeabe3
7 changed files with 80 additions and 41 deletions

View File

@ -1,3 +1,12 @@
2014-08-19 Tom Tromey <tromey@redhat.com>
Gary Benson <gbenson@redhat.com>
* common/common-types.h: New file.
* Makefile.in (HFILES_NO_SRCDIR): Add common/common-types.h.
* common/common-defs.h: Include common-types.h.
* defs.h (gdb_byte, CORE_ADDR, CORE_ADDR_MAX, LONGEST)
(ULONGEST): Remove.
2014-08-19 Tom Tromey <tromey@redhat.com>
Gary Benson <gbenson@redhat.com>

View File

@ -936,7 +936,7 @@ gdb_bfd.h sparc-ravenscar-thread.h ppc-ravenscar-thread.h nat/linux-btrace.h \
ctf.h nat/i386-cpuid.h nat/i386-gcc-cpuid.h target/resume.h \
target/wait.h target/waitstatus.h nat/linux-nat.h nat/linux-waitpid.h \
common/print-utils.h common/rsp-low.h nat/i386-dregs.h x86-linux-nat.h \
i386-linux-nat.h common/common-defs.h common/errors.h
i386-linux-nat.h common/common-defs.h common/errors.h common/common-types.h
# Header files that already have srcdir in them, or which are in objdir.

View File

@ -42,5 +42,6 @@
#include "common-utils.h"
#include "gdb_assert.h"
#include "errors.h"
#include "common-types.h"
#endif /* COMMON_DEFS_H */

61
gdb/common/common-types.h Normal file
View File

@ -0,0 +1,61 @@
/* Declarations for common types.
Copyright (C) 1986-2014 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef COMMON_TYPES_H
#define COMMON_TYPES_H
#ifdef GDBSERVER
/* * A byte from the program being debugged. */
typedef unsigned char gdb_byte;
typedef unsigned long long CORE_ADDR;
typedef long long LONGEST;
typedef unsigned long long ULONGEST;
#else /* GDBSERVER */
#include "bfd.h"
/* * A byte from the program being debugged. */
typedef bfd_byte gdb_byte;
/* * An address in the program being debugged. Host byte order. */
typedef bfd_vma CORE_ADDR;
/* This is to make sure that LONGEST is at least as big as CORE_ADDR. */
#ifdef BFD64
typedef BFD_HOST_64_BIT LONGEST;
typedef BFD_HOST_U_64_BIT ULONGEST;
#else /* No BFD64 */
typedef long long LONGEST;
typedef unsigned long long ULONGEST;
#endif /* No BFD64 */
#endif /* GDBSERVER */
/* * The largest CORE_ADDR value. */
#define CORE_ADDR_MAX (~ (CORE_ADDR) 0)
#endif /* COMMON_TYPES_H */

View File

@ -76,35 +76,6 @@
#include "hashtab.h"
/* Rather than duplicate all the logic in BFD for figuring out what
types to use (which can be pretty complicated), symply define them
in terms of the corresponding type from BFD. */
#include "bfd.h"
/* * A byte from the program being debugged. */
typedef bfd_byte gdb_byte;
/* * An address in the program being debugged. Host byte order. */
typedef bfd_vma CORE_ADDR;
/* * The largest CORE_ADDR value. */
#define CORE_ADDR_MAX (~ (CORE_ADDR) 0)
/* This is to make sure that LONGEST is at least as big as CORE_ADDR. */
#ifdef BFD64
#define LONGEST BFD_HOST_64_BIT
#define ULONGEST BFD_HOST_U_64_BIT
#else /* No BFD64 */
#define LONGEST long long
#define ULONGEST unsigned long long
#endif /* No BFD64 */
#ifndef min
#define min(a, b) ((a) < (b) ? (a) : (b))
#endif

View File

@ -1,3 +1,9 @@
2014-08-19 Tom Tromey <tromey@redhat.com>
Gary Benson <gbenson@redhat.com>
* server.h: Add static assertion.
(gdb_byte, CORE_ADDR, LONGEST, ULONGEST): Remove.
2014-08-19 Tom Tromey <tromey@redhat.com>
Gary Benson <gbenson@redhat.com>

View File

@ -21,6 +21,8 @@
#include "common-defs.h"
gdb_static_assert (sizeof (CORE_ADDR) >= sizeof (void *));
#ifdef __MINGW32CE__
#include "wincecompat.h"
#endif
@ -63,19 +65,8 @@ int vsnprintf(char *str, size_t size, const char *format, va_list ap);
# define PROG "gdbserver"
#endif
/* A type used for binary buffers. */
typedef unsigned char gdb_byte;
#include "buffer.h"
#include "xml-utils.h"
/* FIXME: This should probably be autoconf'd for. It's an integer type at
least the size of a (void *). */
typedef unsigned long long CORE_ADDR;
typedef long long LONGEST;
typedef unsigned long long ULONGEST;
#include "regcache.h"
#include "gdb_signals.h"
#include "target.h"