Exemple #1
0
int ffs_entry_find(ffs_t * self, const char *path, ffs_entry_t * entry)
{
	int rc = __ffs_entry_find(self, path, entry);
	if (rc < 0) {
		err_t *err = err_get();
		assert(err != NULL);

		__error.errnum = err_code(err);
		snprintf(__error.errstr, sizeof __error.errstr,
			 "%s: %s : %s(%d) : (code=%d) %.*s\n",
			 program_invocation_short_name,
			 err_type_name(err), err_file(err), err_line(err),
			 err_code(err), err_size(err), (char *)err_data(err));

		rc = -1;
	}

	return rc;
}
Exemple #2
0
int ffs_iterate_entries(ffs_t * self, int (*func) (ffs_entry_t *))
{
	int rc = __ffs_iterate_entries(self, func);
	if (rc < 0) {
		err_t *err = err_get();
		assert(err != NULL);

		__error.errnum = err_code(err);
		snprintf(__error.errstr, sizeof __error.errstr,
			 "%s: %s : %s(%d) : (code=%d) %.*s\n",
			 program_invocation_short_name,
			 err_type_name(err), err_file(err), err_line(err),
			 err_code(err), err_size(err), (char *)err_data(err));

		rc = -1;
	}

	return rc;
}
Exemple #3
0
int ffs_list_entries(ffs_t * self, FILE * out)
{
	int rc = __ffs_list_entries(self, ".*", true, out);
	if (rc < 0) {
		err_t *err = err_get();
		assert(err != NULL);

		__error.errnum = err_code(err);
		snprintf(__error.errstr, sizeof __error.errstr,
			 "%s: %s : %s(%d) : (code=%d) %.*s\n",
			 program_invocation_short_name,
			 err_type_name(err), err_file(err), err_line(err),
			 err_code(err), err_size(err), (char *)err_data(err));

		rc = -1;
	}

	return rc;
}
Exemple #4
0
int ffs_info(ffs_t *self, int name, uint32_t *value)
{
	int rc = __ffs_info(self, name, value);
	if (rc < 0) {
		err_t *err = err_get();
		assert(err != NULL);

		__error.errnum = err_code(err);
		snprintf(__error.errstr, sizeof __error.errstr,
			 "%s: %s : %s(%d) : (code=%d) %.*s\n",
			 program_invocation_short_name,
			 err_type_name(err), err_file(err), err_line(err),
			 err_code(err), err_size(err), (char *)err_data(err));

		rc = -1;
	}

	return rc;
}
Exemple #5
0
ssize_t ffs_entry_write(ffs_t * self, const char *path, const void *buf,
			off_t offset, size_t count)
{
	ssize_t rc = __ffs_entry_write(self, path, buf, offset, count);
	if (rc < 0) {
		err_t *err = err_get();
		assert(err != NULL);

		__error.errnum = err_code(err);
		snprintf(__error.errstr, sizeof __error.errstr,
			 "%s: %s : %s(%d) : (code=%d) %.*s\n",
			 program_invocation_short_name,
			 err_type_name(err), err_file(err), err_line(err),
			 err_code(err), err_size(err), (char *)err_data(err));

		rc = -1;
	}

	return rc;
}
Exemple #6
0
static void vector_1(void) {
    vector_t v;

    CU_ASSERT(vector_init(&v, "my_vector", 0) == -1)
    err_t * err = err_get();
    fprintf(stderr, "%s(%d): %.*s\n",
            err_file(err), err_line(err), err_size(err),
            (const char *)err_data(err));

    for (size_t i=VECTOR_ELEM_MIN; i<=VECTOR_ELEM_MAX; i++) {
        CU_ASSERT(vector_init(&v, "my_vector", i) == 0);

        CU_ASSERT(vector_size(&v) == 0);
        CU_ASSERT(vector_pages(&v) == 0);
        CU_ASSERT(vector_capacity(&v) == 0);
        CU_ASSERT(vector_elem_size(&v) == i);
        CU_ASSERT(vector_elem_size(&v) * v.hdr.elem_num <= v.hdr.page_size);

        CU_ASSERT(vector_delete(&v) == 0);
    }
}
Exemple #7
0
int main(int argc, char *argv[])
{
	static const struct option long_opts[] = {
		/* commands */
		{"inject", required_argument, NULL, c_INJECT},
		{"remove", required_argument, NULL, c_REMOVE},
		{"hexdump", required_argument, NULL, c_HEXDUMP},
		/* options */
		{"output", required_argument, NULL, o_OUTPUT},
		/* flags */
		{"force", no_argument, NULL, f_FORCE},
		{"p8", no_argument, NULL, f_P8},
		{"verbose", no_argument, NULL, f_VERBOSE},
		{"help", no_argument, NULL, f_HELP},
		{0, 0, 0, 0}
	};

	static const char *short_opts = "I:R:H:o:fpvh";

	int rc = EXIT_FAILURE;

	if (argc == 1)
		usage(args.short_name, false), exit(rc);

	int opt = 0, idx = 0;
	while ((opt = getopt_long(argc, argv, short_opts, long_opts,
				  &idx)) != -1)
		if (process_argument(&args, opt, optarg) < 0)
			goto error;

	/* getopt_long doesn't know what to do with orphans, */
	/* so we'll scoop them up here, and deal with them later */

	while (optind < argc)
		if (process_option(&args, argv[optind++]) < 0)
			goto error;

	if (args.verbose == f_VERBOSE)
		args_dump(&args);

	if (validate_args(&args) < 0)
		goto error;
	if (process_args(&args) < 0)
		goto error;

	rc = EXIT_SUCCESS;

	if (false) {
		err_t *err;
error:
		err = err_get();
		assert(err != NULL);

		fprintf(stderr, "%s: %s : %s(%d) : (code=%d) %.*s\n",
			program_invocation_short_name,
			err_type_name(err), err_file(err), err_line(err),
			err_code(err), err_size(err), (char *)err_data(err));
	}

	return rc;
}