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