From a44892be35506471a53e5bc8c2def4ffccf451f9 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 6 Aug 2015 17:29:01 +0100 Subject: [PATCH] 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 * gdbthread.h (struct regcache): Forward declare. (struct thread_info) : 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. --- gdb/gdbserver/ChangeLog | 15 +++++++++++++++ gdb/gdbserver/gdbthread.h | 3 ++- gdb/gdbserver/inferiors.c | 4 ++-- gdb/gdbserver/inferiors.h | 5 +++-- gdb/gdbserver/regcache.c | 7 +++---- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 1c1bb5eba0..5f0841779f 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,18 @@ +2015-08-06 Pedro Alves + + * gdbthread.h (struct regcache): Forward declare. + (struct thread_info) : 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 * server.c (captured_main): On error, print the exception message diff --git a/gdb/gdbserver/gdbthread.h b/gdb/gdbserver/gdbthread.h index b3e3e9dad7..d6959f46e6 100644 --- a/gdb/gdbserver/gdbthread.h +++ b/gdb/gdbserver/gdbthread.h @@ -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; diff --git a/gdb/gdbserver/inferiors.c b/gdb/gdbserver/inferiors.c index 7c5a1e0eac..d7ad347eee 100644 --- a/gdb/gdbserver/inferiors.c +++ b/gdb/gdbserver/inferiors.c @@ -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; } diff --git a/gdb/gdbserver/inferiors.h b/gdb/gdbserver/inferiors.h index 0569586fcf..88ebbe373a 100644 --- a/gdb/gdbserver/inferiors.h +++ b/gdb/gdbserver/inferiors.h @@ -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 */ diff --git a/gdb/gdbserver/regcache.c b/gdb/gdbserver/regcache.c index 8d7957b30e..ef955ffc5a 100644 --- a/gdb/gdbserver/regcache.c +++ b/gdb/gdbserver/regcache.c @@ -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) {