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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.3/] [gdb/] [gdbserver/] [server.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1181 sfurman
/* Common definitions for remote server for GDB.
2
   Copyright 1993, 1995, 1997, 1998, 1999, 2000, 2002
3
   Free Software Foundation, Inc.
4
 
5
   This file is part of GDB.
6
 
7
   This program is free software; you can redistribute it and/or modify
8
   it under the terms of the GNU General Public License as published by
9
   the Free Software Foundation; either version 2 of the License, or
10
   (at your option) any later version.
11
 
12
   This program is distributed in the hope that it will be useful,
13
   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
   GNU General Public License for more details.
16
 
17
   You should have received a copy of the GNU General Public License
18
   along with this program; if not, write to the Free Software
19
   Foundation, Inc., 59 Temple Place - Suite 330,
20
   Boston, MA 02111-1307, USA.  */
21
 
22
#ifndef SERVER_H
23
#define SERVER_H
24
 
25
#include "config.h"
26
 
27
#include <stdarg.h>
28
#include <stdio.h>
29
#include <stdlib.h>
30
#include <errno.h>
31
#include <setjmp.h>
32
 
33
#ifdef HAVE_STRING_H
34
#include <string.h>
35
#endif
36
 
37
#ifndef ATTR_NORETURN
38
#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7))
39
#define ATTR_NORETURN __attribute__ ((noreturn))
40
#else
41
#define ATTR_NORETURN           /* nothing */
42
#endif
43
#endif
44
 
45
#ifndef ATTR_FORMAT
46
#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 4))
47
#define ATTR_FORMAT(type, x, y) __attribute__ ((format(type, x, y)))
48
#else
49
#define ATTR_FORMAT(type, x, y) /* nothing */
50
#endif
51
#endif
52
 
53
/* FIXME: This should probably be autoconf'd for.  It's an integer type at
54
   least the size of a (void *).  */
55
typedef long long CORE_ADDR;
56
 
57
/* Generic information for tracking a list of ``inferiors'' - threads,
58
   processes, etc.  */
59
struct inferior_list
60
{
61
  struct inferior_list_entry *head;
62
  struct inferior_list_entry *tail;
63
};
64
struct inferior_list_entry
65
{
66
  int id;
67
  struct inferior_list_entry *next;
68
};
69
 
70
/* Opaque type for user-visible threads.  */
71
struct thread_info;
72
 
73
#include "regcache.h"
74
#include "gdb/signals.h"
75
 
76
#include "target.h"
77
#include "mem-break.h"
78
 
79
/* Target-specific functions */
80
 
81
void initialize_low ();
82
 
83
/* From inferiors.c.  */
84
 
85
extern struct inferior_list all_threads;
86
void add_inferior_to_list (struct inferior_list *list,
87
                           struct inferior_list_entry *new_inferior);
88
void for_each_inferior (struct inferior_list *list,
89
                        void (*action) (struct inferior_list_entry *));
90
extern struct thread_info *current_inferior;
91
void remove_inferior (struct inferior_list *list,
92
                      struct inferior_list_entry *entry);
93
void remove_thread (struct thread_info *thread);
94
void add_thread (int thread_id, void *target_data);
95
void clear_inferiors (void);
96
struct inferior_list_entry *find_inferior
97
     (struct inferior_list *,
98
      int (*func) (struct inferior_list_entry *,
99
                   void *),
100
      void *arg);
101
struct inferior_list_entry *find_inferior_id (struct inferior_list *list,
102
                                              int id);
103
void *inferior_target_data (struct thread_info *);
104
void set_inferior_target_data (struct thread_info *, void *);
105
void *inferior_regcache_data (struct thread_info *);
106
void set_inferior_regcache_data (struct thread_info *, void *);
107
void change_inferior_id (struct inferior_list *list,
108
                         int new_id);
109
 
110
/* Public variables in server.c */
111
 
112
extern int cont_thread;
113
extern int general_thread;
114
extern int step_thread;
115
extern int thread_from_wait;
116
extern int old_thread_from_wait;
117
extern int server_waiting;
118
 
119
extern jmp_buf toplevel;
120
 
121
/* Functions from remote-utils.c */
122
 
123
int putpkt (char *buf);
124
int getpkt (char *buf);
125
void remote_open (char *name);
126
void remote_close (void);
127
void write_ok (char *buf);
128
void write_enn (char *buf);
129
void enable_async_io (void);
130
void disable_async_io (void);
131
void convert_ascii_to_int (char *from, char *to, int n);
132
void convert_int_to_ascii (char *from, char *to, int n);
133
void new_thread_notify (int id);
134
void dead_thread_notify (int id);
135
void prepare_resume_reply (char *buf, char status, unsigned char sig);
136
 
137
void decode_m_packet (char *from, CORE_ADDR * mem_addr_ptr,
138
                      unsigned int *len_ptr);
139
void decode_M_packet (char *from, CORE_ADDR * mem_addr_ptr,
140
                      unsigned int *len_ptr, char *to);
141
 
142
int unhexify (char *bin, const char *hex, int count);
143
int hexify (char *hex, const char *bin, int count);
144
 
145
int look_up_one_symbol (const char *name, CORE_ADDR *addrp);
146
 
147
/* Functions from ``signals.c''.  */
148
enum target_signal target_signal_from_host (int hostsig);
149
int target_signal_to_host_p (enum target_signal oursig);
150
int target_signal_to_host (enum target_signal oursig);
151
 
152
/* Functions from utils.c */
153
 
154
void perror_with_name (char *string);
155
void error (const char *string,...) ATTR_NORETURN;
156
void fatal (const char *string,...) ATTR_NORETURN;
157
void warning (const char *string,...);
158
 
159
/* Functions from the register cache definition.  */
160
 
161
void init_registers (void);
162
 
163
/* Maximum number of bytes to read/write at once.  The value here
164
   is chosen to fill up a packet (the headers account for the 32).  */
165
#define MAXBUFBYTES(N) (((N)-32)/2)
166
 
167
/* Buffer sizes for transferring memory, registers, etc.  Round up PBUFSIZ to
168
   hold all the registers, at least.  */
169
#define PBUFSIZ ((registers_length () + 32 > 2000) \
170
                 ? (registers_length () + 32) \
171
                 : 2000)
172
 
173
#endif /* SERVER_H */

powered by: WebSVN 2.1.0

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