Home | History | Annotate | Download | only in test
      1 #include <fcntl.h>
      2 #include <stdint.h>
      3 #include <stdio.h>
      4 #include <string.h>
      5 #include <termios.h>
      6 #include <unistd.h>
      7 #include <sys/ioctl.h>
      8 #include <mtd/ubi-user.h>
      9 
     10 #define zero(x) memset(&x, 0, sizeof(x))
     11 
     12 int main() {
     13 	int fd = open("/dev/null", 0);
     14 	struct ubi_mkvol_req mkvol = {
     15 		.vol_id = 3,
     16 		.alignment = 124,
     17 		.bytes = 1125899906842624ULL,
     18 		.vol_type = 3,
     19 		.name_len = 7,
     20 		.name = "foobar",
     21 	};
     22 	struct ubi_rsvol_req rsvol = {
     23 		.bytes = 1125899906842624ULL,
     24 		.vol_id = -3,
     25 	};
     26 	struct ubi_rnvol_req rnvol = {
     27 		.count = 300,
     28 	};
     29 	struct ubi_attach_req attach;
     30 	struct ubi_map_req map;
     31 	struct ubi_set_vol_prop_req prop = {
     32 		.property = 1,
     33 		.value = 1125899906842624ULL,
     34 	};
     35 	uint64_t bytes = ((uint64_t)1 << 50) | 0x123;
     36 
     37 	ioctl(fd, UBI_IOCMKVOL, &mkvol);
     38 	ioctl(fd, UBI_IOCRSVOL, &rsvol);
     39 	ioctl(fd, UBI_IOCRNVOL, &rnvol);
     40 	ioctl(fd, UBI_IOCATT, &attach);
     41 	ioctl(fd, UBI_IOCVOLUP, &bytes);
     42 	ioctl(fd, UBI_IOCEBMAP, &map);
     43 	ioctl(fd, UBI_IOCSETVOLPROP, &prop);
     44 	zero(prop);
     45 	ioctl(fd, UBI_IOCSETVOLPROP, &prop);
     46 	ioctl(fd, UBI_IOCRMVOL, 1);
     47 	ioctl(fd, UBI_IOCDET, 2);
     48 	ioctl(fd, UBI_IOCEBER, 3);
     49 	ioctl(fd, UBI_IOCEBCH, 4);
     50 	ioctl(fd, UBI_IOCEBUNMAP, 5);
     51 	ioctl(fd, UBI_IOCEBISMAP, 6);
     52 
     53 	return 0;
     54 }
     55