| Andrew Morton | cc2ea41 | 2007-07-15 23:41:38 -0700 | [diff] [blame] | 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); |