| #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, ssize_t ids_size, |
| char *err_buf, size_t err_buf_size); |
| |
| #endif /* __UBIMIRROR_H__ */ |