summaryrefslogtreecommitdiffstats
path: root/sys/modules/hwpmc
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2005-04-27 22:26:45 +0000
committermarcel <marcel@FreeBSD.org>2005-04-27 22:26:45 +0000
commit6ac44cbe2b773476ffb6659ca468dde0f4604199 (patch)
tree561ffb753666f41dfb80e6d9182262888ede6ec8 /sys/modules/hwpmc
parent4caac8b9730f92775c41e5d0d46b932473c22b48 (diff)
downloadFreeBSD-src-6ac44cbe2b773476ffb6659ca468dde0f4604199.zip
FreeBSD-src-6ac44cbe2b773476ffb6659ca468dde0f4604199.tar.gz
Refactor the CRC-32 code to enhance its usability. Move the actual
CRC logic to a new function: crc32_raw() that obtains the initial CRC value as well as leaves any post-processing to the caller. As such, it can be used when the initial CRC value is not ~0U or when the final CRC value does need to be inverted (bitwise). It also means that crc32_raw() can be called repeatedly when the data is not available as a single block, such as for scatter/gather lists and the likes. Avoid the additional call overhead incured by the refactoring by moving the implementation off crc32() to sys/systm.h and making it inlinable. Since crc32_raw() is itself trivial and since it may be used in loops that iterate over fragments, having it available for inlining can be beneficial. Hence, move its implementation to sys/systm.h as well. Keep the original implementation of crc32() in libkern/crc32.c for documentation purposes (as a comment of course). Triggered by: Jose M Rodriguez (josemi at freebsd dot jazztel dot es) Discussed on: current@ Tested on: amd64, ia64 (BVO having GPT partitions) Jargon file candidate: BVO = By Virtue Of :-)
Diffstat (limited to 'sys/modules/hwpmc')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud