blob: d103332a951a9336a8c843c70faf432959d4c565 [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>
5#include <openbsc/control_cmd.h>
6#include <openbsc/gsm_data.h>
7
Holger Hans Peter Freytherea62a382014-03-23 16:25:16 +01008typedef int (*ctrl_cmd_handler)(struct ctrl_cmd *, void *);
9
Daniel Willmann782974b2011-07-22 17:55:42 +020010struct ctrl_handle {
11 struct osmo_fd listen_fd;
12 struct gsm_network *gsmnet;
13
Holger Hans Peter Freytherea62a382014-03-23 16:25:16 +010014 ctrl_cmd_handler handler;
15
Daniel Willmann782974b2011-07-22 17:55:42 +020016 /* List of control connections */
17 struct llist_head ccon_list;
18};
19
Holger Hans Peter Freytherea62a382014-03-23 16:25:16 +010020
Alexander Huemer4376bcc2011-09-06 00:09:48 +020021int ctrl_cmd_send(struct osmo_wqueue *queue, struct ctrl_cmd *cmd);
Holger Hans Peter Freytherea62a382014-03-23 16:25:16 +010022struct ctrl_handle *controlif_setup(struct gsm_network *, uint16_t port,
23 ctrl_cmd_handler handler);
24struct ctrl_handle *bsc_controlif_setup(struct gsm_network *gsmnet, uint16_t port);
25
26int bsc_ctrl_cmd_handle(struct ctrl_cmd *cmd, void *data);
Alexander Huemer4376bcc2011-09-06 00:09:48 +020027
28#endif /* _CONTROL_IF_H */
29