From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22978 invoked by alias); 3 Sep 2013 20:54:17 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 22968 invoked by uid 89); 3 Sep 2013 20:54:17 -0000 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 03 Sep 2013 20:54:17 +0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-5.8 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r83KQksH009548 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 3 Sep 2013 16:26:47 -0400 Received: from brno.lan (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id r83KQdrr028397 for ; Tue, 3 Sep 2013 16:26:46 -0400 From: Pedro Alves To: gdb-patches@sourceware.org Subject: [PATCH 6/9] [gdbserver] Split a new inferiors.h file out of server.h. Date: Tue, 03 Sep 2013 20:54:00 -0000 Message-Id: <1378239999-15533-7-git-send-email-palves@redhat.com> In-Reply-To: <1378239999-15533-1-git-send-email-palves@redhat.com> References: <1378239999-15533-1-git-send-email-palves@redhat.com> X-SW-Source: 2013-09/txt/msg00111.txt.bz2 gdb/gdbserver/ 2013-09-03 Pedro Alves * server.h (current_process, get_thread_process, all_processes) (add_inferior_to_list, for_each_inferior, current_inferior) (remove_inferior, add_process, remove_process, find_process_pid) (have_started_inferiors_p, have_attached_inferiors_p) (thread_id_to_gdb_id, thread_to_gdb_id, gdb_id_to_thread_id) (clear_inferiors, find_inferior, find_inferior_id) (inferior_target_data, set_inferior_target_data) (inferior_regcache_data, set_inferior_regcache_data): Move to inferiors.h, and include it. * inferiors.h: New file. --- gdb/gdbserver/gdbthread.h | 1 + gdb/gdbserver/inferiors.h | 114 ++++++++++++++++++++++++++++++++++++++++++++++ gdb/gdbserver/server.h | 97 +-------------------------------------- gdb/gdbserver/target.h | 1 + 4 files changed, 118 insertions(+), 95 deletions(-) create mode 100644 gdb/gdbserver/inferiors.h diff --git a/gdb/gdbserver/gdbthread.h b/gdb/gdbserver/gdbthread.h index 5d4955b..b43d676 100644 --- a/gdb/gdbserver/gdbthread.h +++ b/gdb/gdbserver/gdbthread.h @@ -20,6 +20,7 @@ #define GDB_THREAD_H #include "server.h" +#include "inferiors.h" struct btrace_target_info; diff --git a/gdb/gdbserver/inferiors.h b/gdb/gdbserver/inferiors.h new file mode 100644 index 0000000..ba28d5a --- /dev/null +++ b/gdb/gdbserver/inferiors.h @@ -0,0 +1,114 @@ +/* Inferior process information for the remote server for GDB. + Copyright (C) 1993-2013 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 . */ + +#ifndef INFERIORS_H +#define INFERIORS_H + +/* Generic information for tracking a list of ``inferiors'' - threads, + processes, etc. */ +struct inferior_list +{ + struct inferior_list_entry *head; + struct inferior_list_entry *tail; +}; +struct inferior_list_entry +{ + ptid_t id; + struct inferior_list_entry *next; +}; + +struct thread_info; +struct target_desc; +struct sym_cache; +struct breakpoint; +struct raw_breakpoint; +struct fast_tracepoint_jump; +struct process_info_private; + +struct process_info +{ + struct inferior_list_entry head; + + /* Nonzero if this child process was attached rather than + spawned. */ + int attached; + + /* True if GDB asked us to detach from this process, but we remained + attached anyway. */ + int gdb_detached; + + /* The symbol cache. */ + struct sym_cache *symbol_cache; + + /* The list of memory breakpoints. */ + struct breakpoint *breakpoints; + + /* The list of raw memory breakpoints. */ + struct raw_breakpoint *raw_breakpoints; + + /* The list of installed fast tracepoints. */ + struct fast_tracepoint_jump *fast_tracepoint_jumps; + + const struct target_desc *tdesc; + + /* Private target data. */ + struct process_info_private *private; +}; + +/* Return a pointer to the process that corresponds to the current + thread (current_inferior). It is an error to call this if there is + no current thread selected. */ + +struct process_info *current_process (void); +struct process_info *get_thread_process (struct thread_info *); + +extern struct inferior_list all_processes; + +void add_inferior_to_list (struct inferior_list *list, + struct inferior_list_entry *new_inferior); +void for_each_inferior (struct inferior_list *list, + void (*action) (struct inferior_list_entry *)); + +extern struct thread_info *current_inferior; +void remove_inferior (struct inferior_list *list, + struct inferior_list_entry *entry); + +struct process_info *add_process (int pid, int attached); +void remove_process (struct process_info *process); +struct process_info *find_process_pid (int pid); +int have_started_inferiors_p (void); +int have_attached_inferiors_p (void); + +ptid_t thread_id_to_gdb_id (ptid_t); +ptid_t thread_to_gdb_id (struct thread_info *); +ptid_t gdb_id_to_thread_id (ptid_t); + +void clear_inferiors (void); +struct inferior_list_entry *find_inferior + (struct inferior_list *, + int (*func) (struct inferior_list_entry *, + void *), + void *arg); +struct inferior_list_entry *find_inferior_id (struct inferior_list *list, + ptid_t id); +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 *); + +#endif /* INFERIORS_H */ diff --git a/gdb/gdbserver/server.h b/gdb/gdbserver/server.h index e21012a..a696121 100644 --- a/gdb/gdbserver/server.h +++ b/gdb/gdbserver/server.h @@ -94,30 +94,13 @@ typedef long long CORE_ADDR; typedef long long LONGEST; typedef unsigned long long ULONGEST; -/* Generic information for tracking a list of ``inferiors'' - threads, - processes, etc. */ -struct inferior_list -{ - struct inferior_list_entry *head; - struct inferior_list_entry *tail; -}; -struct inferior_list_entry -{ - ptid_t id; - struct inferior_list_entry *next; -}; - -struct thread_info; -struct process_info; -struct regcache; -struct target_desc; - #include "regcache.h" #include "gdb/signals.h" #include "gdb_signals.h" #include "target.h" #include "mem-break.h" #include "gdbthread.h" +#include "inferiors.h" struct dll_info { @@ -126,92 +109,16 @@ struct dll_info CORE_ADDR base_addr; }; -struct sym_cache; -struct breakpoint; -struct raw_breakpoint; -struct fast_tracepoint_jump; -struct process_info_private; - -struct process_info -{ - struct inferior_list_entry head; - - /* Nonzero if this child process was attached rather than - spawned. */ - int attached; - - /* True if GDB asked us to detach from this process, but we remained - attached anyway. */ - int gdb_detached; - - /* The symbol cache. */ - struct sym_cache *symbol_cache; - - /* The list of memory breakpoints. */ - struct breakpoint *breakpoints; - - /* The list of raw memory breakpoints. */ - struct raw_breakpoint *raw_breakpoints; - - /* The list of installed fast tracepoints. */ - struct fast_tracepoint_jump *fast_tracepoint_jumps; - - const struct target_desc *tdesc; - - /* Private target data. */ - struct process_info_private *private; -}; - -/* Return a pointer to the process that corresponds to the current - thread (current_inferior). It is an error to call this if there is - no current thread selected. */ - -struct process_info *current_process (void); -struct process_info *get_thread_process (struct thread_info *); - /* Target-specific functions */ void initialize_low (); -/* From inferiors.c. */ +/* From dll.c. */ -extern struct inferior_list all_processes; extern struct inferior_list all_dlls; extern int dlls_changed; extern void clear_dlls (void); -void add_inferior_to_list (struct inferior_list *list, - struct inferior_list_entry *new_inferior); -void for_each_inferior (struct inferior_list *list, - void (*action) (struct inferior_list_entry *)); - -extern struct thread_info *current_inferior; -void remove_inferior (struct inferior_list *list, - struct inferior_list_entry *entry); - -struct process_info *add_process (int pid, int attached); -void remove_process (struct process_info *process); -struct process_info *find_process_pid (int pid); -int have_started_inferiors_p (void); -int have_attached_inferiors_p (void); - -ptid_t thread_id_to_gdb_id (ptid_t); -ptid_t thread_to_gdb_id (struct thread_info *); -ptid_t gdb_id_to_thread_id (ptid_t); - -void clear_inferiors (void); -struct inferior_list_entry *find_inferior - (struct inferior_list *, - int (*func) (struct inferior_list_entry *, - void *), - void *arg); -struct inferior_list_entry *find_inferior_id (struct inferior_list *list, - ptid_t id); -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 *); - void loaded_dll (const char *name, CORE_ADDR base_addr); void unloaded_dll (const char *name, CORE_ADDR base_addr); diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h index 7629b14..c5e6fee 100644 --- a/gdb/gdbserver/target.h +++ b/gdb/gdbserver/target.h @@ -28,6 +28,7 @@ struct emit_ops; struct btrace_target_info; struct buffer; +struct process_info; /* This structure describes how to resume a particular thread (or all threads) based on the client's request. If thread is -1, then this -- 1.7.11.7