27 lines
		
	
	
		
			599 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			599 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include <linux/io.h>
 | 
						|
#include <linux/module.h>
 | 
						|
 | 
						|
/**
 | 
						|
 *	check_signature		-	find BIOS signatures
 | 
						|
 *	@io_addr: mmio address to check
 | 
						|
 *	@signature:  signature block
 | 
						|
 *	@length: length of signature
 | 
						|
 *
 | 
						|
 *	Perform a signature comparison with the mmio address io_addr. This
 | 
						|
 *	address should have been obtained by ioremap.
 | 
						|
 *	Returns 1 on a match.
 | 
						|
 */
 | 
						|
 | 
						|
int check_signature(const volatile void __iomem *io_addr,
 | 
						|
			const unsigned char *signature, int length)
 | 
						|
{
 | 
						|
	while (length--) {
 | 
						|
		if (readb(io_addr) != *signature)
 | 
						|
			return 0;
 | 
						|
		io_addr++;
 | 
						|
		signature++;
 | 
						|
	}
 | 
						|
	return 1;
 | 
						|
}
 | 
						|
EXPORT_SYMBOL(check_signature);
 |