summaryrefslogtreecommitdiff
path: root/ubi-utils/src/ubimkvol.c
diff options
context:
space:
mode:
Diffstat (limited to 'ubi-utils/src/ubimkvol.c')
-rw-r--r--ubi-utils/src/ubimkvol.c33
1 files changed, 21 insertions, 12 deletions
diff --git a/ubi-utils/src/ubimkvol.c b/ubi-utils/src/ubimkvol.c
index 879dcb6..1368671 100644
--- a/ubi-utils/src/ubimkvol.c
+++ b/ubi-utils/src/ubimkvol.c
@@ -28,6 +28,7 @@
* 1.2 Reworked the user-interface to use argp.
* 1.3 Removed argp because we want to use uClibc.
* 1.4 Minor cleanups
+ * 1.5 Use a different libubi
*/
#include <stdio.h>
@@ -40,7 +41,7 @@
#include <config.h>
#include <libubi.h>
-#define PROGRAM_VERSION "1.4"
+#define PROGRAM_VERSION "1.5"
/*
* The variables below are set by command line arguments.
@@ -53,6 +54,7 @@ struct args {
int alignment;
char *name;
int nlen;
+ char node[256];
/* special stuff needed to get additional arguments */
char *arg1;
@@ -69,7 +71,7 @@ static struct args myargs = {
.nlen = 0,
};
-static int param_sanity_check(struct args *args, ubi_lib_t lib);
+static int param_sanity_check(struct args *args, libubi_t libubi);
static char doc[] = "\nVersion: " PROGRAM_VERSION "\n\t"
BUILD_OS" "BUILD_CPU" at "__DATE__" "__TIME__"\n"
@@ -177,6 +179,7 @@ parse_opt(int argc, char **argv, struct args *args)
"\"%s\"\n", optarg);
goto out;
}
+ sprintf(args->node, "/dev/ubi%d", args->devn);
break;
case 'n': /* --volid=<volume id> */
args->vol_id = strtoul(optarg, &endp, 0);
@@ -224,7 +227,7 @@ parse_opt(int argc, char **argv, struct args *args)
return -1;
}
-static int param_sanity_check(struct args *args, ubi_lib_t lib)
+static int param_sanity_check(struct args *args, libubi_t libubi)
{
int err, len;
struct ubi_info ubi;
@@ -239,7 +242,7 @@ static int param_sanity_check(struct args *args, ubi_lib_t lib)
goto out;
}
- err = ubi_get_info(lib, &ubi);
+ err = ubi_get_info(libubi, &ubi);
if (err)
return -1;
@@ -264,7 +267,8 @@ out:
int main(int argc, char * const argv[])
{
int err;
- ubi_lib_t lib;
+ libubi_t libubi;
+ struct ubi_mkvol_request req;
err = parse_opt(argc, (char **)argv, &myargs);
if (err) {
@@ -278,21 +282,26 @@ int main(int argc, char * const argv[])
return -1;
}
- err = ubi_open(&lib);
- if (err) {
+ libubi = libubi_open();
+ if (libubi == NULL) {
perror("Cannot open libubi");
return -1;
}
- err = param_sanity_check(&myargs, lib);
+ err = param_sanity_check(&myargs, libubi);
if (err) {
perror("Input parameters check");
fprintf(stderr, "Use -h option for help\n");
goto out_libubi;
}
- err = ubi_mkvol(lib, myargs.devn, myargs.vol_id, myargs.vol_type,
- myargs.bytes, myargs.alignment, myargs.name);
+ req.vol_id = myargs.vol_id;
+ req.alignment = myargs.alignment;
+ req.bytes = myargs.bytes;
+ req.vol_type = myargs.vol_type;
+ req.name = myargs.name;
+
+ err = ubi_mkvol(libubi, myargs.node, &req);
if (err < 0) {
perror("Cannot create volume");
fprintf(stderr, " err=%d\n", err);
@@ -304,10 +313,10 @@ int main(int argc, char * const argv[])
"dynamic" : "static", name); */
myargs.vol_id = err;
- ubi_close(&lib);
+ libubi_close(libubi);
return 0;
out_libubi:
- ubi_close(&lib);
+ libubi_close(libubi);
return -1;
}