/**************************************************************************** * NAME: DMW_RfDownload.h *---------------------------------------------------------------------------- * Copyright (c) DIGITAL STREAM Technology Inc. *---------------------------------------------------------------------------- * CREATED_BY: Do Gon Lee * CREATION_DATE: 2009/08/28 * $Author: foxhunt $ * $Revision: 1.0 $ * $Date: 2009/08/28 10:47:19 $ *---------------------------------------------------------------------------- * PURPOSE: * - RF Update API *****************************************************************************/ #ifndef __DMW_RFDOWNLOAD_H__ #define __DMW_RFDOWNLOAD_H__ /*_____ I N C L U D E __________________________________________*/ /*_____ D E F I N I T I O N ____________________________________*/ #if COMMENT ____Types____(){} #endif typedef struct { UINT8 version_number; UINT16 table_id_extension; UINT32 private_data_length; UINT8 *private_data_byte; } prvt_t, *prvtPtr_t; typedef void *(*MEM_ALLOC_FN)(UINT32 size); typedef void (*MEM_FREE_FN)(void *ptr); /* ptrÀº freeÇÒ mem blockÀÇ ÁÖ¼ÒÀÌ´Ù. MEM_ALLOC_FN¿¡¼­ ¸®ÅÏµÈ ¹Ù·Î ±× °ªÀ̾î¾ß ÇÑ´Ù. */ typedef struct { /* Input argument; */ UINT16 Pid; UINT8 TableId; MEM_ALLOC_FN f_alloc; MEM_FREE_FN f_free; /* Result */ int NumPrvts; prvtPtr_t *PrvtList; /* NumPrvts ¸¸Å­ÀÇ element¸¦ °¡Áø pointer array. */ } RfDownloadInfo; typedef struct { int NumChunk; UINT8 **ChunkList; UINT32 *ChunkSize; UINT32 TotalPayloadSize; } DataChunkList; typedef enum { RFDOWNLOAD_REPORT_DOWNLOAD, /* download progress */ } RfDownloadReport; typedef void (*RFDOWNLOAD_CALLBACK)(RfDownloadReport, UINT32 value); #pragma pack(push,1) /* cafrii 070531, for new gcc compiler ¾Æ·¡ structure¸¦ ±×´ë·Î byte array¿¡ ´ëÀÀÇϵµ·Ï Çϱâ À§ÇØ. */ /* cafrii 070205, stage4_update.c ¿Í À̸§ÀÌ °ãÃļ­ À̸§ º¯°æ.. */ typedef struct { UINT8 svendor[16]; UINT8 sclass[16]; UINT8 smodel[16]; UINT8 sdesc[16]; } PNX_ID_TAG_V1; #pragma pack(pop) /*_____ F U N C T I O N ________________________________________*/ STATUS RfDownload_Download(RfDownloadInfo *pInfo, UINT32 nRxTimeOutSec, RFDOWNLOAD_CALLBACK callback, BOOLEAN (*checkfn)()); int RfDownload_VerifyHeader(RfDownloadInfo *pInfo, DataChunkList *list); void RfDownload_CleanUp(RfDownloadInfo *pInfo, DataChunkList *list); #endif /* __DMW_RFDOWNLOAD_H__ */