diff options
| author | Frank Haverkamp <haver@vnet.ibm.com> | 2006-06-21 14:26:02 +0200 | 
|---|---|---|
| committer | Frank Haverkamp <haver@vnet.ibm.com> | 2006-10-31 15:06:06 +0100 | 
| commit | 6ccd7242c4c1404dafb64cd937adc3c65ce02385 (patch) | |
| tree | 5a2833912e91c6f3f0d99b72d9dede35dc9c1ae2 /ubi-utils/inc | |
| parent | f175083413f0f94de88def865eeb65e465ded389 (diff) | |
[MTD] UBI: Removed automake, autoconf, added ubi userspace headers.
Signed-off-by: Frank Haverkamp <haver@vnet.ibm.com>
Diffstat (limited to 'ubi-utils/inc')
| -rw-r--r-- | ubi-utils/inc/Makefile.am | 5 | ||||
| -rw-r--r-- | ubi-utils/inc/bootenv.h | 415 | ||||
| -rw-r--r-- | ubi-utils/inc/config-h.in | 74 | ||||
| -rw-r--r-- | ubi-utils/inc/crc32.h | 36 | ||||
| -rw-r--r-- | ubi-utils/inc/error.h | 84 | ||||
| -rw-r--r-- | ubi-utils/inc/example_ubi.h | 28 | ||||
| -rw-r--r-- | ubi-utils/inc/list.h | 56 | ||||
| -rw-r--r-- | ubi-utils/inc/nandecc.h | 28 | ||||
| -rw-r--r-- | ubi-utils/inc/peb.h | 41 | ||||
| -rw-r--r-- | ubi-utils/inc/pfi.h | 244 | ||||
| -rw-r--r-- | ubi-utils/inc/pfiflash.h | 62 | ||||
| -rw-r--r-- | ubi-utils/inc/reader.h | 84 | ||||
| -rw-r--r-- | ubi-utils/inc/ubigen.h | 149 | ||||
| -rw-r--r-- | ubi-utils/inc/ubimirror.h | 66 | 
14 files changed, 0 insertions, 1372 deletions
| diff --git a/ubi-utils/inc/Makefile.am b/ubi-utils/inc/Makefile.am deleted file mode 100644 index ca22c37..0000000 --- a/ubi-utils/inc/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -AUTOMAKE_OPTIONS = foreign - -# You can export headers if necessary: -nobase_include_HEADERS = pfiflash.h \ -			 libubi.h diff --git a/ubi-utils/inc/bootenv.h b/ubi-utils/inc/bootenv.h deleted file mode 100644 index 86743ed..0000000 --- a/ubi-utils/inc/bootenv.h +++ /dev/null @@ -1,415 +0,0 @@ -#ifndef __BOOTENV_H__ -#define __BOOTENV_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. - */ - -#include <stdio.h> /* FILE */ -#include <stdint.h> -#include <pfiflash.h> - -/* DOXYGEN DOCUMENTATION */ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @file bootenv.h - * @author oliloh@de.ibm.com - * @version 1.3 - * - * 1.3 Some renaming - */ - -/** - * @mainpage Usage - * - * @section intro Introduction - * This library provides all functionality to handle with the so-called - * platform description data (PDD) and the bootparameters defined in - * U-Boot. It is able to apply the defined PDD operations in PDD update - * scenarios. For more information about the PDD and bootparameter - * environment "bootenv" confer the PDD documentation. - * - * @section ret Return codes - * This library defines some return codes which will be delivered classified - * as warnings or errors. See the "Defines" section for details and numeric - * values. - * - * @section benv Bootenv format description - * There are two different input formats: - *	- text files - *	- binary files - * - * @subsection txt Text Files - * Text files have to be specified like: - * @verbatim key1=value1,value2,value7\n key2=value55,value1\n key4=value1\n@endverbatim - * - * @subsection bin Binary files - * Binary files have to be specified like: - * @verbatim<CRC32-bit>key1=value1,value2,value7\0key2=value55,value1\0... @endverbatim - * You can confer the U-Boot documentation for more details. - * - * @section benvlists Bootenv lists format description. - * Values referenced in the preceeding subsection can be - * defined like lists: - * @verbatim value1,value2,value3 @endverbatim - * There are some situation where a conversion of a comma - * seperated list can be useful, e.g. to get a list - * of defined PDD entries. - */ - -#define BOOTENV_MAXSIZE (1024 * 100) /* max 100kiB space for bootenv */ - -/** - * @def BOOTENV_ECRC - *	@brief Given binary file is to large. - * @def BOOTENV_EFMT - *	@brief Given bootenv section has an invalid format - * @def BOOTENV_EBADENTRY - *	@brief Bad entry in the bootenv section. - * @def BOOTENV_EINVAL - *	@brief Invalid bootenv defintion. - * @def BOOTENV_ENOPDD - *	@brief Given bootenv sectoin has no PDD defintion string (pdd=...). - * @def BOOTENV_EPDDINVAL - *	@brief Given bootenv section has an invalid PDD defintion. - * @def BOOTENV_ENOTIMPL - *	@brief Functionality not implemented. - * @def BOOTENV_ECOPY - *	@brief Bootenv memory copy error - * @def BOOTENV_ENOTFOUND - *	@brief Given key has has no value. - * @def BOOTENV_EMAX - *	@brief Highest error value. - */ -#define BOOTENV_ETOOBIG		1 -#define BOOTENV_EFMT		2 -#define BOOTENV_EBADENTRY	3 -#define BOOTENV_EINVAL		4 -#define BOOTENV_ENOPDD		5 -#define BOOTENV_EPDDINVAL	6 -#define BOOTENV_ENOTIMPL	7 -#define BOOTENV_ECOPY		8 -#define BOOTENV_ENOTFOUND	9 -#define BOOTENV_EMAX		10 - -/** - * @def BOOTENV_W - *	@brief A warning which is handled internally as an error - *	 but can be recovered by manual effort. - * @def BOOTENV_WPDD_STRING_DIFFERS - *	@brief The PDD strings of old and new PDD differ and - *	can cause update problems, because new PDD values - *	are removed from the bootenv section completely. - */ -#define BOOTENV_W		     20 -#define BOOTENV_WPDD_STRING_DIFFERS  21 -#define BOOTENV_WMAX 22 /* highest warning value */ - - -typedef struct bootenv *bootenv_t; -	/**< A bootenv library handle. */ - -typedef struct bootenv_list *bootenv_list_t; -	/**< A handle for a value list. */ - -typedef int(*pdd_func_t)(bootenv_t, bootenv_t, bootenv_t*, -		int*, char*, size_t); - - -/** - * @brief Get a new handle. - * @return 0 - * @return or error - * */ -int bootenv_create(bootenv_t *env); - -/** - * @brief	Cleanup structure. - * @param env	Bootenv structure which shall be destroyed. - * @return 0 - * @return or error - */ -int bootenv_destroy(bootenv_t *env); - -/** - * @brief Copy a bootenv handle. - * @param in	The input bootenv. - * @param out	The copied output bootenv. Discards old data. - * @return 0 - * @return or error - */ -int bootenv_copy_bootenv(bootenv_t in, bootenv_t *out); - -/** - * @brief Looks for a value inside the bootenv data. - * @param env Handle to a bootenv structure. - * @param key The key. - * @return NULL	 key not found - * @return !NULL ptr to value - */ -int bootenv_get(bootenv_t env, const char *key, const char **value); - - -/** - * @brief Looks for a value inside the bootenv data and converts it to num. - * @param env Handle to a bootenv structure. - * @param key The key. - * @param value A pointer to the resulting numerical value - * @return NULL	 key not found - * @return !NULL ptr to value - */ -int bootenv_get_num(bootenv_t env, const char *key, uint32_t *value); - -/** - * @brief Set a bootenv value by key. - * @param env   Handle to a bootenv structure. - * @param key	Key. - * @param value	Value to set. - * @return 0 - * @return or error - */ -int bootenv_set(bootenv_t env, const char *key, const char *value); - -/** - * @brief Remove the given key (and its value) from a bootenv structure. - * @param env	Handle to a bootenv structure. - * @param key	Key. - * @return 0 - * @return or error - */ -int bootenv_unset(bootenv_t env, const char *key); - - -/** - * @brief Get a vector of all keys which are currently set - *        within a bootenv handle. - * @param env	Handle to a bootenv structure. - * @param size	The size of the allocated array structure. - * @param sort	Flag, if set the vector is sorted ascending. - * @return NULL on error. - * @return !NULL a pointer to the first element the allocated vector. - * @warning Free the allocate memory yourself! - */ -int bootenv_get_key_vector(bootenv_t env, size_t *size, int sort, -				const char ***vector); - -/** - * @brief Calculate the size in bytes which are necessary to write the - *        current bootenv section in a *binary file. - * @param env	bootenv handle. - * @param size  The size in bytes of the bootenv handle. - * @return 0 - * @return or ERROR. - */ -int bootenv_size(bootenv_t env, size_t *size); - -/** - * @brief Read a binary bootenv file. - * @param fp	File pointer to input stream. - * @param env	bootenv handle. - * @param size  maximum data size. - * @return 0 - * @return or ERROR. - */ -int bootenv_read(FILE* fp, bootenv_t env, size_t size); - - -/** - * @brief Read bootenv data from an text/ascii file. - * @param fp	File pointer to ascii PDD file. - * @param env	bootenv handle - * @return 0 - * @return or ERROR. - */ -int bootenv_read_txt(FILE* fp, bootenv_t env); - -/** - * @brief Write a bootenv structure to the given location (binary). - * @param fp	Filepointer to binary file. - * @param env	Bootenv structure which shall be written. - * @return 0 - * @return or error - */ -int bootenv_write(FILE* fp, bootenv_t env); - -/** - * @brief Write a bootenv structure to the given location (text). - * @param fp	Filepointer to text file. - * @param env	Bootenv structure which shall be written. - * @return 0 - * @return or error - */ -int bootenv_write_txt(FILE* fp, bootenv_t env); - -/** - * @brief Prototype for a PDD handling funtion - */ - -/** - * @brief The PDD keep operation. - * @param env_old The old bootenv structure. - * @param env_new The new bootenv structure. - * @param env_res The result of PDD keep. - * @param warnings A flag which marks any warnings. - * @return 0 - * @return or error - * @note For a complete documentation about the algorithm confer the - *       PDD documentation. - */ -int bootenv_pdd_keep(bootenv_t env_old, bootenv_t env_new, -		bootenv_t *env_res, int *warnings, -		char *err_buf, size_t err_buf_size); - - -/** - * @brief The PDD merge operation. - * @param env_old The old bootenv structure. - * @param env_new The new bootenv structure. - * @param env_res The result of merge-pdd. - * @param warnings A flag which marks any warnings. - * @return 0 - * @return or error - * @note For a complete documentation about the algorithm confer the - *       PDD documentation. - */ -int bootenv_pdd_merge(bootenv_t env_old, bootenv_t env_new, -		bootenv_t *env_res, int *warnings, -		char *err_buf, size_t err_buf_size); - -/** - * @brief The PDD overwrite operation. - * @param env_old The old bootenv structure. - * @param env_new The new bootenv structure. - * @param env_res The result of overwrite-pdd. - * @param warnings A flag which marks any warnings. - * @return 0 - * @return or error - * @note For a complete documentation about the algorithm confer the - *       PDD documentation. - */ -int bootenv_pdd_overwrite(bootenv_t env_new, -		bootenv_t env_old, bootenv_t *env_res, int *warnings, -		char *err_buf, size_t err_buf_size); - -/** - * @brief Dump a bootenv structure to stdout. (Debug) - * @param env	Handle to a bootenv structure. - * @return 0 - * @return or error - */ -int bootenv_dump(bootenv_t env); - -/** - * @brief Validate a bootenv structure. - * @param env Handle to a bootenv structure. - * @return 0 - * @return or error - */ -int bootenv_valid(bootenv_t env); - -/** - * @brief Create a new bootenv list structure. - * @return NULL on error - * @return or a new list handle. - * @note This structure is used to store values in a list. - *       A useful addition when handling PDD strings. - */ -int bootenv_list_create(bootenv_list_t *list); - -/** - * @brief Destroy a bootenv list structure - * @param list	Handle to a bootenv list structure. - * @return 0 - * @return or error - */ -int bootenv_list_destroy(bootenv_list_t *list); - -/** - * @brief Import a list from a comma seperated string - * @param list	Handle to a bootenv list structure. - * @param str		Comma seperated string list. - * @return 0 - * @return or error - */ -int bootenv_list_import(bootenv_list_t list, const char *str); - -/** - * @brief Export a list to a string of comma seperated values. - * @param list	Handle to a bootenv list structure. - * @return NULL one error - * @return or pointer to a newly allocated string. - * @warning Free the allocated memory by yourself! - */ -int bootenv_list_export(bootenv_list_t list, char **string); - -/** - * @brief Add an item to the list. - * @param list	A handle of a list structure. - * @param item	An item. - * @return 0 - * @return or error - */ -int bootenv_list_add(bootenv_list_t list, const char *item); - -/** - * @brief Remove an item from the list. - * @param list	A handle of a list structure. - * @param item	An item. - * @return 0 - * @return or error - */ -int bootenv_list_remove(bootenv_list_t list, const char *item); - -/** - * @brief Check if a given item is in a given list. - * @param list	A handle of a list structure. - * @param item	An item. - * @return 1 Item is in list. - * @return 0 Item is not in list. - */ -int bootenv_list_is_in(bootenv_list_t list, const char *item); - - -/** - * @brief Convert a list into a vector of all values inside the list. - * @param list	Handle to a bootenv structure. - * @param size	The size of the allocated vector structure. - * @return 0 - * @return or error - * @warning Free the allocate memory yourself! - */ -int bootenv_list_to_vector(bootenv_list_t list, size_t *size, -			   const char ***vector); - -/** - * @brief Convert a list into a vector of all values inside the list. - * @param list	Handle to a bootenv structure. - * @param size	The size of the allocated vector structure. - * @return 0 - * @return or error - * @warning Free the allocate memory yourself! - */ -int bootenv_list_to_num_vector(bootenv_list_t list, size_t *size, -					uint32_t **vector); - -#ifdef __cplusplus -} -#endif -#endif /*__BOOTENV_H__ */ diff --git a/ubi-utils/inc/config-h.in b/ubi-utils/inc/config-h.in deleted file mode 100644 index ce4998b..0000000 --- a/ubi-utils/inc/config-h.in +++ /dev/null @@ -1,74 +0,0 @@ -/* inc/config-h.in.  Generated from configure.ac by autoheader.  */ - -/* Build CPU */ -#undef BUILD_CPU - -/* Build OS */ -#undef BUILD_OS - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you have the <errno.h> header file. */ -#undef HAVE_ERRNO_H - -/* Define to 1 if you have the <inttypes.h> header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the <memory.h> header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the <stdint.h> header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the <stdlib.h> header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the <string.h> header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the <sys/types.h> header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Host CPU */ -#undef HOST_CPU - -/* Host OS */ -#undef HOST_OS - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION - -/* Define to 1 if your processor stores words with the most significant byte -   first (like Motorola and SPARC, unlike Intel and VAX). */ -#undef WORDS_BIGENDIAN diff --git a/ubi-utils/inc/crc32.h b/ubi-utils/inc/crc32.h deleted file mode 100644 index 31362b0..0000000 --- a/ubi-utils/inc/crc32.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef __CRC32_H__ -#define __CRC32_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. - */ - -/* - * Author: Thomas Gleixner - * - * CRC32 functions - * - * Can be compiled as seperate object, but is included into the ipl source - * so gcc can inline the functions. We optimize for size so the omission of - * the function frame is helpful. - * - */ -#include <stdint.h> - -void init_crc32_table(uint32_t *table); -uint32_t clc_crc32(uint32_t *table, uint32_t crc, void *buf, int len); - -#endif /* __CRC32_H__ */ diff --git a/ubi-utils/inc/error.h b/ubi-utils/inc/error.h deleted file mode 100644 index 25a1cee..0000000 --- a/ubi-utils/inc/error.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef __ERROR_H__ -#define __ERROR_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. - */ - -#include <stdio.h> - -void error_initlog(const char *logfile); -int read_procfile(FILE *fp_out, const char *procfile); - -void __err_ret(const char *fmt, ...); -void __err_sys(const char *fmt, ...); -void __err_msg(const char *fmt, ...); -void __err_quit(const char *fmt, ...); -void __err_dump(const char *fmt, ...); - -void info_msg(const char *fmt, ...); - -#ifdef DEBUG -#define __loc_msg(str) do {					\ -	__err_msg("[%s. FILE: %s FUNC: %s LINE: %d]\n",		\ -		str, __FILE__, __FUNCTION__, __LINE__);		\ -} while (0) -#elif -#define __loc_msg(str) -#endif - - -#define err_dump(fmt, ...) do {					\ -	__loc_msg("ErrDump");					\ -	__err_dump(fmt, ##__VA_ARGS__);				\ -} while (0) - -#define err_quit(fmt, ...) do {					\ -	__loc_msg("ErrQuit");					\ -	__err_quit(fmt, ##__VA_ARGS__);				\ -} while (0) - - -#define err_ret(fmt, ...) do {					\ -	__loc_msg("ErrRet");					\ -	__err_ret(fmt, ##__VA_ARGS__);				\ -} while (0) - -#define err_sys(fmt, ...) do {					\ -	__loc_msg("ErrSys");					\ -	__err_sys(fmt, ##__VA_ARGS__);				\ -} while (0) - -#define err_msg(fmt, ...) do {					\ -	__loc_msg("ErrMsg");					\ -	__err_msg(fmt, ##__VA_ARGS__);				\ -} while (0) - -#define log_msg(fmt, ...) do {					\ -		/* __loc_msg("LogMsg");	*/			\ -	__err_msg(fmt, ##__VA_ARGS__);				\ -} while (0) - -#ifdef DEBUG -#define dbg_msg(fmt, ...) do {					\ -	__loc_msg("DbgMsg");					\ -	__err_msg(fmt, ##__VA_ARGS__);				\ -} while (0) -#elif -#define dbg_msg(fmt, ...) -#endif - -#endif /* __ERROR_H__ */ diff --git a/ubi-utils/inc/example_ubi.h b/ubi-utils/inc/example_ubi.h deleted file mode 100644 index 23c7b54..0000000 --- a/ubi-utils/inc/example_ubi.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __EXAMPLE_UBI_H__ -#define __EXAMPLE_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. - */ - -/** - * Defaults for our cards. - */ -#define EXAMPLE_UBI_DEVICE	 0 -#define EXAMPLE_BOOTENV_VOL_ID_1 4 -#define EXAMPLE_BOOTENV_VOL_ID_2 5 - -#endif /* __EXAMPLE_UBI_H__ */ diff --git a/ubi-utils/inc/list.h b/ubi-utils/inc/list.h deleted file mode 100644 index e8452a2..0000000 --- a/ubi-utils/inc/list.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef __LIST_H__ -#define __LIST_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. - * - * Author: Oliver Lohmann - */ - -#include <stdint.h> - -#define foreach(elem, ptr, list)				\ -	for (elem = list != NULL ? (typeof(elem)) head(list)	\ -				 : NULL, ptr = list;		\ -		ptr != NULL;					\ -		ptr = tail(ptr),				\ -		elem = (typeof(elem)) ptr ? head(ptr) : NULL) - -typedef struct node* list_t; -typedef void* info_t; -typedef int  (*free_func_t)(info_t*); -typedef int  (*cmp_func_t)(info_t, info_t); -typedef void (*process_func_t)(info_t); - -struct node { -	list_t next; -	info_t	info; -}; - -list_t mk_empty(void); -int    is_empty(list_t l); -info_t is_in(cmp_func_t cmp, info_t e, list_t l); -info_t head(list_t l); -list_t tail(list_t l); -list_t remove_head(list_t l); -list_t cons(info_t e, list_t l); -list_t prepend_elem(info_t e, list_t); -list_t append_elem(info_t e, list_t); -list_t remove_all(free_func_t free_func, list_t l); -list_t insert_sorted(cmp_func_t cmp_func, info_t e, list_t l); -void   apply(process_func_t process_func, list_t l); - -#endif /* __LIST_H__ */ diff --git a/ubi-utils/inc/nandecc.h b/ubi-utils/inc/nandecc.h deleted file mode 100644 index fb5d529..0000000 --- a/ubi-utils/inc/nandecc.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef _NAND_ECC_H -#define _NAND_ECC_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. - * - * NAND ecc functions - */ - -#include <stdint.h> - -extern int nand_calculate_ecc(const uint8_t *dat, uint8_t *ecc_code); -extern int nand_correct_data(uint8_t *dat, const uint8_t *fail_ecc); - -#endif diff --git a/ubi-utils/inc/peb.h b/ubi-utils/inc/peb.h deleted file mode 100644 index 246bce8..0000000 --- a/ubi-utils/inc/peb.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef __RAW_BLOCK_H__ -#define __RAW_BLOCK_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. - * - * Author: Oliver Lohmann - */ - -#include <stdint.h> -#include <stdio.h> - -typedef struct peb *peb_t; -struct peb { -	uint32_t num;		/* Physical eraseblock number -				 * in the RAW file. */ -	uint32_t size;		/* Data Size (equals physical -				 * erase block size) */ -	uint8_t* data;		/* Data buffer */ -}; - -int  peb_new(uint32_t peb_num, uint32_t peb_size, peb_t* peb); -int  peb_free(peb_t* peb); -int  peb_cmp(peb_t peb_1, peb_t peb_2); -int  peb_write(FILE* fp_out, peb_t peb); -void peb_dump(FILE* fp_out, peb_t peb); - -#endif /* __RAW_BLOCK_H__ */ diff --git a/ubi-utils/inc/pfi.h b/ubi-utils/inc/pfi.h deleted file mode 100644 index 8c5cc07..0000000 --- a/ubi-utils/inc/pfi.h +++ /dev/null @@ -1,244 +0,0 @@ -#ifndef __pfi_h -#define __pfi_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. - */ - -/** - * @file pfi.h - * - * @author Oliver Lohmann <oliloh@de.ibm.com> - *         Andreas Arnez <arnez@de.ibm.com> - *         Joern Engel <engeljoe@de.ibm.com> - *         Frank Haverkamp <haverkam@de.ibm.com> - * - * @brief libpfi will hold all code to create and process pfi - * images. Definitions made in this file are equaly usable for the - * development host and the target system. - * - * @note This header additionally holds the official definitions for - * the pfi headers. - */ - -#include <stdio.h>		/* FILE */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Definitions. */ - -#define PFI_HDRVERSION 1	/* current header version */ - -#define PFI_ENOVERSION 1	/* unknown version */ -#define PFI_ENOHEADER  2	/* not a pfi header */ -#define PFI_EINSUFF    3	/* insufficient information */ -#define PFI_EUNDEF     4	/* key not defined */ -#define PFI_ENOMEM     5	/* out of memory */ -#define PFI_EBADTYPE   6	/* bad data type */ -#define PFI_EFILE      7	/* file I/O error: see errno */ -#define PFI_EFILEINVAL 8	/* file format not valid */ -#define PFI_EINVAL     9	/* invalid parameter */ -#define PFI_ERANGE     10	/* invalid range */ -#define PFI_EMODE      11	/* expecting other mode in this header */ -#define PFI_DATA_START 12	/* data section starts */ -#define PFI_EMAX       13	/* should be always larger as the largest -				   error code */ - -#define PFI_LABEL_LEN  64	/* This is the maximum length for a -				   PFI header label */ -#define PFI_KEYWORD_LEN 32	/* This is the maximum length for an -				   entry in the mode and type fields */ - -#define PFI_UBI_MAX_VOLUMES 128 -#define PFI_UBI_VOL_NAME_LEN 127 - -/** - * @brief The pfi header allows to set flags which influence the flashing - * behaviour. - */ -#define PFI_FLAG_PROTECTED   0x00000001 - - -/** - * @brief Handle to pfi header. Used in most of the functions associated - * with pfi file handling. - */ -typedef struct pfi_header *pfi_header; - - -/** - * @brief Initialize a pfi header object. - * - * @param head	 Pointer to handle. This function allocates memory - *		 for this data structure. - * @return	 0 on success, otherwise: - *		 PFI_ENOMEM : no memory available for the handle. - */ -int pfi_header_init (pfi_header *head); - - -/** - * @brief Destroy a pfi header object. - * - * @param head	 handle. head is invalid after calling this function. - * @return	 0 always. - */ -int pfi_header_destroy (pfi_header *head); - - -/** - * @brief Add a key/value pair to a pfi header object. - * - * @param head	 handle. - * @param key	 pointer to key string. Must be 0 terminated. - * @param value	 pointer to value string. Must be 0 terminated. - * @return	 0 on success, otherwise: - *		 PFI_EUNDEF   : key was not found. - *		 PFI_ENOMEM   : no memory available for the handle. - *		 PFI_EBADTYPE : value is not an hex string. This happens - *				 when the key stores an integer and the - *				 new value is not convertable e.g. not in - *				 0xXXXXXXXX format. - */ -int pfi_header_setvalue (pfi_header head, -			  const char *key, const char *value); - - -/** - * @brief Add a key/value pair to a pfi header object. Provide the - * value as a number. - * - * @param head	 handle. - * @param key	 pointer to key string. Must be 0 terminated. - * @param value	 value to set. - * @return	 0 on success, otherwise: - *		 PFI_EUNDEF   : key was not found. - *		 PFI_EBADTYPE : value is not a string. This happens - *				 when the key stores a string. - */ -int pfi_header_setnumber (pfi_header head, -			   const char *key, uint32_t value); - - -/** - * @brief For a given key, return the numerical value stored in a - * pfi header object. - * - * @param head	 handle. - * @param key	 pointer to key string. Must be 0 terminated. - * @param value	 pointer to value. - * @return	 0 on success, otherwise: - *		 PFI_EUNDEF   : key was not found. - *		 PFI_EBADTYPE : stored value is not an integer but a string. - */ -int pfi_header_getnumber (pfi_header head, -			   const char *key, uint32_t *value); - - -static inline uint32_t -pfi_getnumber(pfi_header head, const char *key) -{ -	uint32_t value; -	pfi_header_getnumber(head, key, &value); -	return value; -} - -/** - * @brief For a given key, return the string value stored in a pfi - * header object. - * - * @param head	 handle. - * @param key	 pointer to key string. Must be 0 terminated. - * @param value	 pointer to value string. Memory must be allocated by the user. - * @return	 0 on success, otherwise: - *		 PFI_EUNDEF   : key was not found. - *		 PFI_EBADTYPE : stored value is not a string but an integer. - */ -int pfi_header_getstring (pfi_header head, -			   const char *key, char *value, size_t size); - - -/** - * @brief Write a pfi header object into a given file. - * - * @param out	 output stream. - * @param head	 handle. - * @return	 0 on success, error values otherwise: - *		 PFI_EINSUFF   : not all mandatory fields are filled. - *		 PFI_ENOHEADER : wrong header version or magic number. - *		 -E*		: see <asm/errno.h>. - */ -int pfi_header_write (FILE *out, pfi_header head); - - -/** - * @brief Read a pfi header object from a given file. - * - * @param in	 input stream. - * @param head	 handle. - * @return	 0 on success, error values otherwise: - *		 PFI_ENOVERSION: unknown header version. - *		 PFI_EFILE     : cannot read enough data. - *		 PFI_ENOHEADER : wrong header version or magic number. - *		 -E*		: see <asm/errno.h>. - * - * If the header verification returned success the user can assume that - * all mandatory fields for a particular version are accessible. Checking - * the return code when calling the get-function for those keys is not - * required in those cases. For optional fields the checking must still be - * done. - */ -int pfi_header_read (FILE *in, pfi_header head); - - -/** - * @brief Display a pfi header in human-readable form. - * - * @param out	 output stream. - * @param head	 handle. - * @return	 always 0. - * - * @note Prints out that it is not implemented and whom you should - * contact if you need it urgently!. - */ -int pfi_header_dump (FILE *out, pfi_header head); - - -/* - * @brief	 Iterates over a stream of pfi files. The iterator function - *		 must advance the file pointer in FILE *in to the next pfi - *		 header. Function exists on feof(in). - * - * @param in	 input file descriptor, must be open and valid. - * @param func	 iterator function called when pfi header could be - *		 read and was validated. The function must return 0 on - *		 success. - * @return	 See pfi_header_init and pfi_header_read. - *		 PFI_EINVAL	  : func is not valid - *		 0 ok. - */ -typedef int (* pfi_read_func)(FILE *in, pfi_header hdr, void *priv_data); - -int pfi_read (FILE *in, pfi_read_func func, void *priv_data); - - -#ifdef __cplusplus -} -#endif - -#endif /* __pfi_h */ diff --git a/ubi-utils/inc/pfiflash.h b/ubi-utils/inc/pfiflash.h deleted file mode 100644 index fc2eede..0000000 --- a/ubi-utils/inc/pfiflash.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef __PFIFLASH_H__ -#define __PFIFLASH_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. - */ - -/** - * - * @file pfi.h - * - * @author Oliver Lohmann <oliloh@de.ibm.com> - * - * @brief The pfiflash library offers an interface for using the - * pfiflash * utility. - */ - -#include <stdio.h>		/* FILE */ - -#define PFIFLASH_MAX_ERR_BUF_SIZE 1024 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum pdd_handling_t -{ -	PDD_KEEP = 0, -	PDD_MERGE, -	PDD_OVERWRITE, -	PDD_HANDLING_NUM, /* always the last item */ -} pdd_handling_t; /**< Possible PDD handle algorithms. */ - -/** - * @brief Flashes a PFI file to UBI Device 0. - * @param complete	[0|1] Do a complete system update. - * @param seqnum	Index in a redundant group. - * @param pdd_handling	The PDD handling algorithm. - * @param err_buf	An error buffer. - * @param err_buf_size	Size of the error buffer. - */ -int pfiflash(FILE* pfi, int complete, int seqnum, pdd_handling_t pdd_handling, -		char *err_buf, size_t err_buf_size); - -#ifdef __cplusplus -} -#endif - -#endif /* __PFIFLASH_H__ */ diff --git a/ubi-utils/inc/reader.h b/ubi-utils/inc/reader.h deleted file mode 100644 index 93c15e3..0000000 --- a/ubi-utils/inc/reader.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef __READER_H__ -#define __READER_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. - * - * Author: Oliver Lohmann - * - * Read Platform Description Data (PDD). - */ - -#include <stdint.h> -#include <stdio.h> - -#include "pfi.h" -#include "bootenv.h" -#include "list.h" - -typedef enum flash_type_t { -	NAND_FLASH = 0, -	NOR_FLASH, -} flash_type_t; - -typedef struct pdd_data *pdd_data_t; -typedef struct pfi_raw	*pfi_raw_t; -typedef struct pfi_ubi	*pfi_ubi_t; - -struct pdd_data { -	uint32_t flash_size; -	uint32_t eb_size; -	uint32_t vid_hdr_offset; -	flash_type_t flash_type; -}; - -struct pfi_raw { -	uint32_t data_size; -	uint32_t *starts; -	uint32_t starts_size; -}; - -struct pfi_ubi { -	uint32_t data_size; -	uint32_t alignment; -	uint32_t *ids; -	uint32_t ids_size; -	char	 **names; -	uint32_t names_size; -	uint32_t size; -	enum { pfi_ubi_dynamic, pfi_ubi_static } type; -	int curr_seqnum; /* specifies the seqnum taken in an update, -			    default: 0 (used by pfiflash, ubimirror) */ -}; - -int read_pdd_data(FILE* fp_pdd, pdd_data_t *pdd_data, -		char *err_buf, size_t err_buf_size); -int read_pfi_raw(pfi_header pfi_hd, FILE* fp_pfi, pfi_raw_t *pfi_raw, -		const char *label, char *err_buf, size_t err_buf_size); -int read_pfi_ubi(pfi_header pfi_hd, FILE* fp_pfi, pfi_ubi_t *pfi_ubi, -		const char *label, char *err_buf, size_t err_buf_size); - -/** - * @brief Reads all pfi headers into list structures, separated by - *	  RAW and UBI sections. - */ -int read_pfi_headers(list_t *pfi_raws, list_t *pfi_ubis, FILE* fp_pfi, -		char* err_buf, size_t err_buf_size); -int free_pdd_data(pdd_data_t *pdd_data); -int free_pfi_raw(pfi_raw_t *raw_pfi); -int free_pfi_ubi(pfi_ubi_t *pfi_ubi); - -#endif /* __READER_H__ */ diff --git a/ubi-utils/inc/ubigen.h b/ubi-utils/inc/ubigen.h deleted file mode 100644 index 9e9e8ec..0000000 --- a/ubi-utils/inc/ubigen.h +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef __UBIGEN_H__ -#define __UBIGEN_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. - * - * Author: Frank Haverkamp - * - * An utility to update UBI volumes. - */ - -#include <stdio.h> /* FILE */ -#include <stdint.h> -#include <mtd/ubi-header.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#define DEFAULT_BLOCKSIZE	(128 * 1024) -#define DEFAULT_PAGESIZE	(2*1024) - -#define EUBIGEN_INVALID_TYPE		1 -#define EUBIGEN_INVALID_HDR_OFFSET	2 -#define EUBIGEN_INVALID_ALIGNMENT	3 -#define EUBIGEN_TOO_SMALL_EB		4 -#define EUBIGEN_MAX_ERROR		5 - - -typedef enum action { -	NO_ERROR	 = 0x00000000, -	BROKEN_HDR_CRC	 = 0x00000001, -	BROKEN_DATA_CRC	 = 0x00000002, -	BROKEN_DATA_SIZE = 0x00000004, -	BROKEN_OMIT_BLK	 = 0x00000008, -	MARK_AS_UPDATE	 = 0x00000010, -} ubigen_action_t; - -typedef struct ubi_info *ubi_info_t; - -/** - * @brief	  Initialize the internal CRC32 table. - * @note	  Necessary because of the used crc32 function in UBI. - *		  A usage of CRC32, from e.g. zlib will fail. - */ -void ubigen_init(void); - -/** - * @brief	  Create an ubigen handle. - * @param  ... - * @return 0	  On sucess. - *	   else	  Error. - * @note	  This parameterlist is ugly. But we have to use - *		  two big structs and meta information internally, - *		  filling them would be even uglier. - */ -int ubigen_create(ubi_info_t *u, uint32_t vol_id, uint8_t vol_type, -		  uint32_t eb_size, uint64_t ec, uint32_t alignment, -		  uint8_t version, uint32_t vid_hdr_offset, -		  uint8_t compat_flag, size_t data_size, -		  FILE* fp_in, FILE* fp_out); - -/** - * @brief	  Destroy an ubigen handle. - * @param  u	  Handle to free. - * @return 0	  On success. - *	   else	  Error. - */ -int ubigen_destroy(ubi_info_t *u); - -/** - * @brief	  Get number of total logical EBs, necessary for the - *		  complete storage of data in the handle. - * @param  u	  The handle. - * @return 0	  On success. - *	   else	  Error. - */ -int ubigen_get_leb_total(ubi_info_t u, size_t* total); - -/** - * @brief	  Get the size in bytes of one logical EB in the handle. - * @param  u	  The handle. - * @return 0	  On success. - *	   else	  Error. - */ -int ubigen_get_leb_size(ubi_info_t u, size_t* size); - - -/** - * @brief	  Write a logical EB (fits exactly into 1 physical EB). - * @param  u	  Handle which holds all necessary data. - * @param  action Additional operations which shall be applied on this - *		  logical eraseblock. Mostly injecting artifical errors. - * @return 0	  On success. - *	   else	  Error. - */ -int ubigen_write_leb(ubi_info_t u, ubigen_action_t action); - -/** - * @brief	  Write a complete array of logical eraseblocks at once. - * @param  u	  Handle which holds all necessary data. - * @return 0	  On success. - *	   else	  Error. - */ -int ubigen_write_complete(ubi_info_t u); - -/** - * @brief	  Write a single block which is extracted from the - *		  binary input data. - * @param  u	  Handle which holds all necessary data. - * @param  blk	  Logical eraseblock which shall hold a inc. copy entry - *		  and a bad data crc. - * @return 0	  On success. - *	   else	  Error. - */ -int ubigen_write_broken_update(ubi_info_t u, uint32_t blk); - -/** - * @brief	  Use the current ubi_info data and some additional data - *		  to set an UBI volume table entry from it. - * @param  u	  Handle which holds some of the necessary data. - * @param  res_bytes Number of reserved bytes which is stored in the volume - *		     table entry. - * @param  name	   A string which shall be used as a volume label. - * @param  lvol_r  A pointer to a volume table entry. - * @return 0	   On success. - *	   else	   Error. - */ -int ubigen_set_lvol_rec(ubi_info_t u, size_t reserved_bytes, -		const char* name, struct ubi_vol_tbl_record *lvol_rec); - -#ifdef __cplusplus -} -#endif - -#endif /* __UBIGEN_H__ */ diff --git a/ubi-utils/inc/ubimirror.h b/ubi-utils/inc/ubimirror.h deleted file mode 100644 index 893f5ce..0000000 --- a/ubi-utils/inc/ubimirror.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef __UBIMIRROR_H__ -#define __UBIMIRROR_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. - * - * Author: Oliver Lohmann - * - * An utility to mirror UBI volumes. - */ - -#include <stdint.h> - -/** - * @def EUBIMIRROR_SRC_EQ_DST - *	@brief Given source volume is also in the set of destination volumes. - */ -#define EUBIMIRROR_SRC_EQ_DST	20 - -/** - * @def EUBIMIRROR_NO_SRC - *	@brief The given source volume does not exist. - */ -#define EUBIMIRROR_NO_SRC	21 - -/** - * @def EUBIMIRROR_NO_DST - *	@brief One of the given destination volumes does not exist. - */ -#define EUBIMIRROR_NO_DST	22 - -/** - * @brief Mirrors UBI devices from a source device (specified by seqnum) - *	  to n target devices. - * @param devno Device number used by the UBI operations. - * @param seqnum An index into ids (defines the src_id). - * @param ids An array of ids. - * @param ids_size The number of entries in the ids array. - * @param err_buf A buffer to store verbose error messages. - * @param err_buf_size The size of the error buffer. - * - * @note A seqnum of value < 0 defaults to a seqnum of 0. - * @note A seqnum exceeding the range of ids_size defaults to 0. - * @note An empty ids list results in a empty stmt. - * @pre	The UBI volume which shall be used as source volume exists. - * @pre	The UBI volumes which are defined as destination volumes exist. - * @post The content of the UBI volume which was defined as source volume - *	 equals the content of the volumes which were defined as destination. - */ -int ubimirror(uint32_t devno, int seqnum, uint32_t* ids, size_t ids_size, -	      char *err_buf, size_t err_buf_size); - -#endif /* __UBIMIRROR_H__ */ | 
