blob: 2eb9b4c4447a6fa47fa246777af5a95dec005c53 [file] [log] [blame]
Neels Hofmeyre9920f22017-07-10 15:07:22 +02001#pragma once
2
Neels Hofmeyrd95ab1e2017-09-22 00:52:54 +02003#include <osmocom/core/write_queue.h>
4
Neels Hofmeyre9920f22017-07-10 15:07:22 +02005#define MSGB_CB_MGCP_TRANS_ID 0
6
Philipp Maier3f2c15f2021-07-22 11:53:07 +02007/* Struct that holds one endpoint name */
8struct reset_ep {
9 struct llist_head list;
10 char name[MGCP_ENDPOINT_MAXLEN];
11};
12
Neels Hofmeyr3a8e7232017-09-04 01:02:56 +020013struct mgcp_client {
14 struct mgcp_client_conf actual;
Neels Hofmeyre9920f22017-07-10 15:07:22 +020015 struct osmo_wqueue wq;
16 mgcp_trans_id_t next_trans_id;
17 struct llist_head responses_pending;
18 struct llist_head inuse_endpoints;
Pau Espin Pedrol35bd2522022-10-13 17:26:33 +020019 struct mgcp_client_pool_member *pool_member;
Neels Hofmeyre9920f22017-07-10 15:07:22 +020020};
21
22struct mgcp_inuse_endpoint {
23 struct llist_head entry;
24 uint16_t id;
25};
26
27struct mgcp_response_pending {
28 struct llist_head entry;
29
30 mgcp_trans_id_t trans_id;
31 mgcp_response_cb_t response_cb;
32 void *priv;
33};
34
Neels Hofmeyr3a8e7232017-09-04 01:02:56 +020035int mgcp_client_rx(struct mgcp_client *mgcp, struct msgb *msg);
Neels Hofmeyre9920f22017-07-10 15:07:22 +020036
Neels Hofmeyr3a8e7232017-09-04 01:02:56 +020037struct mgcp_response_pending * mgcp_client_pending_add(
38 struct mgcp_client *mgcp,
Neels Hofmeyre9920f22017-07-10 15:07:22 +020039 mgcp_trans_id_t trans_id,
40 mgcp_response_cb_t response_cb,
41 void *priv);