ex

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers package_api.h Source File

package_api.h

00001 
00002 #ifndef _MBED_PACK_INCLUDE_
00003 #define _MBED_PACK_INCLUDE_
00004 
00005 #ifdef __cplusplus
00006 #define MBEDPACK_EXTERN extern "C"
00007 #else
00008 #define MBEDPACK_EXTERN extern
00009 #endif
00010 
00011 #include "pack_include.h"
00012 #include <stdint.h>
00013 
00014 ///
00015 /// all modules type can included in package
00016 /*typedef enum _module_type {
00017     ModuleTypeALL,
00018     ModuleTypeJS,
00019     ModuleTypeSO,
00020     ModuleTypeBIN,
00021     ModuleTypeJSON,
00022     ModuleTypeIMG
00023 } module_type_t;
00024 */
00025 ///
00026 /// package type : a package can contain app, os or profile
00027 /*typedef enum _package_type {
00028     PackageTypeApp,
00029     PackageTypeOS,
00030     PackageTypeProfile,
00031     PackageTypeUnknown
00032 } package_type_t;
00033 */
00034 /*
00035 typedef enum {
00036     false = 0,
00037     true
00038 } bool;*/
00039 
00040 
00041 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
00042 
00043 
00044 /**
00045  * verification init
00046  *
00047  * \return verification context if success, or NULL
00048  */
00049 MBEDPACK_EXTERN void* mbed_verification_init();
00050 
00051 /**
00052  * verification update context
00053  *
00054  * \param ctx verification context
00055  * \param buffer data to update context
00056  * \param buffer_size data size
00057  */
00058 MBEDPACK_EXTERN void mbed_verification_update_ctx(void* ctx, unsigned char* buffer, uint32_t buffer_size);
00059 
00060 /**
00061  * verify
00062  *
00063  * \param ctx verification context
00064  *
00065  * \return 0 if success, or fail
00066  */
00067 MBEDPACK_EXTERN int mbed_verification(void* ctx);
00068 
00069 
00070 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
00071 
00072 
00073 /**
00074  *
00075  * package decompress
00076  *
00077  * \return decompress context
00078  */
00079 MBEDPACK_EXTERN void* mbed_decompress_init();
00080 
00081 
00082 /**
00083  *
00084  * package decompress process
00085  *
00086  * \param ctx decompress context
00087  * \param buffer data to decompress
00088  * \param bufferSZ buffer size
00089  * \param lFileHandle fs file index
00090  *
00091  * \return process state
00092  */
00093 MBEDPACK_EXTERN int mbed_decompress_process(void * verify_cxt, void* ctx, unsigned char* buffer, uint32_t bufferSZ, struct IOtaUpdater *updater, void *update_cxt);
00094 
00095 
00096 /**
00097  *
00098  * package decompress uninit
00099  *
00100  * \param ctx decompress context
00101  *
00102  */
00103 MBEDPACK_EXTERN void mbed_decompress_uninit(void* ctx);
00104 
00105 
00106 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
00107 
00108 
00109 
00110 /**
00111  *
00112  * package info collector init
00113  *
00114  * \return ctx collector context
00115  *
00116  */
00117 MBEDPACK_EXTERN void* mbed_data_collector_init(unsigned char* filename);
00118 
00119 
00120 /**
00121  *
00122  * package info collector uninit
00123  *
00124  * \param ctx collector context
00125  *
00126  */
00127 MBEDPACK_EXTERN void mbed_data_collector_uninit(void* ctx);
00128 
00129 
00130 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
00131 
00132 /**
00133  * get a certain type module count
00134 
00135  *
00136  * \param ctx package context
00137  * \param type module type of js , bin or all
00138  * \return module count of a certain type if success, or 0
00139  */
00140 MBEDPACK_EXTERN uint8_t pkg_get_module_count(void* ctx, module_type_t type);
00141 
00142 
00143 /**
00144 
00145  * get module handle
00146  *
00147  * \param ctx package context
00148  * \param type module type of js , bin or all
00149 
00150  * \param index index of module
00151  * \return module handle of a certain type if success, or 0
00152  */
00153 MBEDPACK_EXTERN void* /*handle*/pkg_acquire_module(void* ctx, module_type_t type, int index);
00154 
00155 
00156 /**
00157  * release module handle
00158  *
00159  * \param handle module handle to release
00160  */
00161 MBEDPACK_EXTERN void pkg_release_module(void* handle);
00162 
00163 
00164 /**
00165  * get module name
00166  *
00167  * \param handle module handle to operate module
00168  * \return module name if success, or NULL
00169  */
00170 MBEDPACK_EXTERN const char* pkg_get_module_name(void* handle);
00171 
00172 
00173 /**
00174  * get module version : software version or hardware version
00175  *
00176  * \param handle module handle to operate module
00177  * \param hardware_version version caller cared
00178  * \return module version if success, or NULL
00179  */
00180 MBEDPACK_EXTERN const char* pkg_get_module_version(void* handle, bool hardware_version);
00181 
00182 
00183 /**
00184  * get module offset and size, user can read module data from fs
00185  *
00186  * \param handle module handle to operate module
00187  * \param offset offset to the beginning of package
00188  * \param size module size if success or 0
00189  * \return 0 if success, or fail
00190  */
00191 MBEDPACK_EXTERN int pkg_locate_module_data(void* handle, uint32_t* offset, uint32_t* size);
00192 
00193 /**
00194  * get package name
00195  *
00196  * \param ctx package context
00197  * \param name package name
00198  * \param name_length length of name
00199  * \return 0 if success, 1 means no enough length buffer and return length need, or failed
00200  */
00201 MBEDPACK_EXTERN int pkg_get_pkg_name(void* ctx, unsigned char* name, uint8_t* name_length);
00202 
00203 /**
00204  * get package type
00205  *
00206  * \param ctx package context
00207  * \param type package type
00208  * \return 0 if success, or fail
00209  */
00210 MBEDPACK_EXTERN int pkg_get_pkg_type(void* ctx, package_type_t* type);
00211 
00212 #endif
00213 
00214