88e04706108638ff0d85103139bcc23203cc6a2f
[sip-router] / sctp_core.h
1 /**
2  * $Id$
3  *
4  * Copyright (C) 2013 Daniel-Constantin Mierla (asipto.com)
5  *
6  * This file is part of Kamailio, a free SIP server.
7  *
8  * Permission to use, copy, modify, and distribute this software for any
9  * purpose with or without fee is hereby granted, provided that the above
10  * copyright notice and this permission notice appear in all copies.
11  *
12  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19  */
20
21 #ifndef __sctp_core_h__
22 #define __sctp_core_h__
23
24 #include "ip_addr.h"
25
26 int sctp_core_init(void);
27 typedef int (*sctp_srapi_init_f)(void);
28
29 void sctp_core_destroy(void);
30 typedef void (*sctp_srapi_destroy_f)(void);
31
32 int sctp_core_init_sock(struct socket_info* sock_info);
33 typedef int (*sctp_srapi_init_sock_f)(struct socket_info* sock_info);
34
35 void sctp_core_init_options(void);
36 typedef void (*sctp_srapi_init_options_f)(void);
37
38 int sctp_core_check_compiled_sockopts(char* buf, int size);
39 typedef int (*sctp_srapi_check_compiled_sockopts_f)(char* buf, int size);
40
41 int sctp_core_check_support(void);
42 typedef int (*sctp_srapi_check_support_f)(void);
43
44 int sctp_core_rcv_loop(void);
45 typedef int (*sctp_srapi_rcv_loop_f)(void);
46
47 int sctp_core_msg_send(struct dest_info* dst, char* buf, unsigned len);
48 typedef int (*sctp_srapi_msg_send_f)(struct dest_info* dst, char* buf,
49                 unsigned len);
50
51 typedef struct sctp_srapi {
52         sctp_srapi_init_f init;
53         sctp_srapi_destroy_f destroy;
54         sctp_srapi_init_sock_f init_sock;
55         sctp_srapi_check_support_f check_support;
56         sctp_srapi_rcv_loop_f rcv_loop;
57         sctp_srapi_msg_send_f msg_send;
58 } sctp_srapi_t;
59
60 int sctp_core_register_api(sctp_srapi_t *api);
61
62 #endif