예제 #1
0
int
main(int argc,char **argv)
{
  int i;

  for(i=0;i<24;i++)
    hourly[i]=0;
  for(i=0;i<7;i++)
    weekly[i]=0;
  for(i=0;i<256;i++)
    nsrc[i]=i;

  time_cons[0]=0;
  time_cons[1]=0;
  useridx=ispidx=0;

  gtk_init(&argc,&argv);
  gdk_rgb_init();
  load_log();
  create_loglist();
  update_list();

  make_resume();

  gtk_main();

  g_list_free(users);
  g_list_free(isps);
  for(i=0;i<3;i++)
    gdk_pixmap_unref(iconmap[i]);

  free_log();
  return 0;
}
예제 #2
0
int main(int argc, char ** argv)
{
	uint32_t blockno;

	if (argc != 3)
	{
		fprintf(stderr, "About: check linux_bd writes\n");
		fprintf(stderr, "Usage: %s <linux_bd_writes> <disk_image>\n", argv[0]);
		exit(1);
	}

	load_log(argv[1]);
	compare_checksums(argv[2]);

	for (blockno = 0; blockno < MAXBLOCKNO; blockno++)
	{
		struct linux_bd_write * last_write = &writes.writes[blocks[blockno].last_write];
		uint32_t index;
		int32_t blockwriteno = 0;
		int checksum_match = 0;
		int issue_mismatch = 0;

		if (!blocks[blockno].nwrites)
			continue;
		if (blocks[blockno].read_checksum == last_write->checksum)
			continue;

		printf("block %u differs. written %u times. %d writes inflight. checksums: 0x%x (kfstitchd), 0x%x (read).\n", blockno, blocks[blockno].nwrites, last_write->ninflight, last_write->checksum, blocks[blockno].read_checksum);

		printf("block %u previous write checksum matches: ", blockno);
		for (index = 0; index < MAXWRITES; index++)
		{
			struct linux_bd_write * write = &writes.writes[index];
			if (write->blockno != blockno)
				continue;
			blockwriteno++;
			if (blocks[blockno].read_checksum == write->checksum)
			{
				checksum_match = 1;
				printf("%d ", blockwriteno);
			}
			if (blockwriteno == blocks[blockno].nwrites)
				break;
		}
		if (checksum_match)
			printf("of its %u writes", blocks[blockno].nwrites);
		else
			printf("none");
		printf("\n");
		
		printf("block %u issue->complete ordering differences: ", blockno);
		for (index = 0; index < writes.next; index++)
			if (writes.writes[index].blockno == blockno)
				if (index != writes.writes[index].completed)
				{
					issue_mismatch = 1;
					printf("%u->%u ", index, writes.writes[index].completed);
				}
		if (issue_mismatch)
			printf("of %u total writes", writes.next);
		else
			printf("none");
		printf("\n");
	}

	return 0;
}