]> git.sur5r.net Git - openocd/blobdiff - src/server/server.h
FLASH/NOR: Remove useless file avrf.h
[openocd] / src / server / server.h
index e632bf1e29b1405c9918c39c28831614bc41d925..2afd7125e363a6531bb405923ce78691d26b8448 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>
 enum connection_type
 {
        CONNECTION_TCP,
-       CONNECTION_PIPE
+       CONNECTION_PIPE,
+       CONNECTION_STDINOUT
 };
 
 struct connection
 {
        int fd;
+       int fd_out; /* When using pipes we're writing to a different fd */
        struct sockaddr_in sin;
        struct command_context *cmd_ctx;
        struct service *service;
@@ -57,7 +59,8 @@ struct service
 {
        char *name;
        enum connection_type type;
-       unsigned short port;
+       const char *port;
+       unsigned short portnumber;
        int fd;
        struct sockaddr_in sin;
        int max_connections;
@@ -69,11 +72,12 @@ struct service
        struct service *next;
 };
 
-int add_service(char *name, enum connection_type type, unsigned short port,
+int add_service(char *name, const char *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_preinit(void);
 int server_init(struct command_context *cmd_ctx);
 int server_quit(void);
 
@@ -81,12 +85,15 @@ int server_loop(struct command_context *command_context);
 
 int server_register_commands(struct command_context *context);
 
+int connection_write(struct connection *connection, const void *data, int len);
+int connection_read(struct connection *connection, void *data, int len);
+
 /**
- * Used by server_loop(), defined in server_stubs.c, httpd.c, or ecosboard.c
+ * Used by server_loop(), defined in server_stubs.c or ecosboard.c
  */
 void openocd_sleep_prelude(void);
 /**
- * Used by server_loop(), defined in server_stubs.c, httpd.c, or ecosboard.c
+ * Used by server_loop(), defined in server_stubs.c or ecosboard.c
  */
 void openocd_sleep_postlude(void);
 
@@ -96,13 +103,15 @@ void openocd_sleep_postlude(void);
  * Call server_port like a normal COMMAND_HANDLER with an extra @a out parameter
  * to receive the specified port number.
  */
+#define SERVER_PIPE_COMMAND() \
+               COMMAND_HELPER(server_pipe_command, const char **out)
+SERVER_PIPE_COMMAND();
+
 #define SERVER_PORT_COMMAND() \
                COMMAND_HELPER(server_port_command, unsigned short *out)
 
 SERVER_PORT_COMMAND();
 
-extern int server_use_pipes;
-
 #define ERROR_SERVER_REMOTE_CLOSED     (-400)
 #define ERROR_CONNECTION_REJECTED      (-401)