diff options
author | Vladimir Prus <vladimir@codesourcery.com> | 2008-12-02 07:57:35 +0000 |
---|---|---|
committer | Vladimir Prus <vladimir@codesourcery.com> | 2008-12-02 07:57:35 +0000 |
commit | 56a56296304cc86e6857718812a6ff33598bddc7 (patch) | |
tree | 2bf37ebc1bc96c8f953f7bde1eb832afa7f985f1 /gdb/gdbserver/server.h | |
parent | dc697606cc3491699f1cb75bcf3f454b2314fa75 (diff) | |
download | gdb-56a56296304cc86e6857718812a6ff33598bddc7.tar.gz |
Implement -list-thread-groups --available
* Makefile.in (XMLFILES): Add osdata.dtd.
(SFILES): Add osdata.c.
(COMMON_OBS): Add osdata.o.
* linux-nat.c: Include pwd.h, sys/types.h, gdb_dirent.h and xml-support.h.
(linux_nat_xfer_osdata): New function.
(linux_xfer_partial): Handle TARGET_OBJECT_OSDATA.
* osdata.c: New file.
* osdata.h: New file.
* remote.c (PACKET_qXfer_osdata): New packet enum.
(remote_protocol_features): Add "qXfer:osdata:read".
(remote_read_qxfer): Handle TARGET_OBJECT_OSDATA.
(extended_remote_can_run): New.
(init_extended_remote_ops): Set to_can_run to
extended_remote_can_run.
(_initialize_remote): Add packet config command for
"qXfer:osdata:read".
* xml-support.c (obstack_xml_printf): New function.
* xml-support.h (obstack_xml_printf): Declare.
* target.c (target_get_osdata): New function.
* target.h (enum target_object): Add TARGET_OBJECT_OSDATA.
(target_os_data): Declare.
* features/osdata.dtd: New file.
* mi/mi-main.c (mi_list_thread_groups): Handle the --available
option.
Diffstat (limited to 'gdb/gdbserver/server.h')
-rw-r--r-- | gdb/gdbserver/server.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gdb/gdbserver/server.h b/gdb/gdbserver/server.h index 817b5c47ef9..ca5530dea09 100644 --- a/gdb/gdbserver/server.h +++ b/gdb/gdbserver/server.h @@ -223,6 +223,40 @@ void monitor_output (const char *msg); char *xml_escape_text (const char *text); +/* Simple growing buffer. */ + +struct buffer +{ + char *buffer; + size_t buffer_size; /* allocated size */ + size_t used_size; /* actually used size */ +}; + +/* Append DATA of size SIZE to the end of BUFFER. Grows the buffer to + accommodate the new data. */ +void buffer_grow (struct buffer *buffer, const char *data, size_t size); + +/* Release any memory held by BUFFER. */ +void buffer_free (struct buffer *buffer); + +/* Initialize BUFFER. BUFFER holds no memory afterwards. */ +void buffer_init (struct buffer *buffer); + +/* Return a pointer into BUFFER data, effectivelly transfering + ownership of the buffer memory to the caller. Calling buffer_free + afterwards has no effect on the returned data. */ +char* buffer_finish (struct buffer *buffer); + +/* Simple printf to BUFFER function. Current implemented formatters: + %s - grow an xml escaped text in OBSTACK. */ +void buffer_xml_printf (struct buffer *buffer, const char *format, ...) + ATTR_FORMAT (printf, 2, 3);; + +#define buffer_grow_str(BUFFER,STRING) \ + buffer_grow (BUFFER, STRING, strlen (STRING)) +#define buffer_grow_str0(BUFFER,STRING) \ + buffer_grow (BUFFER, STRING, strlen (STRING) + 1) + /* Functions from ``signals.c''. */ enum target_signal target_signal_from_host (int hostsig); int target_signal_to_host_p (enum target_signal oursig); |