blob: 9ab3b2a42d13be6e6cf036f6165848e697664793 [file] [log] [blame]
Alexander Huemer4376bcc2011-09-06 00:09:48 +02001#ifndef _CONTROL_IF_H
2#define _CONTROL_IF_H
3
4#include <osmocom/core/write_queue.h>
Harald Welte1238cc62014-08-20 19:50:04 +02005#include <osmocom/ctrl/control_cmd.h>
6
7/* FIXME: this must go */
8struct gsm_network;
Alexander Huemer4376bcc2011-09-06 00:09:48 +02009
Holger Hans Peter Freytherea62a382014-03-23 16:25:16 +010010typedef int (*ctrl_cmd_handler)(struct ctrl_cmd *, void *);
11
Daniel Willmann782974b2011-07-22 17:55:42 +020012struct ctrl_handle {
13 struct osmo_fd listen_fd;
14 struct gsm_network *gsmnet;
15
Holger Hans Peter Freytherea62a382014-03-23 16:25:16 +010016 ctrl_cmd_handler handler;
17
Daniel Willmann782974b2011-07-22 17:55:42 +020018 /* List of control connections */
19 struct llist_head ccon_list;
20};
21
Holger Hans Peter Freytherea62a382014-03-23 16:25:16 +010022
Alexander Huemer4376bcc2011-09-06 00:09:48 +020023int ctrl_cmd_send(struct osmo_wqueue *queue, struct ctrl_cmd *cmd);
Holger Hans Peter Freytherea62a382014-03-23 16:25:16 +010024struct ctrl_handle *controlif_setup(struct gsm_network *, uint16_t port,
25 ctrl_cmd_handler handler);
26struct ctrl_handle *bsc_controlif_setup(struct gsm_network *gsmnet, uint16_t port);
27
28int bsc_ctrl_cmd_handle(struct ctrl_cmd *cmd, void *data);
Alexander Huemer4376bcc2011-09-06 00:09:48 +020029
30#endif /* _CONTROL_IF_H */
31