Exemple #1
0
int main(int argc, char **argv)
{
        struct fuse_args args = FUSE_ARGS_INIT(argc, argv);
        struct cusexmp_param param = { 0, 0, NULL, 0 };
        char dev_name[128] = "DEVNAME=";
        const char *dev_info_argv[] = { dev_name };
        struct cuse_info ci;
        if (fuse_opt_parse(&args, &param, cusexmp_opts, cusexmp_process_arg)) {
                printf("failed to parse option\n");
                return 1;
        }
        if (!param.is_help) {
                if (!param.dev_name) {
                        fprintf(stderr, "Error: device name missing\n");
                        return 1;
                }
                strncat(dev_name, param.dev_name, sizeof(dev_name) - 9);
        }
        memset(&ci, 0, sizeof(ci));
        ci.dev_major = param.major;
        ci.dev_minor = param.minor;
        ci.dev_info_argc = 1;
        ci.dev_info_argv = dev_info_argv;
        ci.flags = CUSE_UNRESTRICTED_IOCTL;
        return cuse_lowlevel_main(args.argc, args.argv, &ci, &cusexmp_clop,
                                  NULL);
}
Exemple #2
0
int runfuse(int argc, const char* const* argv)
{
	struct fuse_args fua = FUSE_ARGS_INIT(argc, (char**) argv);
	struct cuse_info info;
	const char *iav[] = { "DEVNAME=jrandom",NULL };
	vzero(info);
	info.dev_info_argc = 1;
	info.dev_info_argv = iav;
	info.flags = CUSE_UNRESTRICTED_IOCTL;
	return cuse_lowlevel_main(fua.argc, fua.argv, &info, GET_RNDEV_OPS(), NULL);
}