]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/gdbserver/server.h
2002-02-14 Daniel Jacobowitz <drow@mvista.com>
[thirdparty/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"
26#include <stdarg.h>
27#include <stdio.h>
28#include <stdlib.h>
29#include <errno.h>
30
31
32/* FIXME: Both of these should be autoconf'd for. */
33#define NORETURN
34typedef long long CORE_ADDR;
35
36#include "regcache.h"
37
c906108c
SS
38#include <setjmp.h>
39
40/* Target-specific functions */
41
a14ed312
KB
42int create_inferior (char *program, char **allargs);
43void kill_inferior (void);
44void fetch_inferior_registers (int regno);
45void store_inferior_registers (int regno);
46int mythread_alive (int pid);
47void myresume (int step, int signo);
48unsigned char mywait (char *status);
49void read_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len);
50int write_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len);
c906108c 51int create_inferior ();
4ce44c66 52void initialize_low ();
c906108c
SS
53
54/* Target-specific variables */
55
5c44784c 56extern char *registers;
c906108c
SS
57
58/* Public variables in server.c */
59
60extern int cont_thread;
61extern int general_thread;
62extern int thread_from_wait;
63extern int old_thread_from_wait;
64
65extern jmp_buf toplevel;
66extern int inferior_pid;
67
68/* Functions from remote-utils.c */
69
a14ed312
KB
70int putpkt (char *buf);
71int getpkt (char *buf);
72void remote_open (char *name);
73void remote_close (void);
74void write_ok (char *buf);
75void write_enn (char *buf);
76void enable_async_io (void);
77void disable_async_io (void);
78void convert_ascii_to_int (char *from, char *to, int n);
79void convert_int_to_ascii (char *from, char *to, int n);
80void prepare_resume_reply (char *buf, char status, unsigned char sig);
c906108c 81
a14ed312
KB
82void decode_m_packet (char *from, CORE_ADDR * mem_addr_ptr,
83 unsigned int *len_ptr);
84void decode_M_packet (char *from, CORE_ADDR * mem_addr_ptr,
85 unsigned int *len_ptr, char *to);
c906108c
SS
86
87
88/* Functions from utils.c */
89
a14ed312 90void perror_with_name (char *string);
0a30fbc4
DJ
91void error (const char *string,...);
92void fatal (const char *string,...);
93void warning (const char *string,...);
94
5c44784c
JM
95
96
97/* Maximum number of bytes to read/write at once. The value here
98 is chosen to fill up a packet (the headers account for the 32). */
99#define MAXBUFBYTES(N) (((N)-32)/2)
100
101/* Buffer sizes for transferring memory, registers, etc. Round up PBUFSIZ to
102 hold all the registers, at least. */
0a30fbc4
DJ
103#define PBUFSIZ ((registers_length () + 32 > 2000) \
104 ? (registers_length () + 32) \
5c44784c 105 : 2000)
0a30fbc4
DJ
106
107#endif /* SERVER_H */