/** @file DHL_UTL.c @brief PHOENIX HAL library Copyright 2006~2010 Digital STREAM Technology, Inc. All Rights Reserved */ #include "DHL_OSAL.h" #include "DHL_DBG.h" #include "DHL_UTL.h" /* ¸ðµç Çì´õ ÆÄÀÏÀ» Æ÷ÇÔÇÏÁö´Â ¾ÊÀ¸¸ç, compile timeÀ» ÁÙÀ̱â À§ÇØ °¢ ¸ðµâÀº ÇÊ¿äÇÑ ¸¸Å­ÀÇ Çì´õ¸¦ ¼±¾ðÇϵµ·Ï ÇÔ. */ /* DHL µð¹ö±× ¸ðµâ À̸§ Á¤ÀÇ ·ê Âü°í: DHL ¸ðµâµéÀº ¸ðµÎ * ·Î ½ÃÀÛ. API´Â ´ë¹®ÀÚ, Platform ¹× ±âŸ´Â ¼Ò¹®ÀÚ »ç¿ë. µðÆúÆ® ·¹º§Àº 0À¸·Î ¼³Á¤ÇÑ´Ù. (0: ¿¡·¯ ¸Þ½ÃÁö¸¸ Ãâ·Â) */ //DHL_MODULE("*UTL", 0); #if COMMENT ____Config____(){} #endif /* ÀÌ ¸ðµâ ³»ºÎ¿¡¼­ »ç¿ëµÇ´Â °¢Á¾ configuration Á¤ÀÇ. */ /* #define SUPPORT_FAST_SWITCHING_OPTIMIZATION 1 */ /* #define FUNC_MONITOR_TIMER_ID TIMER_ID_FUNC_MONITOR */ #if COMMENT ____Types____(){} #endif /* ÀÌ ¸ðµâ ³»ºÎ¿¡¼­ »ç¿ëµÇ´Â structure ¹× enumerations. */ #if COMMENT ____Variables____(){} #endif /* global·Î Àû¿ëµÇ´Â variable Á¤ÀÇ. °¢ function º°·Î Ư¼öÇÑ ¿ëµµÀÇ variableÀº °¢ functionX block ¿¡¼­ Á¤ÀÇ °¡´É. */ #if COMMENT ____API____(){} #endif static UINT32 dhl_crcTable[256]; static BOOLEAN dhl_CRCInited; #define DEMUX_CRC_ADDER_MASK 0x04C11DB7 /* As defined in MPEG-2 CRC */ void dhl_InitCRC(void) { UINT32 crc; INT32 i, j; if (dhl_CRCInited) return; // Initialize CRC table for (i=0; i<256; i++) { crc = 0; for (j=7; j>=0; j--) { if (((i >> j) ^ (crc >> 31)) & 1) { crc=(crc<<1)^DEMUX_CRC_ADDER_MASK; } else { crc<<=1; } } dhl_crcTable[i] = crc; } dhl_CRCInited = TRUE; } UINT32 DHL_UTL_CalcCRC32(UINT32 crc_start, const UINT8 *data, UINT32 len) { UINT32 crc = crc_start; UINT32 i; if (!dhl_CRCInited) { dhl_InitCRC(); } for (i = 0; i < len; ++i) { crc = (crc << 8) ^ dhl_crcTable[(crc >> 24) ^ (*data++)]; } return(crc); } #if COMMENT ____Debug____(){} #endif #if COMMENT ____Symbol____(){} #endif #if DHL_REGISTER_DEUBG_SYMBOLS static DHL_SymbolTable _XxxxSymbols[] = { /* however, if you want typing short-cut, it is good usage. */ /* DHL_FNC_SYM_ENTRY2("epg_start", App_EpgUpdateStart), DHL_FNC_SYM_ENTRY2("epg_stop", App_EpgUpdateCancel), DHL_FNC_SYM_ENTRY2("epg_list", Dmc_EpgPrintAllTables), DHL_FNC_SYM_ENTRY2("epg_delete", App_EpgDeleteAll), DHL_VAR_SYM_ENTRY(g_XX_TestMode),*/ 0, }; #endif /* DHL_REGISTER_DEUBG_SYMBOLS */ #if COMMENT ____Init____(){} #endif /* end of file */