static int matches;
static int data_transfer;
-static int total_false_alarms=0;
-static int total_tag_hits=0;
-static int total_matches=0;
-static int total_data_transfer=0;
+static int total_false_alarms;
+static int total_tag_hits;
+static int total_matches;
+static off_t total_data_transfer;
struct target {
int i;
};
-static struct target *targets=NULL;
+static struct target *targets;
-static tag *tag_table = NULL;
+static tag *tag_table;
#define gettag2(s1,s2) (((s1) + (s2)) & 0xFFFF)
#define gettag(sum) gettag2((sum)&0xFFFF,(sum)>>16)
static void matched(int f,struct sum_struct *s,struct map_struct *buf,
- int offset,int i)
+ off_t offset,int i)
{
- int n = offset - last_match;
+ off_t n = offset - last_match;
int j;
- if (verbose > 2 && i != -1)
+ if (verbose > 2 && i >= 0)
fprintf(FERROR,"match at %d last_match=%d j=%d len=%d n=%d\n",
- (int)offset,(int)last_match,i,(int)s->sums[i].len,n);
+ (int)offset,(int)last_match,i,(int)s->sums[i].len,(int)n);
send_token(f,i,buf,last_match,n,i==-1?0:s->sums[i].len);
data_transfer += n;
if (n > 0)
write_flush(f);
- if (i != -1)
+ if (i >= 0)
n += s->sums[i].len;
for (j=0;j<n;j+=CHUNK_SIZE) {
}
- if (i != -1)
+ if (i >= 0)
last_match = offset + s->sums[i].len;
+ else
+ last_match = offset;
}
static void hash_search(int f,struct sum_struct *s,
struct map_struct *buf,off_t len)
{
- int offset,j,k;
+ off_t offset;
+ int j,k;
int end;
char sum2[SUM_LENGTH];
uint32 s1, s2, sum;
j = tag_table[t];
if (verbose > 4)
- fprintf(FERROR,"offset=%d sum=%08x\n",
- offset,sum);
+ fprintf(FERROR,"offset=%d sum=%08x\n",(int)offset,sum);
if (j == NULL_TAG) {
goto null_tag;
if (verbose > 3)
fprintf(FERROR,"potential match at %d target=%d %d sum=%08x\n",
- offset,j,i,sum);
+ (int)offset,j,i,sum);
if (!done_csum2) {
int l = MIN(s->n,len-offset);
return;
fprintf(FINFO,
- "total: matches=%d tag_hits=%d false_alarms=%d data=%d\n",
+ "total: matches=%d tag_hits=%d false_alarms=%d data=%ld\n",
total_matches,total_tag_hits,
- total_false_alarms,total_data_transfer);
+ total_false_alarms,(long)total_data_transfer);
}