mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2024-11-14 13:44:49 +08:00
104 lines
3.1 KiB
C
104 lines
3.1 KiB
C
/* config.h
|
|
* Greg Cook, 23/Feb/2019
|
|
*/
|
|
|
|
/* CRC RevEng: arbitrary-precision CRC calculator and algorithm finder
|
|
* Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
|
|
* 2019 Gregory Cook
|
|
*
|
|
* This file is part of CRC RevEng.
|
|
*
|
|
* CRC RevEng is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* CRC RevEng 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 CRC RevEng. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef CONFIG_H
|
|
#define CONFIG_H 1
|
|
|
|
/*****************************************
|
|
* *
|
|
* Start of user configuration options *
|
|
* *
|
|
*****************************************/
|
|
|
|
/* A type to contain polynomial coefficient bitmaps.
|
|
* Can be changed to 'unsigned long long' for some extended compilers.
|
|
* Adjust BMP_C(), BMP_BIT and BMP_SUB below if this is changed.
|
|
*/
|
|
|
|
#define BMP_T unsigned long
|
|
|
|
/* Creates an appropriate numeric constant for bmp_t.
|
|
* If the underlying type is 'unsigned long long', change UL to ULL.
|
|
*/
|
|
|
|
#define BMP_C(n) (n##UL)
|
|
|
|
/* Define BMPMACRO to turn the definitions of the size of a bmp_t into
|
|
* compile-time constants. This improves efficiency but makes the code
|
|
* platform-specific.
|
|
*/
|
|
|
|
/* #define BMPMACRO 1 */
|
|
|
|
/* Some enterprise users may wish to disable the -F switch to minimise CPU
|
|
* usage. To do this, define the macro ALWPCK.
|
|
*/
|
|
|
|
/* #define ALWPCK 1 */
|
|
|
|
/* #define PRESETS 1
|
|
* Define PRESETS to compile CRC RevEng with the preset models from the
|
|
* CRC Catalogue. This implies BMPMACRO and so makes the code platform-
|
|
* specific.
|
|
*/
|
|
|
|
/* #define BMP_BIT 32
|
|
* Macros defining the size of a bmp_t.
|
|
* Their values only matter if PRESETS and/or BMPMACRO are defined, in
|
|
* which case edit the macros below to suit your architecture.
|
|
* Otherwise, BMP_BIT and BMP_SUB will be redefined as aliases of bmpbit
|
|
* and bmpsub, global objects initialised at run time.
|
|
*/
|
|
|
|
/* #define BMP_SUB 16
|
|
* The highest power of two that is strictly less than BMP_BIT.
|
|
* Initialises the index of a binary search for set bits in a bmp_t.
|
|
*/
|
|
|
|
|
|
#include <stdint.h>
|
|
#include <limits.h>
|
|
#if ULONG_MAX == UINT64_MAX
|
|
// most 64-bit platforms
|
|
#define PRESETS 1
|
|
#define BMP_BIT 64
|
|
#define BMP_SUB 32
|
|
|
|
#elif ULONG_MAX == UINT32_MAX
|
|
// 32-bit platforms and Mingw64
|
|
#define PRESETS 1
|
|
#define BMP_BIT 32
|
|
#define BMP_SUB 16
|
|
|
|
#else
|
|
#error Cannot determine automatically REVENG PRESETS Macros for your platform, you need to set them manually
|
|
#endif
|
|
|
|
/*****************************************
|
|
* *
|
|
* End of user configuration options *
|
|
* *
|
|
*****************************************/
|
|
|
|
#endif /* CONFIG_H */
|