X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=libustcomm%2Fustcomm.h;h=0de4ad4610e411b492fff779e077ed9ada6f03df;hb=3a7b90de71f2a82f73f06fb14a7b77805aea1064;hp=ab475d9a64f059545faa3e91a9b3730c7b656299;hpb=b0540e11c3e9a3596b4b3865b0960d693fa66a88;p=ust.git diff --git a/libustcomm/ustcomm.h b/libustcomm/ustcomm.h index ab475d9..0de4ad4 100644 --- a/libustcomm/ustcomm.h +++ b/libustcomm/ustcomm.h @@ -2,23 +2,51 @@ #define USTCOMM_H #include +#include -struct ustcomm_app { - /* the "server" socket for serving the external requests */ +#include "kcompat.h" + +struct ustcomm_connection { + struct list_head list; int fd; +}; + +/* ustcomm_server must be shallow-copyable */ +struct ustcomm_server { + /* the "server" socket for serving the external requests */ + int listen_fd; char *socketpath; + + struct list_head connections; }; struct ustcomm_ustd { - /* the "server" socket for serving the external requests */ + struct ustcomm_server server; +}; + +struct ustcomm_app { + struct ustcomm_server server; +}; + +/* ustcomm_source must be shallow-copyable */ +struct ustcomm_source { int fd; - char *socketpath; + void *priv; }; +char *strdup_malloc(const char *s); + int send_message(pid_t pid, const char *msg, char **reply); +int ustcomm_ustd_recv_message(struct ustcomm_ustd *ustd, char **msg, struct ustcomm_source *src, int timeout); +int ustcomm_app_recv_message(struct ustcomm_app *app, char **msg, struct ustcomm_source *src, int timeout); + int ustcomm_init_app(pid_t pid, struct ustcomm_app *handle); int ustcomm_init_ustd(struct ustcomm_ustd *handle); +int nth_token_is(char *str, char *token, int tok_no); + +char *nth_token(char *str, int tok_no); + #endif /* USTCOMM_H */