mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-08 15:33:33 +00:00
- Python static hello world now 1.8mb - Python static fully loaded now 10mb - Python HTTPS client now uses MbedTLS - Python REPL now completes import stmts - Increase stack size for Python for now - Begin synthesizing posixpath and ntpath - Restore Python \N{UNICODE NAME} support - Restore Python NFKD symbol normalization - Add optimized code path for Intel SHA-NI - Get more Python unit tests passing faster - Get Python help() pagination working on NT - Python hashlib now supports MbedTLS PBKDF2 - Make memcpy/memmove/memcmp/bcmp/etc. faster - Add Mersenne Twister and Vigna to LIBC_RAND - Provide privileged __printf() for error code - Fix zipos opendir() so that it reports ENOTDIR - Add basic chmod() implementation for Windows NT - Add Cosmo's best functions to Python cosmo module - Pin function trace indent depth to that of caller - Show memory diagram on invalid access in MODE=dbg - Differentiate stack overflow on crash in MODE=dbg - Add stb_truetype and tools for analyzing font files - Upgrade to UNICODE 13 and reduce its binary footprint - COMPILE.COM now logs resource usage of build commands - Start implementing basic poll() support on bare metal - Set getauxval(AT_EXECFN) to GetModuleFileName() on NT - Add descriptions to strerror() in non-TINY build modes - Add COUNTBRANCH() macro to help with micro-optimizations - Make error / backtrace / asan / memory code more unbreakable - Add fast perfect C implementation of μ-Law and a-Law audio codecs - Make strtol() functions consistent with other libc implementations - Improve Linenoise implementation (see also github.com/jart/bestline) - COMPILE.COM now suppresses stdout/stderr of successful build commands
45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
#ifndef __crc32_h
|
|
#define __crc32_h
|
|
#include "third_party/infozip/zip/zip.h"
|
|
/* clang-format off */
|
|
|
|
#ifndef OF
|
|
# define OF(a) a
|
|
#endif
|
|
#ifndef ZCONST
|
|
# define ZCONST const
|
|
#endif
|
|
|
|
#ifdef DYNALLOC_CRCTAB
|
|
void free_crc_table OF((void));
|
|
#endif
|
|
#ifndef USE_ZLIB
|
|
ZCONST ulg near *get_crc_table OF((void));
|
|
#endif
|
|
#if (defined(USE_ZLIB) || defined(CRC_TABLE_ONLY))
|
|
# ifdef IZ_CRC_BE_OPTIMIZ
|
|
# undef IZ_CRC_BE_OPTIMIZ
|
|
# endif
|
|
#else /* !(USE_ZLIB || CRC_TABLE_ONLY) */
|
|
ulg crc32 OF((ulg crc, ZCONST uch *buf, extent len));
|
|
#endif /* ?(USE_ZLIB || CRC_TABLE_ONLY) */
|
|
|
|
#ifndef CRC_32_TAB
|
|
# define CRC_32_TAB crc_32_tab
|
|
#endif
|
|
|
|
#ifdef CRC32
|
|
# undef CRC32
|
|
#endif
|
|
#ifdef IZ_CRC_BE_OPTIMIZ
|
|
# define CRC32UPD(c, crctab) (crctab[((c) >> 24)] ^ ((c) << 8))
|
|
# define CRC32(c, b, crctab) (crctab[(((int)(c) >> 24) ^ (b))] ^ ((c) << 8))
|
|
# define REV_BE(w) (((w)>>24)+(((w)>>8)&0xff00)+ \
|
|
(((w)&0xff00)<<8)+(((w)&0xff)<<24))
|
|
#else
|
|
# define CRC32UPD(c, crctab) (crctab[((int)(c)) & 0xff] ^ ((c) >> 8))
|
|
# define CRC32(c, b, crctab) (crctab[((int)(c) ^ (b)) & 0xff] ^ ((c) >> 8))
|
|
# define REV_BE(w) w
|
|
#endif
|
|
|
|
#endif /* !__crc32_h */
|