Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6] / lib / check_signature.c
1 #include <linux/io.h>
2 #include <linux/module.h>
3
4 /**
5  *      check_signature         -       find BIOS signatures
6  *      @io_addr: mmio address to check
7  *      @signature:  signature block
8  *      @length: length of signature
9  *
10  *      Perform a signature comparison with the mmio address io_addr. This
11  *      address should have been obtained by ioremap.
12  *      Returns 1 on a match.
13  */
14
15 int check_signature(const volatile void __iomem *io_addr,
16                         const unsigned char *signature, int length)
17 {
18         while (length--) {
19                 if (readb(io_addr) != *signature)
20                         return 0;
21                 io_addr++;
22                 signature++;
23         }
24         return 1;
25 }
26 EXPORT_SYMBOL(check_signature);