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:
Harald Welte 2014-08-21 14:34:32 +02:00
parent d8db92c578
commit c78e74e3d0
2 changed files with 6 additions and 9 deletions

View File

@ -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);

View File

@ -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);