aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/netif/datagram.h
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@gnumonks.org>2011-10-05 12:28:21 +0200
committerPablo Neira Ayuso <pablo@gnumonks.org>2011-10-05 13:43:10 +0200
commitddb9bf65f497ac0c4879b5114e887383f47e5686 (patch)
tree5676ec1fbf2d2929f9e0821b0412ec0b20a366f1 /include/osmocom/netif/datagram.h
parent8bf16493f68fd53c6e14f1612caf7425c73b2f4d (diff)
add generic datagram socket infrastructure and examples
This patch adds new datagram socket infrastructure and it reworks the previous examples (now it's LAPD over datagram).
Diffstat (limited to 'include/osmocom/netif/datagram.h')
-rw-r--r--include/osmocom/netif/datagram.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/include/osmocom/netif/datagram.h b/include/osmocom/netif/datagram.h
new file mode 100644
index 0000000..abda79b
--- /dev/null
+++ b/include/osmocom/netif/datagram.h
@@ -0,0 +1,47 @@
+#ifndef _OSMO_DGRAM_H_
+#define _OSMO_DGRAM_H_
+
+struct datagram_client_conn;
+
+struct datagram_client_conn *datagram_client_conn_create(void *ctx);
+void datagram_client_conn_destroy(struct datagram_client_conn *conn);
+
+void datagram_client_conn_set_addr(struct datagram_client_conn *conn, const char *addr);
+void datagram_client_conn_set_port(struct datagram_client_conn *conn, uint16_t port);
+void datagram_client_conn_set_data(struct datagram_client_conn *conn, void *data);
+
+int datagram_client_conn_open(struct datagram_client_conn *conn);
+void datagram_client_conn_close(struct datagram_client_conn *conn);
+
+void datagram_client_conn_send(struct datagram_client_conn *conn, struct msgb *msg);
+
+struct datagram_server_conn;
+
+struct datagram_server_conn *datagram_server_conn_create(void *ctx);
+
+void datagram_server_conn_set_addr(struct datagram_server_conn *conn, const char *addr);
+void datagram_server_conn_set_port(struct datagram_server_conn *conn, uint16_t port);
+void datagram_server_conn_set_read_cb(struct datagram_server_conn *conn, int (*read_cb)(struct datagram_server_conn *conn, struct msgb *msg));
+void datagram_server_conn_destroy(struct datagram_server_conn *conn);
+
+int datagram_server_conn_open(struct datagram_server_conn *conn);
+void datagram_server_conn_close(struct datagram_server_conn *conn);
+
+struct datagram_conn;
+
+struct datagram_conn *datagram_conn_create(void *ctx);
+void datagram_conn_destroy(struct datagram_conn *conn);
+
+int datagram_conn_open(struct datagram_conn *conn);
+void datagram_conn_close(struct datagram_conn *conn);
+
+void datagram_conn_set_local_addr(struct datagram_conn *conn, const char *addr);
+void datagram_conn_set_remote_addr(struct datagram_conn *conn, const char *addr);
+void datagram_conn_set_local_port(struct datagram_conn *conn, uint16_t port);
+void datagram_conn_set_remote_port(struct datagram_conn *conn, uint16_t port);
+void datagram_conn_set_read_cb(struct datagram_conn *conn, int (*read_cb)(struct datagram_server_conn *conn, struct msgb *msg));
+void datagram_conn_set_data(struct datagram_client_conn *conn, void *data);
+
+void datagram_conn_send(struct datagram_conn *conn, struct msgb *msg);
+
+#endif