ubi-utils: migrate to new libubi
cover ubi-utils: migrate to new libubi
This patchset migrates the remaining tools (pddcustomize, ubimirror and pfiflash) to the new libubi.
Changes since try2: I use PATH_MAX from limits.h now instead of a self-defined value
Changes since try1: I have discarded the libubi_common files, device paths are now integrated in every utility.
I've tested the new version with the scripts in ubi-utils/scripts/ubi_* and everything works fine.
mtd-utils.orig/ubi-utils/inc/libubiold.h | 310 ---------- mtd-utils.orig/ubi-utils/src/libubiold.c | 768 ------------------------- mtd-utils.orig/ubi-utils/src/libubiold_int.h | 119 --- mtd-utils.orig/ubi-utils/src/libubiold_sysfs.c | 232 ------- mtd-utils.orig/ubi-utils/src/libubiold_sysfs.h | 109 --- ubi-utils/Makefile | 6 ubi-utils/src/libpfiflash.c | 141 +++- ubi-utils/src/libubimirror.c | 51 + ubi-utils/src/pddcustomize.c | 47 - ubi-utils/src/pfiflash.c | 3 ubi-utils/src/ubimirror.c | 3 11 files changed, 171 insertions(+), 1618 deletions(-)
Kind regards,
Alexander Schmidt
Re: [PATCH 1/4 try3] ubi-utils: migrate pddcustomize
Migrate pddcustomize to the new libubi.
--- ubi-utils/Makefile | 2 - ubi-utils/src/pddcustomize.c | 47 ++++++++++++++++++++++++++----------------- 2 files changed, 30 insertions(+), 19 deletions(-)
ubi-utils/Makefile +1 -1
@@ -43,7 +43,7 @@ $(CC) $(LDFLAGS) -o $@ $^ pddcustomize: pddcustomize.o error.o libubimirror.o bootenv.o hashmap.o \ - libubiold.o libubiold_sysfs.o crc32.o + libubi.o crc32.o $(CC) $(LDFLAGS) -o $@ $^ pfiflash: pfiflash.o libpfiflash.o list.o reader.o error.o libubimirror.o \
ubi-utils/src/pddcustomize.c +29 -18
109 lines not on this page · raw message
Re: [PATCH 2/4 try3] ubi-utils: migrate ubimirror
In reply to Alexander SchmidtMigrate ubimirror to the new libubi.
--- ubi-utils/Makefile | 2 - ubi-utils/src/libubimirror.c | 51 ++++++++++++++++++++++++++++++------------- ubi-utils/src/ubimirror.c | 3 +- 3 files changed, 39 insertions(+), 17 deletions(-)
ubi-utils/Makefile +1 -1
@@ -51,7 +51,7 @@ $(CC) $(LDFLAGS) -o $@ $^ ubimirror: ubimirror.o error.o libubimirror.o bootenv.o hashmap.o \ - libubiold.o libubiold_sysfs.o crc32.o + libubi.o crc32.o $(CC) $(LDFLAGS) -o $@ $^ nand2bin: nand2bin.o nandecc.o nandcorr.o
ubi-utils/src/libubimirror.c +36 -15
113 lines not on this page · raw message
ubi-utils/src/ubimirror.c +2 -1
@@ -19,6 +19,7 @@* * 1.2 Removed argp because we want to use uClibc. * 1.3 Minor cleanups +* 1.4 Migrated to new libubi */ #include <stdio.h>
@@ -35,7 +36,7 @@#include "example_ubi.h" #include "ubimirror.h" -#define PROGRAM_VERSION "1.3" +#define PROGRAM_VERSION "1.4" typedef enum action_t { ACT_NORMAL = 0,
Re: [PATCH 3/4 try3] ubi-utils: migrate pfiflash
In reply to Alexander SchmidtMigrate pfiflash to the new libubi.
--- ubi-utils/Makefile | 2 ubi-utils/src/libpfiflash.c | 141 ++++++++++++++++++++++++++++++-------------- ubi-utils/src/pfiflash.c | 3 3 files changed, 102 insertions(+), 44 deletions(-)
ubi-utils/Makefile +1 -1
@@ -47,7 +47,7 @@ $(CC) $(LDFLAGS) -o $@ $^ pfiflash: pfiflash.o libpfiflash.o list.o reader.o error.o libubimirror.o \ - bootenv.o hashmap.o pfi.o libubiold.o libubiold_sysfs.o crc32.o + bootenv.o hashmap.o pfi.o libubi.o crc32.o $(CC) $(LDFLAGS) -o $@ $^ ubimirror: ubimirror.o error.o libubimirror.o bootenv.o hashmap.o \
ubi-utils/src/libpfiflash.c +99 -42
338 lines not on this page · raw message
ubi-utils/src/pfiflash.c +2 -1
@@ -27,6 +27,7 @@* 1.3 removed argp parsing to be able to use uClib. * 1.4 Minor cleanups. * 1.5 Forgot to delete raw block before updating it. +* 1.6 Migrated to new libubi. */ #include <unistd.h>
@@ -43,7 +44,7 @@#include "error.h" #include "config.h" -#define PROGRAM_VERSION "1.5" +#define PROGRAM_VERSION "1.6"static char doc[] ="\nVersion: " PROGRAM_VERSION "\n" "pfiflash - a tool for updating a controller with PFI files.\n" ;
Re: [PATCH 4/4 try3] ubi-utils: remove libubiold
In reply to Alexander SchmidtRemove the old libubi.
--- ubi-utils/inc/libubiold.h | 310 ---------------- ubi-utils/src/libubiold.c | 768 ---------------------------------------- ubi-utils/src/libubiold_int.h | 119 ------ ubi-utils/src/libubiold_sysfs.c | 232 ------------ ubi-utils/src/libubiold_sysfs.h | 109 ----- 5 files changed, 1538 deletions(-)
ubi-utils/inc/libubiold.h deleted +0 -310
@@ -1,310 +0,0 @@ -#ifndef __UBI_H__ -#define __UBI_H__ -/* -* Copyright (c) International Business Machines Corp., 2006 -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See -* the GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* -* UBI (Unsorted Block Images) library. -* @file libubi.h -* @author Artem B. Bityutskiy -* @author Additions: Oliver Lohmann -* @version 1.0 -*/ - -#include <stdint.h> -#include <mtd/ubi-user.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/** -* @section eh Error Handling -* The following error indication policy is used: in case of success, all -* library functions return 0, in case of failure they either return UBI error -* codes, or -1 if a system error occured; in the latter case the exact error -* code has to be in the errno variable. -* -* @def UBI_ENOTFOUND -* @brief UBI was not found in the system. -* @def UBI_EBUG -* @brief An error due to bug in kernel part of UBI in UBI library. -* @def UBI_EINVAL -* @brief Invalid argument. -* @def UBI_EMACS -* @brief Highest error value. -*/ -#define UBI_ENOTFOUND 1 -#define UBI_EBUG 2 -#define UBI_EINVAL 3 -#define UBI_EMAX 4 - - -/** -* UBI library descriptor, vague for library users. -*/ -typedef struct ubi_lib *ubi_lib_t ; - -/** -* struct ubi_info - general information about UBI. -* -* @version UBI version -* @nlen_max maximum length of names of volumes -* @dev_count count UBI devices in the system -*/ -struct ubi_info -{ -unsigned int version; -unsigned int nlen_max; -unsigned int dev_count; -}; - -/** -* struct ubi_dev_info - information about an UBI device -* -* @wear average number of erasures of flash erasable blocks -* @major major number of the corresponding character device -* @minor minor number of the corresponding character device -* @eb_size size of eraseblocks -* @total_ebs total count of eraseblocks -* @avail_ebs count of unused eraseblock available for new volumes -* @vol_count total count of volumes in this UBI device -*/ -struct ubi_dev_info -{ -unsigned long long wear; -unsigned int major; -unsigned int minor; -unsigned int eb_size; -unsigned int total_ebs; -unsigned int avail_ebs; -unsigned int vol_count; -}; - -/** -* struct ubi_vol_info - information about an UBI volume -* -* @bytes volume size in bytes -* @eraseblocks volume size in eraseblocks -* @major major number of the corresponding character device -* @minor minor number of the corresponding character device -* @type volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME) -* @dev_path device path to volume -* @name volume name -*/ -struct ubi_vol_info -{ -unsigned long long bytes; -unsigned int eraseblocks; -unsigned int major; -unsigned int minor; -int type; -char *dev_path; -char *name; -}; - -/** -* ubi_mkvol - create a dynamic UBI volume. -* -* @desc UBI library descriptor -* @devn Number of UBI device to create new volume on -* @vol_id volume ID to assign to the new volume -* @vol_type volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME) -* @bytes volume size in bytes -* @alignment volume alignment -* @name volume name -* -* This function creates new UBI volume. If @vol_id is %UBI_VOLN_AUTO, then -* volume number is assigned automatically. This function returns positive -* volume number of the new volume in case of success or %-1 in case of -* failure. -*/ -int ubi_mkvol (ubi_lib_t desc,int devn,int vol_id,int vol_type, -long long bytes,int alignment,const char *name); - -/** -* ubi_rmvol - remove a volume. -* -* @desc UBI library descriptor -* @devn Number of UBI device to remove volume from -* @vol_id volume ID to remove -* -* This function returns zero in case of success or %-1 in case of failure. -*/ -int ubi_rmvol (ubi_lib_t desc,int devn,int vol_id); - -/** -* ubi_get_info - get UBI information. -* -* @desc UBI library descriptor -* @ubi UBI information is returned here -* -* This function retrieves information about UBI and puts it to @ubi. Returns -* zero in case of success and %-1 in case of failure. -*/ -int ubi_get_info (ubi_lib_t desc,struct ubi_info *ubi); - -/** -* ubi_vol_open - open a UBI volume -* -* @desc UBI library descriptor -* @devn Number of UBI device on which to open the volume -* @vol_id Number of UBI device on which to open the volume -* @flags Flags to pass to open() -* -* This function opens a UBI volume on a given UBI device. It returns -* the file descriptor of the opened volume device. In case of an -* error %-1 is returned and errno is set appropriately. -*/ -int ubi_vol_open (ubi_lib_t desc,int devn,int vol_id,int flags); - -/** -* ubi_vol_close - close a UBI volume -* -* @vol_fd file descriptor of UBI volume to close -* -* This function closes the given UBI device. -*/ -int ubi_vol_close (int vol_fd); - -/** -* ubi_vol_update - initiate volume update on a UBI volume -* @vol_fd File descriptor of UBI volume to update -* @bytes No. of bytes which shall be written. -* -* Initiates a volume update on a given volume. The caller must then -* actually write the appropriate number of bytes to the volume by -* calling write(). Returns 0 on success, else error. -*/ -int ubi_vol_update (int vol_fd,unsigned long long bytes); - -/** -* ubi_vol_fopen_read - open a volume for reading, returning a FILE * -* @desc UBI library descriptor -* @devn UBI device number -* @vol_id volume ID to read -* -* Opens a volume for reading. Reading itself can then be performed -* with fread(). The stream can be closed with fclose(). Returns a -* stream on success, else NULL. -*/ -FILE * -ubi_vol_fopen_read (ubi_lib_t desc,int devn,uint32_t vol_id); - -/** -* ubi_vol_fopen_update - open a volume for writing, returning a FILE * -* @desc UBI library descriptor -* @devn UBI device number -* @vol_id volume ID to update -* @bytes No. of bytes which shall be written. -* -* Initiates a volume update on a given volume. The caller must then -* actually write the appropriate number of bytes to the volume by -* calling fwrite(). The file can be closed with fclose(). Returns a -* stream on success, else NULL. -*/ -FILE * -ubi_vol_fopen_update (ubi_lib_t desc,int devn,uint32_t vol_id, -unsigned long long bytes); - -/** -* ubi_vol_get_used_bytes - determine used bytes in a UBI volume -* @vol_fd File descriptor of UBI volume -* @bytes Pointer to result -* -* Returns 0 on success, else error. -*/ -int ubi_vol_get_used_bytes (int vol_fd,unsigned long long *bytes); - -/** -* ubi_open - open UBI library. -* -* @desc A pointer to an UBI library descriptor -* -* Returns zero in case of success. -*/ -int ubi_open (ubi_lib_t *desc); - -/** -* ubi_close - close UBI library. -* -* @desc A pointer to an UBI library descriptor -*/ -int ubi_close (ubi_lib_t *desc); - - -/** -* ubi_perror - print UBI error. -* -* @prefix a prefix string to prepend to the error message -* @code error code -* -* If @code is %-1, this function calls 'perror()' -*/ -void ubi_perror (const char *prefix,int code); - -/** -* ubi_set_cdev_pattern - set 'sprintf()'-like pattern of paths to UBI -* character devices. -* -* @desc UBI library descriptor -* @pattern the pattern to set -* -* The default UBI character device path is "/dev/ubi%u". -*/ -int ubi_set_cdev_pattern (ubi_lib_t desc,const char *pattern); - -/** -* ubi_get_dev_info get information about an UBI device. -* -* @desc UBI library descriptor -* @devn UBI device number -* @di the requested information is returned here -*/ -int ubi_get_dev_info (ubi_lib_t desc,unsigned int devn, -struct ubi_dev_info *di); - -/** -* ubi_set_vol_cdev_pattern - set 'sprintf()'-like pattµern ofpaths to UBI -* volume character devices. -* -* @desc UBI library descriptor -* @pattern the pattern to set -* -* The default UBI character device path is "/dev/ubi%u_%u". -*/ -int ubi_set_vol_cdev_pattern (ubi_lib_t desc,const char *pattern); - -/** -* ubi_get_vol_info - get information about an UBI volume -* -* @desc UBI library descriptor -* @devn UBI device number the volume belongs to -* @vol_id the requested volume number -* @vi volume information is returned here -* -* Users must free the volume name string @vi->name. -*/ -int ubi_get_vol_info (ubi_lib_t desc,unsigned int devn,unsigned int vol_id, -struct ubi_vol_info *vi); - -#ifdef __cplusplus -} -#endif - -#endif /* !__UBI_H__ */
ubi-utils/src/libubiold.c deleted +0 -768
768 lines not on this page · raw message
ubi-utils/src/libubiold_int.h deleted +0 -119
119 lines not on this page · raw message
ubi-utils/src/libubiold_sysfs.c deleted +0 -232
232 lines not on this page · raw message
ubi-utils/src/libubiold_sysfs.h deleted +0 -109
109 lines not on this page · raw message
Quoted 11 lines · Alexander Schmidt
This patchset migrates the remaining tools (pddcustomize, ubimirror and pfiflash) to the new libubi.
Changes since try2: I use
PATH_MAXfromlimits.hnow instead of a self-defined valueChanges since try1: I have discarded the
libubi_commonfiles, device paths are now integrated in every utility.I've tested the new version with the scripts in ubi-utils/scripts/ubi_* and everything works fine.
Thanks! Committed.
Signature · 2 lines
Best regards, Artem Bityutskiy (Битюцкий Артём)