Get rid of class GprsCodingScheme
We have same kind of object splitted into two layers, in coding_scheme
and gprs_coding_scheme. Let's merge them together and get rid of the
class, which is not really useful because it's only a set of functions
operating on one enum value.
This change also fixes gcc 10.1.0 error about memseting a complex type
in rlc.h init().
Change-Id: Ie9ce2144ba9e8dbba9704d4e0000a2929e3e41df
diff --git a/src/rlc.h b/src/rlc.h
index 109c5b3..707f305 100644
--- a/src/rlc.h
+++ b/src/rlc.h
@@ -19,7 +19,9 @@
*/
#pragma once
-#include "gprs_coding_scheme.h"
+extern "C" {
+#include "coding_scheme.h"
+}
#include <osmocom/core/endian.h>
@@ -154,7 +156,7 @@
};
struct gprs_rlc_data_info {
- GprsCodingScheme cs;
+ enum CodingScheme cs;
unsigned int r;
unsigned int si;
unsigned int tfi;
@@ -192,15 +194,15 @@
* 8.1.1.1 and Table 8.1.1.2
* For UL. cs_last shall be used everywhere.
*/
- GprsCodingScheme cs_current_trans;
- GprsCodingScheme cs_last;
+ enum CodingScheme cs_current_trans;
+ enum CodingScheme cs_last;
/*
* The MCS of initial transmission of a BSN
* This variable is used for split block
* processing in DL
*/
- GprsCodingScheme cs_init;
+ enum CodingScheme cs_init;
/* puncturing scheme value to be used for next transmission*/
enum egprs_puncturing_values next_ps;
@@ -212,21 +214,21 @@
uint8_t *prepare(struct gprs_rlc_data *rlc, size_t block_data_length);
void gprs_rlc_data_info_init_dl(struct gprs_rlc_data_info *rlc,
- GprsCodingScheme cs, bool with_padding, const unsigned int spb);
+ enum CodingScheme cs, bool with_padding, const unsigned int spb);
void gprs_rlc_data_info_init_ul(struct gprs_rlc_data_info *rlc,
- GprsCodingScheme cs, bool with_padding);
+ enum CodingScheme cs, bool with_padding);
void gprs_rlc_data_block_info_init(struct gprs_rlc_data_block_info *rdbi,
- GprsCodingScheme cs, bool with_padding, const unsigned int spb);
-unsigned int gprs_rlc_mcs_cps(GprsCodingScheme cs, enum egprs_puncturing_values
+ enum CodingScheme cs, bool with_padding, const unsigned int spb);
+unsigned int gprs_rlc_mcs_cps(enum CodingScheme cs, enum egprs_puncturing_values
punct, enum egprs_puncturing_values punct2, bool with_padding);
-void gprs_rlc_mcs_cps_decode(unsigned int cps, GprsCodingScheme cs,
+void gprs_rlc_mcs_cps_decode(unsigned int cps, enum CodingScheme cs,
int *punct, int *punct2, int *with_padding);
enum egprs_puncturing_values gprs_get_punct_scheme(enum egprs_puncturing_values
- punct, const GprsCodingScheme &cs,
- const GprsCodingScheme &cs_current_trans,
+ punct, const enum CodingScheme &cs,
+ const enum CodingScheme &cs_current_trans,
const enum egprs_rlcmac_dl_spb spb);
void gprs_update_punct_scheme(enum egprs_puncturing_values *punct,
- const GprsCodingScheme &cs);
+ const enum CodingScheme &cs);
/*
* I hold the currently transferred blocks and will provide
* the routines to manipulate these arrays.