mirror of https://gerrit.osmocom.org/libosmocore
libctrl: remove 'struct gsm_network' references
libctrl doesn't need any knowledge about the type of the user-private data that it gets passed upon setup time and includes on callbacks.
This commit is contained in:
parent
d8db92c578
commit
c78e74e3d0
|
@ -4,14 +4,11 @@
|
||||||
#include <osmocom/core/write_queue.h>
|
#include <osmocom/core/write_queue.h>
|
||||||
#include <osmocom/ctrl/control_cmd.h>
|
#include <osmocom/ctrl/control_cmd.h>
|
||||||
|
|
||||||
/* FIXME: this must go */
|
|
||||||
struct gsm_network;
|
|
||||||
|
|
||||||
typedef int (*ctrl_cmd_handler)(struct ctrl_cmd *, void *);
|
typedef int (*ctrl_cmd_handler)(struct ctrl_cmd *, void *);
|
||||||
|
|
||||||
struct ctrl_handle {
|
struct ctrl_handle {
|
||||||
struct osmo_fd listen_fd;
|
struct osmo_fd listen_fd;
|
||||||
struct gsm_network *gsmnet;
|
void *data;
|
||||||
|
|
||||||
ctrl_cmd_handler handler;
|
ctrl_cmd_handler handler;
|
||||||
|
|
||||||
|
@ -21,7 +18,7 @@ struct ctrl_handle {
|
||||||
|
|
||||||
|
|
||||||
int ctrl_cmd_send(struct osmo_wqueue *queue, struct ctrl_cmd *cmd);
|
int ctrl_cmd_send(struct osmo_wqueue *queue, struct ctrl_cmd *cmd);
|
||||||
struct ctrl_handle *controlif_setup(struct gsm_network *, uint16_t port,
|
struct ctrl_handle *controlif_setup(void *data, uint16_t port,
|
||||||
ctrl_cmd_handler handler);
|
ctrl_cmd_handler handler);
|
||||||
|
|
||||||
int bsc_ctrl_cmd_handle(struct ctrl_cmd *cmd, void *data);
|
int bsc_ctrl_cmd_handle(struct ctrl_cmd *cmd, void *data);
|
||||||
|
|
|
@ -167,7 +167,7 @@ static int handle_control_read(struct osmo_fd * bfd)
|
||||||
|
|
||||||
if (cmd) {
|
if (cmd) {
|
||||||
cmd->ccon = ccon;
|
cmd->ccon = ccon;
|
||||||
if (ctrl->handler(cmd, ctrl->gsmnet) != CTRL_CMD_HANDLED) {
|
if (ctrl->handler(cmd, ctrl->data) != CTRL_CMD_HANDLED) {
|
||||||
ctrl_cmd_send(queue, cmd);
|
ctrl_cmd_send(queue, cmd);
|
||||||
talloc_free(cmd);
|
talloc_free(cmd);
|
||||||
}
|
}
|
||||||
|
@ -522,19 +522,19 @@ static int verify_counter(struct ctrl_cmd *cmd, const char *value, void *data)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ctrl_handle *controlif_setup(struct gsm_network *gsmnet, uint16_t port,
|
struct ctrl_handle *controlif_setup(void *data, uint16_t port,
|
||||||
ctrl_cmd_handler handler)
|
ctrl_cmd_handler handler)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct ctrl_handle *ctrl;
|
struct ctrl_handle *ctrl;
|
||||||
|
|
||||||
ctrl = talloc_zero(gsmnet, struct ctrl_handle);
|
ctrl = talloc_zero(data, struct ctrl_handle);
|
||||||
if (!ctrl)
|
if (!ctrl)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
INIT_LLIST_HEAD(&ctrl->ccon_list);
|
INIT_LLIST_HEAD(&ctrl->ccon_list);
|
||||||
|
|
||||||
ctrl->gsmnet = gsmnet;
|
ctrl->data = data;
|
||||||
ctrl->handler = handler;
|
ctrl->handler = handler;
|
||||||
|
|
||||||
ctrl_node_vec = vector_init(5);
|
ctrl_node_vec = vector_init(5);
|
||||||
|
|
Loading…
Reference in New Issue