diff options
author | Randy Dunlap <rdunlap@xenotime.net> | 2006-05-21 23:57:42 -0400 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-06-30 16:09:10 -0400 |
commit | d29693bf10f376870d9bfd34bde80dd061cc4575 (patch) | |
tree | 03979ead72d5d7813ca26789aa8c3c22752343d1 | |
parent | fec21889cd6ef5e604b410c08b50a8c1522d74d4 (diff) |
[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>
-rw-r--r-- | Documentation/pcmcia/crc32hash.c | 32 | ||||
-rw-r--r-- | Documentation/pcmcia/devicetable.txt | 36 |
2 files changed, 35 insertions, 33 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 @@ | |||
1 | /* crc32hash.c - derived from linux/lib/crc32.c, GNU GPL v2 */ | ||
2 | /* Usage example: | ||
3 | $ ./crc32hash "Dual Speed" | ||
4 | */ | ||
5 | |||
6 | #include <string.h> | ||
7 | #include <stdio.h> | ||
8 | #include <ctype.h> | ||
9 | #include <stdlib.h> | ||
10 | |||
11 | unsigned int crc32(unsigned char const *p, unsigned int len) | ||
12 | { | ||
13 | int i; | ||
14 | unsigned int crc = 0; | ||
15 | while (len--) { | ||
16 | crc ^= *p++; | ||
17 | for (i = 0; i < 8; i++) | ||
18 | crc = (crc >> 1) ^ ((crc & 1) ? 0xedb88320 : 0); | ||
19 | } | ||
20 | return crc; | ||
21 | } | ||
22 | |||
23 | int main(int argc, char **argv) { | ||
24 | unsigned int result; | ||
25 | if (argc != 2) { | ||
26 | printf("no string passed as argument\n"); | ||
27 | return -1; | ||
28 | } | ||
29 | result = crc32(argv[1], strlen(argv[1])); | ||
30 | printf("0x%x\n", result); | ||
31 | return 0; | ||
32 | } | ||
diff --git a/Documentation/pcmcia/devicetable.txt b/Documentation/pcmcia/devicetable.txt index 3351c0355143..199afd100cf2 100644 --- a/Documentation/pcmcia/devicetable.txt +++ b/Documentation/pcmcia/devicetable.txt | |||
@@ -27,37 +27,7 @@ pcmcia:m0149cC1ABf06pfn00fn00pa725B842DpbF1EFEE84pc0877B627pd00000000 | |||
27 | The hex value after "pa" is the hash of product ID string 1, after "pb" for | 27 | The hex value after "pa" is the hash of product ID string 1, after "pb" for |
28 | string 2 and so on. | 28 | string 2 and so on. |
29 | 29 | ||
30 | Alternatively, you can use this small tool to determine the crc32 hash. | 30 | Alternatively, you can use crc32hash (see Documentation/pcmcia/crc32hash.c) |
31 | simply pass the string you want to evaluate as argument to this program, | 31 | to determine the crc32 hash. Simply pass the string you want to evaluate |
32 | e.g. | 32 | as argument to this program, e.g.: |
33 | $ ./crc32hash "Dual Speed" | 33 | $ ./crc32hash "Dual Speed" |
34 | |||
35 | ------------------------------------------------------------------------- | ||
36 | /* crc32hash.c - derived from linux/lib/crc32.c, GNU GPL v2 */ | ||
37 | #include <string.h> | ||
38 | #include <stdio.h> | ||
39 | #include <ctype.h> | ||
40 | #include <stdlib.h> | ||
41 | |||
42 | unsigned int crc32(unsigned char const *p, unsigned int len) | ||
43 | { | ||
44 | int i; | ||
45 | unsigned int crc = 0; | ||
46 | while (len--) { | ||
47 | crc ^= *p++; | ||
48 | for (i = 0; i < 8; i++) | ||
49 | crc = (crc >> 1) ^ ((crc & 1) ? 0xedb88320 : 0); | ||
50 | } | ||
51 | return crc; | ||
52 | } | ||
53 | |||
54 | int main(int argc, char **argv) { | ||
55 | unsigned int result; | ||
56 | if (argc != 2) { | ||
57 | printf("no string passed as argument\n"); | ||
58 | return -1; | ||
59 | } | ||
60 | result = crc32(argv[1], strlen(argv[1])); | ||
61 | printf("0x%x\n", result); | ||
62 | return 0; | ||
63 | } | ||