From 956203ad8df7b68af83ae94f7793a028c74113ee Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Tue, 25 Nov 2008 11:11:49 +0530 Subject: Initial import of gsmsp-0.2a --- gsmsp/gsm/src/lib/cch.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 gsmsp/gsm/src/lib/cch.h (limited to 'gsmsp/gsm/src/lib/cch.h') diff --git a/gsmsp/gsm/src/lib/cch.h b/gsmsp/gsm/src/lib/cch.h new file mode 100644 index 0000000..e4429a0 --- /dev/null +++ b/gsmsp/gsm/src/lib/cch.h @@ -0,0 +1,41 @@ + +/* + * decode_cch + * + * Decode a "common" control channel. Most control channels use + * the same burst, interleave, Viterbi and parity configuration. + * The documentation for the control channels defines SACCH first + * and then just keeps referring to that. + * + * The current (investigated) list is as follows: + * + * BCCH Norm + * BCCH Ext + * PCH + * AGCH + * CBCH (SDCCH/4) + * CBCH (SDCCH/8) + * SDCCH/4 + * SACCH/C4 + * SDCCH/8 + * SACCH/C8 + * + * We provide two functions, one for where all four bursts are + * contiguous, and one where they aren't. + */ + +#define DATA_BLOCK_SIZE 184 +#define PARITY_SIZE 40 +#define FLUSH_BITS_SIZE 4 +#define PARITY_OUTPUT_SIZE (DATA_BLOCK_SIZE + PARITY_SIZE + FLUSH_BITS_SIZE) + +#define CONV_INPUT_SIZE PARITY_OUTPUT_SIZE +#define CONV_SIZE (2 * CONV_INPUT_SIZE) + +#define BLOCKS 4 +#define iBLOCK_SIZE (CONV_SIZE / BLOCKS) +#define eBLOCK_SIZE (iBLOCK_SIZE + 2) + +unsigned char *decode_cch(unsigned char *, unsigned char *, unsigned char *, + unsigned char *, unsigned int *); +unsigned char *decode_cch(unsigned char *, unsigned int *); -- cgit v1.2.3