Skip to content

Commit 723bb2c

Browse files
committed
remove crc table.
1 parent 9af63e1 commit 723bb2c

File tree

2 files changed

+7
-54
lines changed

2 files changed

+7
-54
lines changed

netutils/cmux/cmux.c

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include <pthread.h>
3737
#include <sched.h>
3838
#include <pty.h>
39+
#include <nuttx/crc8.h>
3940

4041
#include "netutils/chat.h"
4142
#include "netutils/cmux.h"
@@ -64,10 +65,6 @@
6465
#define cmux_buffer_free(buf) \
6566
((buf->readp > buf->writep) ? (buf->readp - buf->writep) : (CMUX_BUFFER_SZ - (buf->writep - buf->readp)))
6667

67-
/* reversed, 8-bit, poly=0x07 */
68-
69-
static const unsigned char g_cmux_crc_table[256] = CMUX_CRC_TABLE;
70-
7168
struct cmux_ctl_s
7269
{
7370
int fd;
@@ -91,14 +88,7 @@ struct cmux_ctl_s
9188

9289
static unsigned char cmux_calulate_fcs(const unsigned char *input, int count)
9390
{
94-
unsigned char fcs = CMUX_FCS_MAX_VALUE;
95-
int i;
96-
for (i = 0; i < count; i++)
97-
{
98-
fcs = g_cmux_crc_table[fcs ^ input[i]];
99-
}
100-
101-
return (CMUX_FCS_MAX_VALUE - fcs);
91+
return crc8rohcpart(input, count, 0x00);
10292
}
10393

10494
/****************************************************************************
@@ -224,15 +214,15 @@ static int cmux_decode_frame(struct cmux_stream_buffer_s *cmux_buffer,
224214
data = cmux_buffer->readp;
225215
fcs = CMUX_FCS_MAX_VALUE;
226216
cmux_parse->address = ((*data & CMUX_ADDR_FIELD_CHECK) >> 2);
227-
fcs = g_cmux_crc_table[fcs ^ *data];
217+
fcs = crc8rohcincr(*data, fcs); //g_cmux_crc_table[fcs ^ *data];
228218
cmux_inc_buffer(cmux_buffer, data);
229219

230220
cmux_parse->control = *data;
231-
fcs = g_cmux_crc_table[fcs ^ *data];
221+
fcs = crc8rohcincr(*data, fcs);//g_cmux_crc_table[fcs ^ *data];
232222
cmux_inc_buffer(cmux_buffer, data);
233223

234224
cmux_parse->data_length = (*data & CMUX_LENGTH_FIELD_OPERATOR) >> 1;
235-
fcs = g_cmux_crc_table[fcs ^ *data];
225+
fcs = crc8rohcincr(*data, fcs);//g_cmux_crc_table[fcs ^ *data];
236226

237227
/* EA bit, should always have the value 1 */
238228

@@ -276,12 +266,12 @@ static int cmux_decode_frame(struct cmux_stream_buffer_s *cmux_buffer,
276266
int i;
277267
for (i = 0; i < cmux_parse->data_length; i++)
278268
{
279-
fcs = g_cmux_crc_table[fcs ^ (cmux_parse->data[i])];
269+
fcs = crc8rohcincr(cmux_parse->data[i], fcs);//g_cmux_crc_table[fcs ^ (cmux_parse->data[i])];
280270
}
281271
}
282272
}
283273

284-
if (g_cmux_crc_table[fcs ^ (*data)] != CMUX_FCS_OPERATOR)
274+
if (crc8rohcincr(*data, fcs) != CMUX_FCS_OPERATOR)
285275
{
286276
cmux_buffer->dropped_count++;
287277
cmux_buffer->readp = data;

netutils/cmux/cmux.h

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -201,43 +201,6 @@
201201

202202
#define CMUX_FCS_MAX_VALUE (0xFF)
203203
#define CMUX_FCS_OPERATOR (0xCF)
204-
205-
/* reversed, 8-bit, poly=0x07 */
206-
#define CMUX_CRC_TABLE { \
207-
0x00, 0x91, 0xE3, 0x72, 0x07, 0x96, 0xE4, 0x75, \
208-
0x0E, 0x9F, 0xED, 0x7C, 0x09, 0x98, 0xEA, 0x7B, \
209-
0x1C, 0x8D, 0xFF, 0x6E, 0x1B, 0x8A, 0xF8, 0x69, \
210-
0x12, 0x83, 0xF1, 0x60, 0x15, 0x84, 0xF6, 0x67, \
211-
0x38, 0xA9, 0xDB, 0x4A, 0x3F, 0xAE, 0xDC, 0x4D, \
212-
0x36, 0xA7, 0xD5, 0x44, 0x31, 0xA0, 0xD2, 0x43, \
213-
0x24, 0xB5, 0xC7, 0x56, 0x23, 0xB2, 0xC0, 0x51, \
214-
0x2A, 0xBB, 0xC9, 0x58, 0x2D, 0xBC, 0xCE, 0x5F, \
215-
0x70, 0xE1, 0x93, 0x02, 0x77, 0xE6, 0x94, 0x05, \
216-
0x7E, 0xEF, 0x9D, 0x0C, 0x79, 0xE8, 0x9A, 0x0B, \
217-
0x6C, 0xFD, 0x8F, 0x1E, 0x6B, 0xFA, 0x88, 0x19, \
218-
0x62, 0xF3, 0x81, 0x10, 0x65, 0xF4, 0x86, 0x17, \
219-
0x48, 0xD9, 0xAB, 0x3A, 0x4F, 0xDE, 0xAC, 0x3D, \
220-
0x46, 0xD7, 0xA5, 0x34, 0x41, 0xD0, 0xA2, 0x33, \
221-
0x54, 0xC5, 0xB7, 0x26, 0x53, 0xC2, 0xB0, 0x21, \
222-
0x5A, 0xCB, 0xB9, 0x28, 0x5D, 0xCC, 0xBE, 0x2F, \
223-
0xE0, 0x71, 0x03, 0x92, 0xE7, 0x76, 0x04, 0x95, \
224-
0xEE, 0x7F, 0x0D, 0x9C, 0xE9, 0x78, 0x0A, 0x9B, \
225-
0xFC, 0x6D, 0x1F, 0x8E, 0xFB, 0x6A, 0x18, 0x89, \
226-
0xF2, 0x63, 0x11, 0x80, 0xF5, 0x64, 0x16, 0x87, \
227-
0xD8, 0x49, 0x3B, 0xAA, 0xDF, 0x4E, 0x3C, 0xAD, \
228-
0xD6, 0x47, 0x35, 0xA4, 0xD1, 0x40, 0x32, 0xA3, \
229-
0xC4, 0x55, 0x27, 0xB6, 0xC3, 0x52, 0x20, 0xB1, \
230-
0xCA, 0x5B, 0x29, 0xB8, 0xCD, 0x5C, 0x2E, 0xBF, \
231-
0x90, 0x01, 0x73, 0xE2, 0x97, 0x06, 0x74, 0xE5, \
232-
0x9E, 0x0F, 0x7D, 0xEC, 0x99, 0x08, 0x7A, 0xEB, \
233-
0x8C, 0x1D, 0x6F, 0xFE, 0x8B, 0x1A, 0x68, 0xF9, \
234-
0x82, 0x13, 0x61, 0xF0, 0x85, 0x14, 0x66, 0xF7, \
235-
0xA8, 0x39, 0x4B, 0xDA, 0xAF, 0x3E, 0x4C, 0xDD, \
236-
0xA6, 0x37, 0x45, 0xD4, 0xA1, 0x30, 0x42, 0xD3, \
237-
0xB4, 0x25, 0x57, 0xC6, 0xB3, 0x22, 0x50, 0xC1, \
238-
0xBA, 0x2B, 0x59, 0xC8, 0xBD, 0x2C, 0x5E, 0xCF \
239-
}
240-
241204
struct cmux_parse_s
242205
{
243206
unsigned char address; /* Reserved to address filed */

0 commit comments

Comments
 (0)