Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Apr 2005 22:26:45 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/libkern crc32.c src/sys/sys systm.h
Message-ID:  <200504272226.j3RMQjNe068620@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
marcel      2005-04-27 22:26:45 UTC

  FreeBSD src repository

  Modified files:
    sys/libkern          crc32.c 
    sys/sys              systm.h 
  Log:
  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 :-)
  
  Revision  Changes    Path
  1.4       +18 -15    src/sys/libkern/crc32.c
  1.233     +21 -1     src/sys/sys/systm.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200504272226.j3RMQjNe068620>