From ec48365dd86cceb7bfc5e1c9ba9a68b01600abf3 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Fri, 27 Aug 2010 16:02:49 +0000 Subject: [PATCH] * event-loop.c (event_handle_func): Adjust to use gdb_fildes_t. (struct gdb_event) : Change type to gdb_fildes_t. (struct file_handler) : Change type to gdb_fildes_t. (process_event): Change local fd's type to gdb_fildes_t. (create_file_handler): Adjust prototype. (delete_file_handler): Adjust prototype. (handle_file_event): Adjust prototype. Use pfildes. (create_file_event): Adjsut prototype. * remote-utils.c (remote_desc, listen_desc): Change type to gdb_fildes_t. * server.h: New gdb_fildes_t typedef. [USE_WIN32API]: Include winsock2.h. (delete_file_handler, add_file_handler): Adjust prototypes. (pfildes): Declare. * utils.c (pfildes): New. --- gdb/gdbserver/ChangeLog | 18 ++++++++++++++++++ gdb/gdbserver/event-loop.c | 23 ++++++++++++----------- gdb/gdbserver/remote-utils.c | 4 ++-- gdb/gdbserver/server.h | 12 ++++++++++-- gdb/gdbserver/utils.c | 12 ++++++++++++ 5 files changed, 54 insertions(+), 15 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 2bc42e7852..6ba13dd49d 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,21 @@ +2010-08-27 Pedro Alves + + * event-loop.c (event_handle_func): Adjust to use gdb_fildes_t. + (struct gdb_event) : Change type to gdb_fildes_t. + (struct file_handler) : Change type to gdb_fildes_t. + (process_event): Change local fd's type to gdb_fildes_t. + (create_file_handler): Adjust prototype. + (delete_file_handler): Adjust prototype. + (handle_file_event): Adjust prototype. Use pfildes. + (create_file_event): Adjsut prototype. + * remote-utils.c (remote_desc, listen_desc): Change type to + gdb_fildes_t. + * server.h: New gdb_fildes_t typedef. + [USE_WIN32API]: Include winsock2.h. + (delete_file_handler, add_file_handler): Adjust prototypes. + (pfildes): Declare. + * utils.c (pfildes): New. + 2010-08-27 Pedro Alves * configure.ac (build_warnings): Add -Wno-char-subscripts. diff --git a/gdb/gdbserver/event-loop.c b/gdb/gdbserver/event-loop.c index bc5c1f75a2..61b23ef36a 100644 --- a/gdb/gdbserver/event-loop.c +++ b/gdb/gdbserver/event-loop.c @@ -39,7 +39,7 @@ #endif typedef struct gdb_event gdb_event; -typedef int (event_handler_func) (int); +typedef int (event_handler_func) (gdb_fildes_t); /* Tell create_file_handler what events we are interested in. */ @@ -64,7 +64,7 @@ struct gdb_event event_handler_func *proc; /* File descriptor that is ready. */ - int fd; + gdb_fildes_t fd; /* Next in list of events or NULL. */ struct gdb_event *next_event; @@ -76,7 +76,7 @@ struct gdb_event typedef struct file_handler { /* File descriptor. */ - int fd; + gdb_fildes_t fd; /* Events we want to monitor. */ int mask; @@ -202,7 +202,7 @@ process_event (void) { gdb_event *event_ptr, *prev_ptr; event_handler_func *proc; - int fd; + gdb_fildes_t fd; /* Look in the event queue to find an event that is ready to be processed. */ @@ -332,7 +332,7 @@ process_callback (void) occurs for FD. CLIENT_DATA is the argument to pass to PROC. */ static void -create_file_handler (int fd, int mask, handler_func *proc, +create_file_handler (gdb_fildes_t fd, int mask, handler_func *proc, gdb_client_data client_data) { file_handler *file_ptr; @@ -382,7 +382,8 @@ create_file_handler (int fd, int mask, handler_func *proc, /* Wrapper function for create_file_handler. */ void -add_file_handler (int fd, handler_func *proc, gdb_client_data client_data) +add_file_handler (gdb_fildes_t fd, + handler_func *proc, gdb_client_data client_data) { create_file_handler (fd, GDB_READABLE | GDB_EXCEPTION, proc, client_data); } @@ -391,7 +392,7 @@ add_file_handler (int fd, handler_func *proc, gdb_client_data client_data) i.e. we don't care anymore about events on the FD. */ void -delete_file_handler (int fd) +delete_file_handler (gdb_fildes_t fd) { file_handler *file_ptr, *prev_ptr = NULL; int i; @@ -454,7 +455,7 @@ delete_file_handler (int fd) event in the front of the event queue. */ static int -handle_file_event (int event_file_desc) +handle_file_event (gdb_fildes_t event_file_desc) { file_handler *file_ptr; int mask; @@ -471,8 +472,8 @@ handle_file_event (int event_file_desc) if (file_ptr->ready_mask & GDB_EXCEPTION) { - fprintf (stderr, "Exception condition detected on fd %d\n", - file_ptr->fd); + fprintf (stderr, "Exception condition detected on fd %s\n", + pfildes (file_ptr->fd)); file_ptr->error = 1; } else @@ -502,7 +503,7 @@ handle_file_event (int event_file_desc) associated to FD when it was registered with the event loop. */ static gdb_event * -create_file_event (int fd) +create_file_event (gdb_fildes_t fd) { gdb_event *file_event_ptr; diff --git a/gdb/gdbserver/remote-utils.c b/gdb/gdbserver/remote-utils.c index 81cf9bcab0..385a0bc557 100644 --- a/gdb/gdbserver/remote-utils.c +++ b/gdb/gdbserver/remote-utils.c @@ -107,8 +107,8 @@ struct sym_cache int remote_debug = 0; struct ui_file *gdb_stdlog; -static int remote_desc = INVALID_DESCRIPTOR; -static int listen_desc = INVALID_DESCRIPTOR; +static gdb_fildes_t remote_desc = INVALID_DESCRIPTOR; +static gdb_fildes_t listen_desc = INVALID_DESCRIPTOR; /* FIXME headerize? */ extern int using_threads; diff --git a/gdb/gdbserver/server.h b/gdb/gdbserver/server.h index 51297c7acb..d612b0dbb2 100644 --- a/gdb/gdbserver/server.h +++ b/gdb/gdbserver/server.h @@ -334,13 +334,20 @@ extern int disable_packet_qfThreadInfo; extern int multi_process; extern int non_stop; +#if USE_WIN32API +#include +typedef SOCKET gdb_fildes_t; +#else +typedef int gdb_fildes_t; +#endif + /* Functions from event-loop.c. */ typedef void *gdb_client_data; typedef int (handler_func) (int, gdb_client_data); typedef int (callback_handler_func) (gdb_client_data); -extern void delete_file_handler (int fd); -extern void add_file_handler (int fd, handler_func *proc, +extern void delete_file_handler (gdb_fildes_t fd); +extern void add_file_handler (gdb_fildes_t fd, handler_func *proc, gdb_client_data client_data); extern int append_callback_event (callback_handler_func *proc, gdb_client_data client_data); @@ -473,6 +480,7 @@ char *paddress (CORE_ADDR addr); char *pulongest (ULONGEST u); char *plongest (LONGEST l); char *phex_nz (ULONGEST l, int sizeof_l); +char *pfildes (gdb_fildes_t fd); #define gdb_assert(expr) \ ((void) ((expr) ? 0 : \ diff --git a/gdb/gdbserver/utils.c b/gdb/gdbserver/utils.c index 8a1acd9fc7..4c047e0f5c 100644 --- a/gdb/gdbserver/utils.c +++ b/gdb/gdbserver/utils.c @@ -370,3 +370,15 @@ paddress (CORE_ADDR addr) { return phex_nz (addr, sizeof (CORE_ADDR)); } + +/* Convert a file descriptor into a printable string. */ + +char * +pfildes (gdb_fildes_t fd) +{ +#if USE_WIN32API + return phex_nz (fd, sizeof (gdb_fildes_t)); +#else + return plongest (fd); +#endif +} -- 2.34.1