aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-08-17 21:25:56 +0200
committerHarald Welte <laforge@gnumonks.org>2018-08-17 21:26:49 +0200
commit137c4402d92b55cf2865250b41c4b9f7cbdcc297 (patch)
tree4765185951db4a5d77c53482d9097c8e4de1b026
parent371d026c6b57de141974a82aa66d57de63092992 (diff)
rspro_util: Add header file
-rw-r--r--src/Makefile.am2
-rw-r--r--src/rspro_util.c15
-rw-r--r--src/rspro_util.h29
3 files changed, 33 insertions, 13 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index f1731fa..06e4311 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -11,7 +11,7 @@ libosmo_rspro_la_LIBADD = $(OSMOCORE_LIBS) $(OSMOGSM_LIBS) $(OSMOABIS_LIBS) \
$(ASN1C_LIBS) rspro/libosmo-asn1-rspro.la
libosmo_rspro_la_SOURCES = rspro_util.c rspro_client.c
-noinst_HEADERS = bankd.h internal.h
+noinst_HEADERS = bankd.h internal.h rspro_util.h
bin_PROGRAMS = pcsc_test remsim-bankd
diff --git a/src/rspro_util.c b/src/rspro_util.c
index 9f8c3d5..1db5ceb 100644
--- a/src/rspro_util.c
+++ b/src/rspro_util.c
@@ -6,6 +6,8 @@
#include <osmocom/core/msgb.h>
#include <osmocom/rspro/RsproPDU.h>
+#include "rspro_util.h"
+
struct msgb *rspro_msgb_alloc(void)
{
return msgb_alloc_headroom(1024, 8, "RSPRO");
@@ -51,20 +53,9 @@ RsproPDU_t *rspro_dec_msg(struct msgb *msg)
return pdu;
}
-#define MAX_NAME_LEN 32
-struct app_comp_id {
- char name[MAX_NAME_LEN+1];
- char software[MAX_NAME_LEN+1];
- char sw_version[MAX_NAME_LEN+1];
- char hw_manufacturer[MAX_NAME_LEN+1];
- char hw_model[MAX_NAME_LEN+1];
- char hw_serial_nr[MAX_NAME_LEN+1];
- char hw_version[MAX_NAME_LEN+1];
- char fw_version[MAX_NAME_LEN+1];
-};
-
static void fill_comp_id(ComponentIdentity_t *out, const struct app_comp_id *in)
{
+ out->type = in->type;
OCTET_STRING_fromString(&out->name, in->name);
OCTET_STRING_fromString(&out->software, in->software);
OCTET_STRING_fromString(&out->swVersion, in->sw_version);
diff --git a/src/rspro_util.h b/src/rspro_util.h
new file mode 100644
index 0000000..87b2b97
--- /dev/null
+++ b/src/rspro_util.h
@@ -0,0 +1,29 @@
+#pragma once
+
+#include <osmocom/core/msgb.h>
+#include <osmocom/rspro/RsproPDU.h>
+#include <osmocom/rspro/ComponentType.h>
+
+#define MAX_NAME_LEN 32
+struct app_comp_id {
+ enum ComponentType type;
+ char name[MAX_NAME_LEN+1];
+ char software[MAX_NAME_LEN+1];
+ char sw_version[MAX_NAME_LEN+1];
+ char hw_manufacturer[MAX_NAME_LEN+1];
+ char hw_model[MAX_NAME_LEN+1];
+ char hw_serial_nr[MAX_NAME_LEN+1];
+ char hw_version[MAX_NAME_LEN+1];
+ char fw_version[MAX_NAME_LEN+1];
+};
+
+struct msgb *rspro_msgb_alloc(void);
+struct msgb *rspro_enc_msg(RsproPDU_t *pdu);
+RsproPDU_t *rspro_dec_msg(struct msgb *msg);
+RsproPDU_t *rspro_gen_ConnectBankReq(const struct app_comp_id *a_cid,
+ uint16_t bank_id, uint16_t num_slots);
+RsproPDU_t *rspro_gen_ConnectClientReq(const struct app_comp_id *a_cid);
+RsproPDU_t *rspro_gen_CreateMappingReq(const ClientSlot_t *client, const BankSlot_t *bank);
+RsproPDU_t *rspro_gen_ConfigClientReq(const ClientSlot_t *client, uint32_t ip, uint16_t port);
+RsproPDU_t *rspro_gen_SetAtrReq(uint16_t client_id, uint16_t slot_nr, const uint8_t *atr,
+ unsigned int atr_len);