/* * $Id$ */ #ifndef _CRC_H_ #define _CRC_H_ extern unsigned long int crc_32_tab[]; extern unsigned short int ccitt_tab[]; extern unsigned short int crc_16_tab[]; #endif #include #include #include #include "hash_func.h" #include "dprint.h" #include "crc.h" #include "ut.h" #ifdef _OBSOLETED int old_hash( str call_id, str cseq_nr ) { int hash_code = 0; int i; #if 0 /*def i386*/ int ci_len, cs_len; char *ci, *cs; trim_len( ci_len, ci, call_id ); trim_len( cs_len, cs, cseq_nr ); int dummy1; if (call_id.len>=4){ asm( "1: \n\r" "addl (%1), %0 \n\r" "add $4, %1 \n\r" "cmp %2, %1 \n\r" "jl 1b \n\r" : "=r"(hash_code), "=r"(dummy1) : "0" (hash_code), "1"(ci), "r"( (ci_len & (~3)) +ci) ); } #else if ( call_id.len>0 ) for( i=0 ; i=4){ asm( "1: \n\r" "addl (%1), %0 \n\r" "add $4, %1 \n\r" "cmp %2, %1 \n\r" "jl 1b \n\r" : "=r"(hash_code), "=r"(dummy2) : "0" (hash_code), "1"(cs), "r"((cs_len & (~3) )+ cs) ); } #else if ( cseq_nr.len>0 ) for( i=0 ; i0 ; i--, j--, k-- ) { hash_code+=crc_16_tab[(unsigned char)(*(ci+i)) /*+7*/ ]+ ccitt_tab[*(ci+k)+63]+ ccitt_tab[*(ci+j)+13]; } for( i=0 ; i