server: add server_preinit which is called before config file is parsed.
[fw/openocd] / src / server / server.h
index abb501d4629cb1df59b4f41147d12db9b00f0d02..a25920ed0d6495f6a759b0ed7820aa52c618a5c8 100644 (file)
@@ -26,7 +26,7 @@
 #ifndef SERVER_H
 #define SERVER_H
 
-#include "log.h"
+#include <helper/log.h>
 
 #ifdef HAVE_NETINET_IN_H
 #include <netinet/in.h>
@@ -38,22 +38,22 @@ enum connection_type
        CONNECTION_PIPE
 };
 
-typedef struct connection_s
+struct connection
 {
        int fd;
        struct sockaddr_in sin;
-       command_context_t *cmd_ctx;
-       struct service_s *service;
+       struct command_context *cmd_ctx;
+       struct service *service;
        int input_pending;
        void *priv;
-       struct connection_s *next;
-} connection_t;
+       struct connection *next;
+};
 
-typedef int (*new_connection_handler_t)(connection_t *connection);
-typedef int (*input_handler_t)(connection_t *connection);
-typedef int (*connection_closed_handler_t)(connection_t *connection);
+typedef int (*new_connection_handler_t)(struct connection *connection);
+typedef int (*input_handler_t)(struct connection *connection);
+typedef int (*connection_closed_handler_t)(struct connection *connection);
 
-typedef struct service_s
+struct service
 {
        char *name;
        enum connection_type type;
@@ -61,25 +61,35 @@ typedef struct service_s
        int fd;
        struct sockaddr_in sin;
        int max_connections;
-       connection_t *connections;
+       struct connection *connections;
        new_connection_handler_t new_connection;
        input_handler_t input;
        connection_closed_handler_t connection_closed;
        void *priv;
-       struct service_s *next;
-} service_t;
+       struct service *next;
+};
 
 int add_service(char *name, enum connection_type type, unsigned short port,
                int max_connections, new_connection_handler_t new_connection_handler,
                input_handler_t in_handler, connection_closed_handler_t close_handler,
                void *priv);
 
-int server_init(void);
+int server_preinit(void);
+int server_init(struct command_context *cmd_ctx);
 int server_quit(void);
 
-int server_loop(command_context_t *command_context);
+int server_loop(struct command_context *command_context);
 
-int server_register_commands(command_context_t *context);
+int server_register_commands(struct command_context *context);
+
+/**
+ * Used by server_loop(), defined in server_stubs.c, httpd.c, or ecosboard.c
+ */
+void openocd_sleep_prelude(void);
+/**
+ * Used by server_loop(), defined in server_stubs.c, httpd.c, or ecosboard.c
+ */
+void openocd_sleep_postlude(void);
 
 /**
  * Defines an extended command handler function declaration to enable