aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/pcmcia/crc32hash.c
diff options
context:
space:
mode:
authorRandy Dunlap <rdunlap@xenotime.net>2006-05-21 20:57:42 -0700
committerDominik Brodowski <linux@dominikbrodowski.net>2006-06-30 22:09:10 +0200
commitd29693bf10f376870d9bfd34bde80dd061cc4575 (patch)
tree03979ead72d5d7813ca26789aa8c3c22752343d1 /Documentation/pcmcia/crc32hash.c
parent[PATCH] pcmcia: another ID for serial_cs.c (diff)
downloadlinux-dev-d29693bf10f376870d9bfd34bde80dd061cc4575.tar.xz
linux-dev-d29693bf10f376870d9bfd34bde80dd061cc4575.zip
[PATCH] pcmcia: expose tool in pcmcia/Documentation/pcmcia/
Expose example and tool source files in the Documentation/ directory in their own files instead of being buried (almost hidden) in readme/txt files. This will make them more visible/usable to users who may need to use them, to developers who may need to test with them, and to janitors who would update them if they were more visible. Also, if any of these possibly should not be in the kernel tree at all, it will be clearer that they are here and we can discuss if they should be removed. Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'Documentation/pcmcia/crc32hash.c')
-rw-r--r--Documentation/pcmcia/crc32hash.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/Documentation/pcmcia/crc32hash.c b/Documentation/pcmcia/crc32hash.c
new file mode 100644
index 000000000000..cbc36d299af8
--- /dev/null
+++ b/Documentation/pcmcia/crc32hash.c
@@ -0,0 +1,32 @@
+/* crc32hash.c - derived from linux/lib/crc32.c, GNU GPL v2 */
+/* Usage example:
+$ ./crc32hash "Dual Speed"
+*/
+
+#include <string.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <stdlib.h>
+
+unsigned int crc32(unsigned char const *p, unsigned int len)
+{
+ int i;
+ unsigned int crc = 0;
+ while (len--) {
+ crc ^= *p++;
+ for (i = 0; i < 8; i++)
+ crc = (crc >> 1) ^ ((crc & 1) ? 0xedb88320 : 0);
+ }
+ return crc;
+}
+
+int main(int argc, char **argv) {
+ unsigned int result;
+ if (argc != 2) {
+ printf("no string passed as argument\n");
+ return -1;
+ }
+ result = crc32(argv[1], strlen(argv[1]));
+ printf("0x%x\n", result);
+ return 0;
+}