1 #include "EXTERN.h"
2 #include "perl.h"
3 #include "XSUB.h"
4 
5 // $VERSION = sprintf( "%s", q{$Id: Elf.xs,v 1.4 2002/05/15 23:08:19 steve Exp $} =~ /(\d+\.\d+)/ );
6 
7 MODULE = Digest::Elf		PACKAGE = Digest::Elf
8 
9 unsigned long
10 elf ( sval )
11 	char * sval;
12 
13 	CODE:
14 		unsigned long h = 0, g;
15 
16 		while ( *sval )
17 		{
18 			h = ( h << 4 ) + *sval++;
19 			if ( g = h & 0xF0000000 )
20 				h ^= g >> 24;
21 
22 			h &= ~g;
23 		}
24 		RETVAL = h;
25 
26 	OUTPUT:
27 		RETVAL
28 
29