]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/event-loop.h
import gdb-1999-09-13 snapshot
[thirdparty/binutils-gdb.git] / gdb / event-loop.h
index 6076254d7cbfb426ee2570ba31e60bb748fe63dd..baebccd3b85941a045d2f14cecb4ac933c7cf660 100644 (file)
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <signal.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/wait.h>
-#include "defs.h"
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 /* An event loop listens for events from multiple event sources. When
    an event arrives, it is queued and processed by calling the
@@ -68,8 +60,7 @@
 typedef PTR gdb_client_data;
 typedef struct gdb_event gdb_event;
 
-typedef void (file_handler_func) PARAMS ((gdb_client_data, int mask));
-typedef void (async_handler_func) PARAMS ((gdb_client_data));
+typedef void (handler_func) PARAMS ((gdb_client_data));
 typedef void (event_handler_func) PARAMS ((int));
 
 /* Event for the GDB event system.  Events are queued by calling
@@ -99,7 +90,7 @@ typedef struct file_handler
     int mask;                  /* Events we want to monitor: POLLIN, etc. */
     int ready_mask;            /* Events that have been seen since
                                   the last time. */
-    file_handler_func *proc;   /* Procedure to call when fd is ready. */
+    handler_func *proc;                /* Procedure to call when fd is ready. */
     gdb_client_data client_data;       /* Argument to pass to proc. */
     struct file_handler *next_file;    /* Next registered file descriptor. */
   }
@@ -116,10 +107,10 @@ file_handler;
 
 typedef struct async_signal_handler
   {
-    int ready; /* If ready, call this handler from the main event loop, 
+    int ready;                 /* If ready, call this handler from the main event loop, 
                                   using invoke_async_handler. */
     struct async_signal_handler *next_handler; /* Ptr to next handler */
-    async_handler_func *proc;  /* Function to call to do the work */
+    handler_func *proc;                        /* Function to call to do the work */
     gdb_client_data client_data;       /* Argument to async_handler_func */
   }
 async_signal_handler;
@@ -132,7 +123,7 @@ typedef enum
     TAIL,
     /* Add at head of queue. It will be processed in last in first out
        order. */
-    HEAD       
+    HEAD
   }
 queue_position;
 
@@ -231,11 +222,41 @@ struct prompts
 #define PREFIX(X) the_prompts.prompt_stack[the_prompts.top + X].prefix
 #define SUFFIX(X) the_prompts.prompt_stack[the_prompts.top + X].suffix
 
+/* Exported functions from event-loop.c */
+
+extern void start_event_loop PARAMS ((void));
 extern void delete_file_handler PARAMS ((int));
-extern void 
-  create_file_handler PARAMS ((int, int, file_handler_func, gdb_client_data));
-extern int gdb_do_one_event PARAMS ((void));
+extern void add_file_handler PARAMS ((int, void (*) (void), gdb_client_data));
 extern void mark_async_signal_handler PARAMS ((async_signal_handler *));
-extern async_signal_handler *
-  create_async_signal_handler PARAMS ((async_handler_func *, gdb_client_data));
-
+extern async_signal_handler * 
+  create_async_signal_handler PARAMS ((handler_func *, gdb_client_data));
+extern void delete_async_signal_handler PARAMS ((async_signal_handler ** async_handler_ptr));
+extern gdb_event *create_file_event PARAMS ((int));
+
+/* Exported functions from event-top.c. 
+   FIXME: these should really go into top.h. */
+
+extern void display_gdb_prompt PARAMS ((char *));
+extern void async_init_signals PARAMS ((void));
+extern void set_async_editing_command PARAMS ((char *, int, struct cmd_list_element *));
+extern void set_async_annotation_level PARAMS ((char *, int, struct cmd_list_element *));
+extern void set_async_prompt PARAMS ((char *, int, struct cmd_list_element *));
+extern void handle_stop_sig PARAMS ((int));
+extern void handle_sigint PARAMS ((int));
+extern void pop_prompt PARAMS ((void));
+extern void push_prompt PARAMS ((char *, char *, char *));
+extern void gdb_readline2 PARAMS ((void));
+extern void mark_async_signal_handler_wrapper (void *);
+extern void async_request_quit (gdb_client_data);
+
+/* Exported variables from event-top.c.
+   FIXME: these should really go into top.h. */
+
+extern int async_command_editing_p;
+extern int exec_done_display_p;
+extern char *async_annotation_suffix;
+extern char *new_async_prompt;
+extern struct prompts the_prompts;
+extern void (*call_readline) PARAMS ((void));
+extern void (*input_handler) PARAMS ((char *));
+extern int input_fd;