diff options
author | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2017-01-14 12:19:01 +0100 |
---|---|---|
committer | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2017-01-14 12:19:01 +0100 |
commit | c18011259423f5d1cea7dfa67093c888c4882c1e (patch) | |
tree | 9afdc7de2c7a4db305ca30aa2b6eb7891f96a528 /src | |
parent | 6a8f0d0a9aab073e2e79a06322e4f83e69409d05 (diff) | |
download | ouroboros-c18011259423f5d1cea7dfa67093c888c4882c1e.tar.gz ouroboros-c18011259423f5d1cea7dfa67093c888c4882c1e.zip |
lib: Move CRC32 implementation to library
The CRC32 implementation will be used to ID objects in the RIB.
Diffstat (limited to 'src')
-rw-r--r-- | src/ipcpd/normal/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/ipcpd/normal/crc32.h | 29 | ||||
-rw-r--r-- | src/ipcpd/normal/shm_pci.c | 2 | ||||
-rw-r--r-- | src/lib/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/lib/crc32.c (renamed from src/ipcpd/normal/crc32.c) | 30 |
5 files changed, 18 insertions, 45 deletions
diff --git a/src/ipcpd/normal/CMakeLists.txt b/src/ipcpd/normal/CMakeLists.txt index 157baa9e..bae2f69a 100644 --- a/src/ipcpd/normal/CMakeLists.txt +++ b/src/ipcpd/normal/CMakeLists.txt @@ -25,7 +25,6 @@ protobuf_generate_c(RO_SRCS RO_HDRS ro.proto) set(SOURCE_FILES # Add source files here addr_auth.c - crc32.c dir.c fmgr.c frct.c diff --git a/src/ipcpd/normal/crc32.h b/src/ipcpd/normal/crc32.h deleted file mode 100644 index 8580e553..00000000 --- a/src/ipcpd/normal/crc32.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Ouroboros - Copyright (C) 2016 - 2017 - * - * 32-bit Cyclic Redundancy Check - * - * Sander Vrijders <sander.vrijders@intec.ugent.be> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef OUROBOROS_IPCPD_NORMAL_CRC32_H -#define OUROBOROS_IPCPD_NORMAL_CRC32_H - -#include <stdint.h> - -void crc32(uint32_t * crc, const uint8_t * buf, size_t len); - -#endif /* OUROBOROS_IPCPD_NORMAL_CRC32_H */ diff --git a/src/ipcpd/normal/shm_pci.c b/src/ipcpd/normal/shm_pci.c index c648618a..4d66bf06 100644 --- a/src/ipcpd/normal/shm_pci.c +++ b/src/ipcpd/normal/shm_pci.c @@ -24,13 +24,13 @@ #include <ouroboros/logs.h> #include <ouroboros/errno.h> +#include <ouroboros/crc32.h> #include <stdlib.h> #include <string.h> #include "shm_pci.h" #include "frct.h" -#include "crc32.h" #include "ribmgr.h" #define PDU_TYPE_SIZE 1 diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 688cf6f5..44e34139 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -31,6 +31,7 @@ set(SOURCE_FILES cacep.c cdap.c cdap_req.c + crc32.c dev.c hashtable.c irm.c diff --git a/src/ipcpd/normal/crc32.c b/src/lib/crc32.c index 98c91fb8..8cafe5b5 100644 --- a/src/ipcpd/normal/crc32.c +++ b/src/lib/crc32.c @@ -5,23 +5,22 @@ * * Sander Vrijders <sander.vrijders@intec.ugent.be> * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301 USA */ -#include <stddef.h> - -#include "crc32.h" +#include <ouroboros/crc32.h> static const uint32_t crc32_table[256] = { 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, @@ -69,14 +68,17 @@ static const uint32_t crc32_table[256] = { 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d }; -void crc32(uint32_t * crc, const uint8_t * buf, size_t len) +void crc32(uint32_t * crc, + const void * buf, + size_t len) { size_t n; *crc = *crc ^ 0xffffffff; for (n = 0; n < len; n++) - *crc = crc32_table[(*crc ^ buf[n]) & 0xff] ^ (*crc >> 8); + *crc = crc32_table[(*crc ^ ((uint8_t *) buf)[n]) & 0xff] + ^ (*crc >> 8); *crc = *crc ^ 0xffffffff; } |