diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-05-11 14:28:25 +0200 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-11-24 16:58:30 +0100 |
commit | 402006dfdf84c3bf3b22a48ba6ef6922ff6991c7 (patch) | |
tree | a92ad1113e1d1e2220bdd5fbdf30a6414e7b9bb4 /openbsc/include | |
parent | c69ee8527c8ec88bdbff820d0a8aa706502516a5 (diff) |
define mncc_recv_cb_t to avoid code dup
Put mncc_recv_cb_t in common_cs.h to avoid header include complications: if placing
right above struct gsm_network, one must include gsm_data.h to use
mncc_recv_cb_t as function parameter in a header, which will include
gsm_data_shared.h, which will include common_cs.h (future knowledge). Since I will
need to use mncc_recv_cb_t in common_cs.h, including gsm_data.h from there would
introduce an #include loop. Avoid that and define mncc_recv_cb_t in common_cs.h to
begin with.
Change-Id: I2e64cffa563750ce9f3172ffba6f9cf5b9280e9c
Diffstat (limited to 'openbsc/include')
-rw-r--r-- | openbsc/include/openbsc/bss.h | 5 | ||||
-rw-r--r-- | openbsc/include/openbsc/common_cs.h | 5 | ||||
-rw-r--r-- | openbsc/include/openbsc/gsm_data.h | 5 |
3 files changed, 11 insertions, 4 deletions
diff --git a/openbsc/include/openbsc/bss.h b/openbsc/include/openbsc/bss.h index 49df547a1..d73776f03 100644 --- a/openbsc/include/openbsc/bss.h +++ b/openbsc/include/openbsc/bss.h @@ -1,11 +1,12 @@ #ifndef _BSS_H_ #define _BSS_H_ -struct gsm_network; +#include <openbsc/gsm_data.h> + struct msgb; /* start and stop network */ -extern int bsc_bootstrap_network(int (*mncc_recv)(struct gsm_network *, struct msgb *), const char *cfg_file); +extern int bsc_bootstrap_network(mncc_recv_cb_t mncc_recv, const char *cfg_file); extern int bsc_shutdown_net(struct gsm_network *net); /* register all supported BTS */ diff --git a/openbsc/include/openbsc/common_cs.h b/openbsc/include/openbsc/common_cs.h index 6f70f09be..612d754c9 100644 --- a/openbsc/include/openbsc/common_cs.h +++ b/openbsc/include/openbsc/common_cs.h @@ -1 +1,6 @@ #pragma once + +struct msgb; +struct gsm_network; + +typedef int (*mncc_recv_cb_t)(struct gsm_network *, struct msgb *); diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h index 70c08c326..fe3fa29e5 100644 --- a/openbsc/include/openbsc/gsm_data.h +++ b/openbsc/include/openbsc/gsm_data.h @@ -14,6 +14,7 @@ #include <osmocom/crypt/auth.h> #include <openbsc/rest_octets.h> +#include <openbsc/common_cs.h> /** annotations for msgb ownership */ #define __uses @@ -308,7 +309,7 @@ struct gsm_network { /* layer 4 */ struct mncc_sock_state *mncc_state; - int (*mncc_recv) (struct gsm_network *net, struct msgb *msg); + mncc_recv_cb_t mncc_recv; struct llist_head upqueue; struct llist_head trans_list; struct bsc_api *bsc_api; @@ -417,7 +418,7 @@ extern void talloc_ctx_init(void *ctx_root); struct gsm_network *gsm_network_init(void *ctx, uint16_t country_code, uint16_t network_code, - int (*mncc_recv)(struct gsm_network *, struct msgb *)); + mncc_recv_cb_t mncc_recv); int gsm_set_bts_type(struct gsm_bts *bts, enum gsm_bts_type type); |