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 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
PATCH 1/4 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 @@ ubirmvol: ubirmvol.o error.o libubi.o $(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
103 lines not on this page · raw message
PATCH 2/4 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 @@ pfiflash: pfiflash.o libpfiflash.o list. $(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
111 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 2/4 try2] ubi-utils: migrate ubimirror
Hi Alex,
Quoted 2 lines · Alexander Schmidt
+#define MAXPATH 1024
Would it make sense to use PATH_MAX from limits.h? It is not 1024 I think but I guess it should serve the same purpose.
man limits.h:
{PATH_MAX}
Maximum number of bytes in a pathname, including the terminating null character.
Frank
Signature · 4 lines
IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032 Boeblingen, Vorsitzender des Aufsichtsrats: Martin Jetter Geschäftsführung: Herbert Kircher, Sitz der Gesellschaft: Böblingen, Registergericht: Amtsgericht Stuttgart, HRB 243294
Re: [PATCH 2/4 try2] ubi-utils: migrate ubimirror
Hi Frank,
thanks you for taking a look at the code.
Quoted 12 lines · Alexander Schmidt
Quoted 2 lines
+#define MAXPATH 1024
Would it make sense to use
PATH_MAXfromlimits.h? It is not 1024 I think but I guess it should serve the same purpose.man
limits.h:{
PATH_MAX}
Maximum number of bytes in a pathname, including the terminating null character.
That makes sense, I will resend when I've figured out how to send patch series which don't bounce from the mtd-list...
Regards,
Alex
Re: [PATCH 2/4 try2] ubi-utils: migrate ubimirror
Quoted 6 lines · Alexander Schmidt
Quoted 3 lines
{
PATH_MAX}
Maximum number of bytes in a pathname, including the terminating null character.That makes sense, I will resend when I've figured out how to send patch series which don't bounce from the mtd-list...
The series looks good to me.
The infradead.org has a rule so that if one mail A refers mail B (via In-reply-to or Reference:), then mail A has to have Re: prefix in the subject. Otherwise, the mail is trapped and waits for moderation.
At the moment one of the infradead.org servers is dead and I cannot approve your series which looks perfectly fine.
So what you can do is to just add Re: to the subject of all the mails but the first one (0/4). Yes, it is weird but such is life at infradead.org.
Or just wait when the server is up again and the postings are moderated.
Signature · 2 lines
Best regards, Artem Bityutskiy (Битюцкий Артём)
Re: [PATCH 2/4 try2] ubi-utils: migrate ubimirror
Hi Artem,
Quoted 6 lines · On Saturday 29 September 2007 10:55:39 Artem Bityutskiy wrote:
The series looks good to me.
The infradead.org has a rule so that if one mail A refers mail B (via In-reply-to or Reference:), then mail A has to have Re: prefix in the subject. Otherwise, the mail is trapped and waits for moderation.
Quoted 8 lines
At the moment one of the infradead.org servers is dead and I cannot approve your series which looks perfectly fine.
So what you can do is to just add Re: to the subject of all the mails but the first one (0/4). Yes, it is weird but such is life at infradead.org.
Or just wait when the server is up again and the postings are moderated.
thank you for the review!
I'll integrate Frank's suggestions and resend the series with proper subjects.
Regards,
Alex
Re: [PATCH 2/4 try2] ubi-utils: migrate ubimirror
In reply to Artem BityutskiyQuoted 2 lines · Artem Bityutskiy
At the moment one of the infradead.org servers is dead and I cannot approve your series which looks perfectly fine.
While the server was down, the mailing list wasn't active at all. I keep meaning to switch to something other than mailman, so that it's easier to switch to a backup machine... but it hasn't happened yet.
Quoted 6 lines
So what you can do is to just add Re: to the subject of all the mails but the first one (0/4). Yes, it is weird but such is life at infradead.org.
Or just wait when the server is up again and the postings are moderated.
The machine is up now, although it's not accessible through Legacy IP for the time being -- only IPv6.
Signature · 1 line
dwmw2
Re: [PATCH 2/4 try2] ubi-utils: migrate ubimirror
In reply to Artem BityutskiyQuoted 4 lines · Artem Bityutskiy
The infradead.org has a rule so that if one mail A refers mail B (via In-reply-to or Reference:), then mail A has to have Re: prefix in the subject. Otherwise, the mail is trapped and waits for moderation.
And this rule should have an excemption for a subject starting with "PATCH" or "[PATCH". Fighting spam and bad manners makes sense. But one shouldn't go overboard and disallow good manners in the process.
This particular rule has annoyed me more than once. I wouldn't be surprised if others simply decided to go away and not contribute anymore.
Jörn
Signature · 2 lines
It's just what we asked for, but not what we want! -- anonymous
PATCH 3/4 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 @@ pddcustomize: pddcustomize.o error.o lib $(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" ;
PATCH 4/4 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