gdbserver: no point in hiding the regcache type nowadays

The regcache used to be hidden inside inferiors.c, but since the
tracepoints support that it's a first class object.  This also fixes a
few implicit pointer conversion errors in C++ mode, caused by a few
places missing the explicit cast.

gdb/gdbserver/ChangeLog:
2015-08-06  Pedro Alves  <palves@redhat.com>

	* gdbthread.h (struct regcache): Forward declare.
	(struct thread_info) <regcache_data>: Now a struct regcache
	pointer.
	* inferiors.c (inferior_regcache_data)
	(set_inferior_regcache_data): Now work with struct regcache
	pointers.
	* inferiors.h (struct regcache): Forward declare.
	(inferior_regcache_data, set_inferior_regcache_data): Now work
	with struct regcache pointers.
	* regcache.c (get_thread_regcache, regcache_invalidate_thread)
	(free_register_cache_thread): Remove struct regcache pointer
	casts.
This commit is contained in:
Pedro Alves 2015-08-06 17:29:01 +01:00
parent ca0a5f0bd3
commit a44892be35
5 changed files with 25 additions and 9 deletions

View File

@ -1,3 +1,18 @@
2015-08-06 Pedro Alves <palves@redhat.com>
* gdbthread.h (struct regcache): Forward declare.
(struct thread_info) <regcache_data>: Now a struct regcache
pointer.
* inferiors.c (inferior_regcache_data)
(set_inferior_regcache_data): Now work with struct regcache
pointers.
* inferiors.h (struct regcache): Forward declare.
(inferior_regcache_data, set_inferior_regcache_data): Now work
with struct regcache pointers.
* regcache.c (get_thread_regcache, regcache_invalidate_thread)
(free_register_cache_thread): Remove struct regcache pointer
casts.
2015-08-06 Pedro Alves <palves@redhat.com>
* server.c (captured_main): On error, print the exception message

View File

@ -22,6 +22,7 @@
#include "inferiors.h"
struct btrace_target_info;
struct regcache;
struct thread_info
{
@ -30,7 +31,7 @@ struct thread_info
struct inferior_list_entry entry;
void *target_data;
void *regcache_data;
struct regcache *regcache_data;
/* The last resume GDB requested on this thread. */
enum resume_kind last_resume_kind;

View File

@ -230,14 +230,14 @@ set_inferior_target_data (struct thread_info *inferior, void *data)
inferior->target_data = data;
}
void *
struct regcache *
inferior_regcache_data (struct thread_info *inferior)
{
return inferior->regcache_data;
}
void
set_inferior_regcache_data (struct thread_info *inferior, void *data)
set_inferior_regcache_data (struct thread_info *inferior, struct regcache *data)
{
inferior->regcache_data = data;
}

View File

@ -33,6 +33,7 @@ struct inferior_list_entry
};
struct thread_info;
struct regcache;
struct target_desc;
struct sym_cache;
struct breakpoint;
@ -147,7 +148,7 @@ struct inferior_list_entry *find_inferior_id (struct inferior_list *list,
void *inferior_target_data (struct thread_info *);
void set_inferior_target_data (struct thread_info *, void *);
void *inferior_regcache_data (struct thread_info *);
void set_inferior_regcache_data (struct thread_info *, void *);
struct regcache *inferior_regcache_data (struct thread_info *);
void set_inferior_regcache_data (struct thread_info *, struct regcache *);
#endif /* INFERIORS_H */

View File

@ -28,7 +28,7 @@ get_thread_regcache (struct thread_info *thread, int fetch)
{
struct regcache *regcache;
regcache = (struct regcache *) inferior_regcache_data (thread);
regcache = inferior_regcache_data (thread);
/* Threads' regcaches are created lazily, because biarch targets add
the main thread/lwp before seeing it stop for the first time, and
@ -76,7 +76,7 @@ regcache_invalidate_thread (struct thread_info *thread)
{
struct regcache *regcache;
regcache = (struct regcache *) inferior_regcache_data (thread);
regcache = inferior_regcache_data (thread);
if (regcache == NULL)
return;
@ -277,8 +277,7 @@ find_register_by_number (const struct target_desc *tdesc, int n)
static void
free_register_cache_thread (struct thread_info *thread)
{
struct regcache *regcache
= (struct regcache *) inferior_regcache_data (thread);
struct regcache *regcache = inferior_regcache_data (thread);
if (regcache != NULL)
{