pespin submitted this change.

View Change

Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved
csn1: Use enum to select enc/dec direction

Ported from osmo-pcu.git Change-Id I845bcab61e354436bff1c3a0f2b6f49de9705716

Change-Id: I216d4d94f585dd4dcf9947324fdbdc786ab2b5c5
---
M include/osmocom/csn1/csn1.h
M src/csn1/csn1.c
M src/csn1/csn1_dec.c
M src/csn1/csn1_enc.c
M src/rlcmac/csn1_ts_24_008.c
M src/rlcmac/csn1_ts_44_060.c
6 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/include/osmocom/csn1/csn1.h b/include/osmocom/csn1/csn1.h
index a87f5a0..cb3ad13 100644
--- a/include/osmocom/csn1/csn1.h
+++ b/include/osmocom/csn1/csn1.h
@@ -52,7 +52,10 @@
#define CSNCBS_REVISION_LIMIT_STOP -20 /* Stop packing/unpacking - revision limit */
#define CSNCBS_NOT_SUPPORTED_IE -21 /* Handling of the unpacked IE is not supported by MS-software */

-
+enum CSN_Direction {
+ CSN_DIRECTION_ENC = 0,
+ CSN_DIRECTION_DEC = 1,
+};

#ifndef ElementsOf
#define ElementsOf(array) (sizeof(array) / sizeof(array[0]))
@@ -64,7 +67,7 @@
{
gint remaining_bits_len; /* IN to an csn stream operation */
gint bit_offset; /* IN/OUT to an csn stream operation */
- gint direction; /* 0 - decode; 1 - encode */
+ enum CSN_Direction direction; /* encode vs decode */
} csnStream_t;

typedef gint16 (*StreamSerializeFcn_t)(csnStream_t* ar, struct bitvec *vector, unsigned *readIndex, void* data);
diff --git a/src/csn1/csn1.c b/src/csn1/csn1.c
index f07c414..5eb35ea 100644
--- a/src/csn1/csn1.c
+++ b/src/csn1/csn1.c
@@ -72,7 +72,7 @@
{
ar->remaining_bits_len = remaining_bits_len;
ar->bit_offset = bit_offset;
- ar->direction = 0;
+ ar->direction = CSN_DIRECTION_ENC;
}

static const struct value_string csn1_error_names[] = {
diff --git a/src/csn1/csn1_dec.c b/src/csn1/csn1_dec.c
index 0fa09ad..c179f9b 100644
--- a/src/csn1/csn1_dec.c
+++ b/src/csn1/csn1_dec.c
@@ -483,7 +483,7 @@
remaining_bits_len -= length_len;

osmo_csn1_stream_init(&arT, bit_offset, length > 0 ? length : remaining_bits_len);
- arT.direction = 1;
+ arT.direction = CSN_DIRECTION_DEC;
LOGPC(DLCSN1, LOGL_DEBUG, "offset = %u | ", pDescr->offset);
Status = serialize(&arT, vector, readIndex, pvDATA(data, pDescr->offset));

diff --git a/src/csn1/csn1_enc.c b/src/csn1/csn1_enc.c
index 6405525..a07caf0 100644
--- a/src/csn1/csn1_enc.c
+++ b/src/csn1/csn1_enc.c
@@ -433,7 +433,7 @@
*writeIndex += length_len;
bit_offset += length_len;
remaining_bits_len -= length_len;
- arT.direction = 0;
+ arT.direction = CSN_DIRECTION_ENC;
osmo_csn1_stream_init(&arT, bit_offset, remaining_bits_len);
Status = serialize(&arT, vector, writeIndex, pvDATA(data, pDescr->offset));

diff --git a/src/rlcmac/csn1_ts_24_008.c b/src/rlcmac/csn1_ts_24_008.c
index d38185d..79deff3 100644
--- a/src/rlcmac/csn1_ts_24_008.c
+++ b/src/rlcmac/csn1_ts_24_008.c
@@ -281,7 +281,7 @@

static gint16 Content_Dissector(csnStream_t* ar, struct bitvec *vector, unsigned *readIndex, void* data)
{
- if (ar->direction == 0)
+ if (ar->direction == CSN_DIRECTION_ENC)
{
return osmo_csn1_stream_encode(ar, CSNDESCR(Content_t), vector, readIndex, data);
}
@@ -305,7 +305,7 @@

static gint16 Additional_access_technologies_Dissector(csnStream_t* ar, struct bitvec *vector, unsigned *readIndex, void* data)
{
- if (ar->direction == 0)
+ if (ar->direction == CSN_DIRECTION_ENC)
{
return osmo_csn1_stream_encode(ar, CSNDESCR(Additional_access_technologies_t), vector, readIndex, data);
}
diff --git a/src/rlcmac/csn1_ts_44_060.c b/src/rlcmac/csn1_ts_44_060.c
index e8c03df..e3270b7 100644
--- a/src/rlcmac/csn1_ts_44_060.c
+++ b/src/rlcmac/csn1_ts_44_060.c
@@ -183,7 +183,7 @@
/*< EGPRS Ack/Nack Description IE >*/
static gint16 Egprs_Ack_Nack_Desc_w_len_Dissector(csnStream_t* ar, struct bitvec *vector, unsigned *readIndex, void* data)
{
- if (ar->direction == 0)
+ if (ar->direction == CSN_DIRECTION_ENC)
{
return osmo_csn1_stream_encode(ar, CSNDESCR(EGPRS_AckNack_Desc_t), vector, readIndex, data);
}
@@ -394,7 +394,7 @@
#if 0
gint16 Receive_N_PDU_Number_list_Dissector(csnStream_t* ar, struct bitvec *vector, unsigned *readIndex, void* data)
{
- if (ar->direction == 0)
+ if (ar->direction == CSN_DIRECTION_ENC)
{
return osmo_csn1_stream_encode(ar, CSNDESCR(Receive_N_PDU_Number_t), vector, readIndex, data);
}

To view, visit change 39783. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: libosmo-gprs
Gerrit-Branch: master
Gerrit-Change-Id: I216d4d94f585dd4dcf9947324fdbdc786ab2b5c5
Gerrit-Change-Number: 39783
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>