* remote-utils.c (remote_open): Print a status notice after
[deliverable/binutils-gdb.git] / gdb / gdbserver / server.h
CommitLineData
c906108c 1/* Common definitions for remote server for GDB.
0a30fbc4 2 Copyright 1993, 1995, 1997, 1998, 1999, 2000, 2002
b6ba6518 3 Free Software Foundation, Inc.
c906108c 4
c5aa993b 5 This file is part of GDB.
c906108c 6
c5aa993b
JM
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.
c906108c 11
c5aa993b
JM
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.
c906108c 16
c5aa993b
JM
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. */
c906108c 21
0a30fbc4
DJ
22#ifndef SERVER_H
23#define SERVER_H
24
25#include "config.h"
0729219d 26
0a30fbc4
DJ
27#include <stdarg.h>
28#include <stdio.h>
29#include <stdlib.h>
30#include <errno.h>
0729219d 31#include <setjmp.h>
0a30fbc4 32
d64b8841
DJ
33#ifdef HAVE_STRING_H
34#include <string.h>
35#endif
36
43d5792c
DJ
37#ifdef NEED_DECLARATION_STRERROR
38#ifndef strerror
39extern char *strerror (int); /* X3.159-1989 4.11.6.2 */
40#endif
41#endif
42
0729219d
DJ
43#ifndef ATTR_NORETURN
44#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7))
45#define ATTR_NORETURN __attribute__ ((noreturn))
46#else
47#define ATTR_NORETURN /* nothing */
48#endif
49#endif
50
51#ifndef ATTR_FORMAT
52#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 4))
53#define ATTR_FORMAT(type, x, y) __attribute__ ((format(type, x, y)))
54#else
55#define ATTR_FORMAT(type, x, y) /* nothing */
56#endif
57#endif
58
59/* FIXME: This should probably be autoconf'd for. It's an integer type at
60 least the size of a (void *). */
0a30fbc4
DJ
61typedef long long CORE_ADDR;
62
0d62e5e8
DJ
63/* Generic information for tracking a list of ``inferiors'' - threads,
64 processes, etc. */
65struct inferior_list
66{
67 struct inferior_list_entry *head;
68 struct inferior_list_entry *tail;
69};
70struct inferior_list_entry
71{
72 int id;
73 struct inferior_list_entry *next;
74};
75
76/* Opaque type for user-visible threads. */
77struct thread_info;
c04a1aa8 78
0a30fbc4 79#include "regcache.h"
0e98d0a7 80#include "gdb/signals.h"
0a30fbc4 81
ce3a066d 82#include "target.h"
611cb4a5 83#include "mem-break.h"
c906108c
SS
84
85/* Target-specific functions */
86
4ce44c66 87void initialize_low ();
c906108c 88
ce3a066d
DJ
89/* From inferiors.c. */
90
0d62e5e8
DJ
91extern struct inferior_list all_threads;
92void add_inferior_to_list (struct inferior_list *list,
93 struct inferior_list_entry *new_inferior);
94void for_each_inferior (struct inferior_list *list,
95 void (*action) (struct inferior_list_entry *));
96extern struct thread_info *current_inferior;
97void remove_inferior (struct inferior_list *list,
98 struct inferior_list_entry *entry);
99void remove_thread (struct thread_info *thread);
100void add_thread (int thread_id, void *target_data);
ce3a066d 101void clear_inferiors (void);
0d62e5e8
DJ
102struct inferior_list_entry *find_inferior
103 (struct inferior_list *,
104 int (*func) (struct inferior_list_entry *,
105 void *),
106 void *arg);
107struct inferior_list_entry *find_inferior_id (struct inferior_list *list,
108 int id);
109void *inferior_target_data (struct thread_info *);
110void set_inferior_target_data (struct thread_info *, void *);
111void *inferior_regcache_data (struct thread_info *);
112void set_inferior_regcache_data (struct thread_info *, void *);
113void change_inferior_id (struct inferior_list *list,
114 int new_id);
ce3a066d 115
c906108c
SS
116/* Public variables in server.c */
117
118extern int cont_thread;
119extern int general_thread;
0d62e5e8 120extern int step_thread;
c906108c
SS
121extern int thread_from_wait;
122extern int old_thread_from_wait;
0d62e5e8 123extern int server_waiting;
c906108c
SS
124
125extern jmp_buf toplevel;
c906108c
SS
126
127/* Functions from remote-utils.c */
128
a14ed312
KB
129int putpkt (char *buf);
130int getpkt (char *buf);
131void remote_open (char *name);
132void remote_close (void);
133void write_ok (char *buf);
134void write_enn (char *buf);
135void enable_async_io (void);
136void disable_async_io (void);
137void convert_ascii_to_int (char *from, char *to, int n);
138void convert_int_to_ascii (char *from, char *to, int n);
0d62e5e8
DJ
139void new_thread_notify (int id);
140void dead_thread_notify (int id);
a14ed312 141void prepare_resume_reply (char *buf, char status, unsigned char sig);
c906108c 142
a14ed312
KB
143void decode_m_packet (char *from, CORE_ADDR * mem_addr_ptr,
144 unsigned int *len_ptr);
145void decode_M_packet (char *from, CORE_ADDR * mem_addr_ptr,
146 unsigned int *len_ptr, char *to);
c906108c 147
ce3a066d
DJ
148int unhexify (char *bin, const char *hex, int count);
149int hexify (char *hex, const char *bin, int count);
150
2f2893d9 151int look_up_one_symbol (const char *name, CORE_ADDR *addrp);
ce3a066d 152
0e98d0a7
DJ
153/* Functions from ``signals.c''. */
154enum target_signal target_signal_from_host (int hostsig);
155int target_signal_to_host_p (enum target_signal oursig);
156int target_signal_to_host (enum target_signal oursig);
c906108c
SS
157
158/* Functions from utils.c */
159
a14ed312 160void perror_with_name (char *string);
0729219d
DJ
161void error (const char *string,...) ATTR_NORETURN;
162void fatal (const char *string,...) ATTR_NORETURN;
0a30fbc4
DJ
163void warning (const char *string,...);
164
0729219d 165/* Functions from the register cache definition. */
5c44784c 166
0729219d 167void init_registers (void);
5c44784c
JM
168
169/* Maximum number of bytes to read/write at once. The value here
170 is chosen to fill up a packet (the headers account for the 32). */
171#define MAXBUFBYTES(N) (((N)-32)/2)
172
173/* Buffer sizes for transferring memory, registers, etc. Round up PBUFSIZ to
174 hold all the registers, at least. */
0a30fbc4
DJ
175#define PBUFSIZ ((registers_length () + 32 > 2000) \
176 ? (registers_length () + 32) \
5c44784c 177 : 2000)
0a30fbc4
DJ
178
179#endif /* SERVER_H */
This page took 0.319283 seconds and 4 git commands to generate.