| 
									
										
										
										
											2007-07-15 23:41:38 -07:00
										 |  |  | #include <linux/io.h>
 | 
					
						
							| 
									
										
										
										
											2011-11-16 21:29:17 -05:00
										 |  |  | #include <linux/export.h>
 | 
					
						
							| 
									
										
										
										
											2007-07-15 23:41:38 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  *	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); |