/*************************************************************************** * __________ __ ___. * Open \______ \ ____ ____ | | _\_ |__ _______ ___ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ * \/ \/ \/ \/ \/ * $Id$ * * Copyright (C) 2013 by Amaury Pouly * * 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 software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ****************************************************************************/ #ifndef MKZENBOOT_H #define MKZENBOOT_H #include #include #include #ifdef __cplusplus extern "C" { #endif enum zen_error_t { ZEN_SUCCESS = 0, ZEN_ERROR = -1, ZEN_OPEN_ERROR = -2, ZEN_READ_ERROR = -3, ZEN_NO_MATCH = -4, ZEN_BOOT_INVALID = -5, ZEN_BOOT_MISMATCH = -6, ZEN_BOOT_CHECKSUM_ERROR = -7, ZEN_DONT_KNOW_HOW_TO_PATCH = -8, ZEN_WRITE_ERROR = -9, ZEN_UNSUPPORTED = 10, ZEN_FW_INVALID = -11, ZEN_FW_MISMATCH = -12, ZEN_FIRST_ZENTOOLS_ERROR = -12, }; enum zen_output_type_t { ZEN_DUALBOOT = 0, /* keep all OF data and pack OF+RB into firmware for dualboot */ ZEN_MIXEDBOOT, /* rename OF, keep data, put RB as firmware, use RB bootloader to dualboot */ ZEN_RECOVERY, /* only put rockbox with recovery mode */ ZEN_SINGLEBOOT, /* only put rockbox with recovery mode */ }; /* Supported models */ enum zen_model_t { MODEL_UNKNOWN = 0, MODEL_ZENMOZAIC, MODEL_ZENV, MODEL_ZENXFI, MODEL_ZEN, /* new models go here */ NUM_MODELS }; struct zen_option_t { bool debug; enum zen_output_type_t output; enum zen_model_t model; /* pass MODEL_UNKNOWN to use MD5 knowledge base */ }; enum zen_error_t mkzenboot(const char *infile, const char *bootfile, const char *outfile, struct zen_option_t opt); #ifdef __cplusplus } #endif #endif