Пример #1
0
int
main(int argc, char **argv)
{
	GDBM_FILE dbf;
	datum key, next, value;
	int i;

	while ((i = getopt(argc, argv, "py")) != -1) {
		switch (i) {
		case 'p':
			pflag = 1;
			break;
		case 'y':
			yflag = 1;
			break;
		default:
			fprintf(stderr, "Usage: %s [-p] [-y] file [...]\n",
				strchr(argv[0], '/') ?
				strrchr(argv[0], '/') + 1 : argv[0]);
			return 1;
			break;
		}
	}
	for (i = optind; i < argc; i++) {
		dbf = gdbm_open(argv[i], 0, GDBM_READER, 0600, NULL);
		if (dbf == NULL) {
			fprintf(stderr, "Error opening `%s': %s\n", argv[i],
				gdbm_errno ? gdbm_strerror(gdbm_errno) :
				strerror(errno));
			return 1;
		}
		dump_start(argc - optind, argv[i]);
		key = gdbm_firstkey(dbf);
		while (key.dptr != NULL) {
			value = gdbm_fetch(dbf, key);
			if (value.dptr != NULL) {
				dump_entry(key, value);
				free(value.dptr);
			}
			next = gdbm_nextkey(dbf, key);
			free(key.dptr);
			key = next;
		}
		dump_end();
		gdbm_close(dbf);
	}
	return 0;
}
Пример #2
0
Файл: voot.c Проект: quad/voot
static bool maybe_handle_command(uint8 command, uint32 option, voot_packet *packet)
{
    switch(command)
    {
        case VOOT_COMMAND_TYPE_DEBUG:
        {
            static char key[] = "vrcust.bin";

            voot_debug("Module: '%s'", (const char *) VOOT_MODULE_NAME);
            grep_memory(key, sizeof(key));

            break;
        }

        case VOOT_COMMAND_TYPE_TIME:
            voot_debug("%u", time());
            break;

        case VOOT_COMMAND_TYPE_VERSION:
        {
            uint32 freesize, max_freesize;

            malloc_stat(&freesize, &max_freesize);

            voot_debug("Netplay VOOT Extensions, BETA [%u/%u]", freesize, max_freesize);

            break;
        }

        case VOOT_COMMAND_TYPE_DUMPON:
        {
            dump_start(option);

            voot_debug("Processed DUMPON command. (%x)", option);

            break;
        }

        case VOOT_COMMAND_TYPE_DUMPOFF:
        {
            uint32 bytes;

            bytes = dump_stop();

            voot_debug("Processed DUMPOFF command. (%u)", bytes);

            break;
        }

        /* TODO: After taking a certain number of screenshots, it appears to
            crash the system. Maybe the dump_framebuffer() call should be
            moved into the heartbeat logic and some simple IPC be
            implemented? */

        case VOOT_COMMAND_TYPE_SCREEN:
            dump_framebuffer();
            break;

        case VOOT_COMMAND_TYPE_DUMPMEM:
            voot_dump_buffer((const uint8 *) SYS_MEM_START, SYS_MEM_END - SYS_MEM_START);
            break;

        case VOOT_COMMAND_TYPE_DUMPGAME:
            voot_dump_buffer((const uint8 *) VOOT_MEM_START, VOOT_MEM_END - VOOT_MEM_START);
            break;

        case VOOT_COMMAND_TYPE_DUMPSELECT:
            voot_dump_buffer((const uint8 *) option, 1024);
            break;

        default:
            break;
    }

    return FALSE;
}