mirror of https://gerrit.osmocom.org/libosmocore
gsm0480: code dup: introduce and use gsm0480_l3hdr_push()
Add function gsm0480_l3hdr_push() to push a struct gsm48_hdr to the start of a msgb. Use in gsm0480.c and gsm0411_utils.c. Further callers of the new function will follow in openbsc as well as another libosmocore patch for ussd. Change-Id: I54fce6053ab8362015686fe22dbcd38bf1366700
This commit is contained in:
parent
c3c28528de
commit
25774b9839
|
@ -35,3 +35,6 @@ struct msgb *gsm0480_create_notifySS(const char *text);
|
|||
|
||||
int gsm0480_wrap_invoke(struct msgb *msg, int op, int link_id);
|
||||
int gsm0480_wrap_facility(struct msgb *msg);
|
||||
|
||||
struct gsm48_hdr *gsm0480_l3hdr_push(struct msgb *msg, uint8_t proto_discr,
|
||||
uint8_t msg_type);
|
||||
|
|
|
@ -315,12 +315,7 @@ int gsm411_push_rp_header(struct msgb *msg, uint8_t rp_msg_type,
|
|||
int gsm411_push_cp_header(struct msgb *msg, uint8_t proto, uint8_t trans,
|
||||
uint8_t msg_type)
|
||||
{
|
||||
struct gsm48_hdr *gh;
|
||||
|
||||
gh = (struct gsm48_hdr *) msgb_push(msg, sizeof(*gh));
|
||||
/* Outgoing needs the highest bit set */
|
||||
gh->proto_discr = proto | (trans << 4);
|
||||
gh->msg_type = msg_type;
|
||||
|
||||
/* Outgoing proto_discr needs the highest bit set */
|
||||
gsm0480_l3hdr_push(msg, proto | (trans << 4), msg_type);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -486,7 +486,6 @@ static int parse_ss_for_bs_req(const uint8_t *ss_req_data,
|
|||
struct msgb *gsm0480_create_ussd_resp(uint8_t invoke_id, uint8_t trans_id, const char *text)
|
||||
{
|
||||
struct msgb *msg;
|
||||
struct gsm48_hdr *gh;
|
||||
uint8_t *ptr8;
|
||||
int response_len;
|
||||
|
||||
|
@ -525,10 +524,19 @@ struct msgb *gsm0480_create_ussd_resp(uint8_t invoke_id, uint8_t trans_id, const
|
|||
msgb_wrap_with_TL(msg, GSM0480_IE_FACILITY);
|
||||
|
||||
/* And finally pre-pend the L3 header */
|
||||
gh = (struct gsm48_hdr *) msgb_push(msg, sizeof(*gh));
|
||||
gh->proto_discr = GSM48_PDISC_NC_SS | trans_id
|
||||
| (1<<7); /* TI direction = 1 */
|
||||
gh->msg_type = GSM0480_MTYPE_RELEASE_COMPLETE;
|
||||
|
||||
gsm0480_l3hdr_push(msg,
|
||||
GSM48_PDISC_NC_SS | trans_id
|
||||
| (1<<7) /* TI direction = 1 */,
|
||||
GSM0480_MTYPE_RELEASE_COMPLETE);
|
||||
return msg;
|
||||
}
|
||||
|
||||
struct gsm48_hdr *gsm0480_l3hdr_push(struct msgb *msg, uint8_t proto_discr,
|
||||
uint8_t msg_type)
|
||||
{
|
||||
struct gsm48_hdr *gh;
|
||||
gh = (struct gsm48_hdr *) msgb_push(msg, sizeof(*gh));
|
||||
gh->proto_discr = proto_discr;
|
||||
gh->msg_type = msg_type;
|
||||
return gh;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue