OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.3/] [gdb/] [gdbserver/] [linux-low.h] - Blame information for rev 1775

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1181 sfurman
/* Internal interfaces for the GNU/Linux specific target code for gdbserver.
2
   Copyright 2002, Free Software Foundation, Inc.
3
 
4
   This file is part of GDB.
5
 
6
   This program is free software; you can redistribute it and/or modify
7
   it under the terms of the GNU General Public License as published by
8
   the Free Software Foundation; either version 2 of the License, or
9
   (at your option) any later version.
10
 
11
   This program is distributed in the hope that it will be useful,
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
   GNU General Public License for more details.
15
 
16
   You should have received a copy of the GNU General Public License
17
   along with this program; if not, write to the Free Software
18
   Foundation, Inc., 59 Temple Place - Suite 330,
19
   Boston, MA 02111-1307, USA.  */
20
 
21
#ifdef HAVE_LINUX_REGSETS
22
typedef void (*regset_fill_func) (void *);
23
typedef void (*regset_store_func) (const void *);
24
enum regset_type {
25
  GENERAL_REGS,
26
  FP_REGS,
27
  EXTENDED_REGS,
28
};
29
 
30
struct regset_info
31
{
32
  int get_request, set_request;
33
  int size;
34
  enum regset_type type;
35
  regset_fill_func fill_function;
36
  regset_store_func store_function;
37
};
38
extern struct regset_info target_regsets[];
39
#endif
40
 
41
struct linux_target_ops
42
{
43
  int num_regs;
44
  int *regmap;
45
  int (*cannot_fetch_register) (int);
46
 
47
  /* Returns 0 if we can store the register, 1 if we can not
48
     store the register, and 2 if failure to store the register
49
     is acceptable.  */
50
  int (*cannot_store_register) (int);
51
  CORE_ADDR (*get_pc) (void);
52
  void (*set_pc) (CORE_ADDR newpc);
53
  const char *breakpoint;
54
  int breakpoint_len;
55
  CORE_ADDR (*breakpoint_reinsert_addr) (void);
56
 
57
 
58
  int decr_pc_after_break;
59
  int (*breakpoint_at) (CORE_ADDR pc);
60
};
61
 
62
extern struct linux_target_ops the_low_target;
63
 
64
#define get_process(inf) ((struct process_info *)(inf))
65
#define get_thread_process(thr) (get_process (inferior_target_data (thr)))
66
#define get_process_thread(proc) ((struct thread_info *) \
67
                                  find_inferior_id (&all_threads, \
68
                                  get_process (proc)->tid))
69
 
70
struct process_info
71
{
72
  struct inferior_list_entry head;
73
  int thread_known;
74
  int lwpid;
75
  int tid;
76
 
77
  /* If this flag is set, the next SIGSTOP will be ignored (the process will
78
     be immediately resumed).  */
79
  int stop_expected;
80
 
81
  /* If this flag is set, the process is known to be stopped right now (stop
82
     event already received in a wait()).  */
83
  int stopped;
84
 
85
  /* If this flag is set, we have sent a SIGSTOP to this process and are
86
     waiting for it to stop.  */
87
  int sigstop_sent;
88
 
89
  /* If this flag is set, STATUS_PENDING is a waitstatus that has not yet
90
     been reported.  */
91
  int status_pending_p;
92
  int status_pending;
93
 
94
  /* If this flag is set, the pending status is a (GDB-placed) breakpoint.  */
95
  int pending_is_breakpoint;
96
  CORE_ADDR pending_stop_pc;
97
 
98
  /* If this is non-zero, it is a breakpoint to be reinserted at our next
99
     stop (SIGTRAP stops only).  */
100
  CORE_ADDR bp_reinsert;
101
 
102
  /* If this flag is set, the last continue operation on this process
103
     was a single-step.  */
104
  int stepping;
105
 
106
  /* If this is non-zero, it points to a chain of signals which need to
107
     be delivered to this process.  */
108
  struct pending_signals *pending_signals;
109
};
110
extern struct inferior_list all_processes;
111
 
112
void linux_attach_lwp (int pid, int tid);
113
 
114
int thread_db_init (void);

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.