summaryrefslogtreecommitdiff
path: root/ubi-utils/src/pfi.h
diff options
context:
space:
mode:
Diffstat (limited to 'ubi-utils/src/pfi.h')
-rw-r--r--ubi-utils/src/pfi.h244
1 files changed, 0 insertions, 244 deletions
diff --git a/ubi-utils/src/pfi.h b/ubi-utils/src/pfi.h
deleted file mode 100644
index 8c5cc07..0000000
--- a/ubi-utils/src/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 */