blob: 5066c459f6de9c7bd85d8fe8365bef3334fb0f25 [file] [log] [blame]
/*******************************************************************/
/************************* File Description ************************/
/*******************************************************************/
/* File Name: $Workfile: hmx_uprade.h $
* Version: $Revision: 1.0 $
* Original Author: Yang Hyun Uk $
* Current Author: $Author: huyang@humaxdigital.com $
* Date: $Date: 2011.09.30
* File Description: Upgrade APIs
* Module:
* Remarks:
*/
/**
* @defgroup UPGRADE Upgrade APIs
*/
/**
* @author Hyunuk Yang(huyang@humaxdigital.com)
* @date 30 Sept 2011
*/
/**
* @note
* Copyright (C) 2011 Humax Corporation. All Rights Reserved. <br>
* This software is the confidential and proprietary information
* of Humax Corporation. You may not use or distribute this software
* except in compliance with the terms and conditions of any applicable license
* agreement in writing between Humax Corporation and you.
*/
/*@{*/
/**
* @file hmx_upgrade.h
*/
/*******************************************************************/
/**************************** Header Files**************************/
/*******************************************************************/
/* Start Including Header Files */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <pthread.h>
#include <errno.h>
#include <assert.h>
#include <sys/queue.h>
#include <unistd.h>
#include <fcntl.h>
#include "hmx_upgrade_system.h"
#include "hmx_upgrade_flash.h"
/* End Including Headers*/
/*******************************************************************/
/************************ Extern variables *************************/
/*******************************************************************/
/* Start Extern variablee */
/* End Extern variable */
/*******************************************************************/
/************************ Macro Definition *************************/
/*******************************************************************/
/* Start Macro definition */
/* End Macro definition */
/*******************************************************************/
/****************************** typedef ****************************/
/*******************************************************************/
/* Start typedef */
typedef enum
{
HMX_UPGRADE_START, /**< */
HMX_UPGRADE_STOP, /**< */
HMX_UPGRADE_FETCH, /**< */
}HMX_UPGRADE_COMMAND_e;
typedef struct
{
HMX_UPGRADE_COMMAND_e command;
unsigned char * file_path;
}HMX_UPGRADE_COMMAND_t;
/**
* HMX_UPGRADE Status cases.
*/
typedef enum
{
HMX_UPGRADE_STARTED, /**< Upgrade Module is just started */
HMX_UPGRADE_GET_VERSION, /**< this comes with version information */
HMX_UPGRADE_READING, /**< reading file. Upgrade is in progress. */
HMX_UPGRADE_FLASHING, /**< Flashing. Upgrade is in progress. */
HMX_UPGRADE_DONE, /**< Upgrade is done without any error, After this message, Upgrade module will be destroy itself. */
HMX_UPGRADE_STOPED_BY_USER, /**< Upgrade is stopped by user. After this message, Upgrade module will be destroy itself. */
HMX_UPGRADE_FAILED, /**< Upgrade is failed, it shouldn't happen. After this message, Upgrade module will be destroy itself.*/
HMX_UPGRADE_VERSION_FAILED, /**< Upgrade is failed, version problem. */
HMX_UPGRADE_FILE_NOT_EXIST, /**< Upgrade is failed, there is no file exist */
HMX_UPGRADE_FILE_FORMAT_ERROR, /**< Upgrade is failed, file is not HDF Format */
}HMX_UPGRADE_EVENT_e;
/**
* HMX_UPGRADE_Status_Messages
*/
typedef struct
{
HMX_UPGRADE_EVENT_e event; /**< event from Upgrade module */
unsigned int percentage; /**< percentage progress */
unsigned int current_version; /**< version current */
unsigned int version_to_upgrade; /**< version to upgrade */
} HMX_UPGRADE_STATUS_Msg_t;
/**
* Prototype of upgrade event callback function <br>
* Callback can be added by HMX_UPGRADE_Start <br><br>
* HMX_UPGRADE_READING, HMX_UPGRADE_FLASHING events always comes with value of percentage.
*/
typedef void (*HMX_UpgradeEventCallback) (HMX_UPGRADE_STATUS_Msg_t * UpgradeStatusMessages);
/* End typedef */
/*******************************************************************/
/******************** global function prototype ********************/
/*******************************************************************/
/* Start global function prototypes */
extern HMX_UpgradeEventCallback g_fUpgradeStatusCallback;
/* End global function prototypes */
int HMX_UPGRADE_Start( HMX_UpgradeEventCallback callback, unsigned char * file);
int HMX_UPGRADE_Stop( void);
/*@}*/