/**************************************************************************** * Copyright (c) 2004 Digital Stream Technologies Inc. All Rights Reserved. * * Module: dsthaldev.cpp * Author: Jun-ku Park, hwatk@dstreamtech.com * Description: DST HAL [Device] Platform/Project Indepedent Header * * notes: hwatk20040609 * * TO DO LIST * ***************************************************************************/ #ifndef __DST_HAL_DEV_H__ #define __DST_HAL_DEV_H__ /* Includes Platform-specific header */ /* * ¾ÆÁ÷ NFLASH, SFLASHÀÇ ÇÏÀ§ Device Driver°¡ ¿Ï·áµÇÁö ¾Ê¾ÒÀ¸¹Ç·Î, * ¿ì¼± FileÀ» »ý¼ºÇÏ¿©, NFLASH ¹× SFLASH ÇüÅ·Π»ç¿ëÇÑ´Ù. */ #define USE_EEPROM_FILE #define USE_NFLASH_FILE #define USE_SFLASH_FILE #if defined __cplusplus extern "C" { #endif #if defined(USE_EEPROM_FILE) #define EEPROM_FILE_PATH "./tmp_eeprom" #endif int DHL_DEV_ReadEEPROM(unsigned short addr,unsigned short length,unsigned char *rbuf); int DHL_DEV_WriteEEPROM(unsigned short WriteAddr,unsigned short length,unsigned char *wbuf); #if defined __cplusplus } #endif /**************************************************************************** NFLASH type definition & structures NFLASHState NFLASHID DST_DEV_NFLASH, P_DST_DEV_NFLASH ***************************************************************************/ typedef enum { NFLASHSTATE_UNKNOWN=0, NFLASHSTATE_INIT, NFLASHSTATE_START, NFLASHSTATE_STOP, NFLASHSTATE_MAX } NFLASHState; typedef enum { NFLASHID_0=1, NFLASHID_1, NFLASHID_2, NFLASHID_3, NFLASHID_4, NFLASHID_5, NFLASHID_6, NFLASHID_MAX } NFLASHID; typedef struct tag_DST_DEV_NFLASH { NFLASHState CurState; /* Current State */ NFLASHID NFlashId; /* NFlash Id. */ /* Mutex Id. */ /* NFLASH Information */ DS_U32 uSize; /* NFLASH Maximum Size */ DS_U32 uAvlStart; /* NFLASH Available Range Start */ DS_U32 uAvlEnd; /* NFLASH Available Range End */ /* Platform-specific information */ int nflash_fd; } *P_DST_DEV_NFLASH, DST_DEV_NFLASH; #if defined __cplusplus extern "C" { #endif DHL_RESULT DHL_DEV_InitNFLASH( NFLASHID NFlashId, DS_U32 Size, DS_U32 Start, DS_U32 End ); int DHL_DEV_ReadNFLASH( NFLASHID NFlashId, DS_U32 Address, DS_U8 *pBuffer, DS_U32 Len ); int DHL_DEV_WriteNFLASH( NFLASHID NFlashId, DS_U32 Address, DS_U8 *pBuffer, DS_U32 Len ); DHL_RESULT DHL_DEV_EraseNFLASH( NFLASHID NFlashId, DS_U32 Address, DS_U32 Len ); int DHL_DEV_GetNFLASHSize(NFLASHID NFlashId); #if defined __cplusplus } #endif /**************************************************************************** SFLASH type definition & structures SFLASHState SFLASHID DST_DEV_SFLASH, P_DST_DEV_SFLASH ***************************************************************************/ typedef enum { SFLASHSTATE_UNKNOWN=0, SFLASHSTATE_INIT, SFLASHSTATE_START, SFLASHSTATE_STOP, SFLASHSTATE_MAX } SFLASHState; typedef enum { SFLASHID_0=1, SFLASHID_MAX } SFLASHID; typedef struct tag_DST_DEV_SFLASH { SFLASHState CurState; /* Current State */ SFLASHID SFlashId; /* SFlash Id. */ /* Mutex Id. */ /* NFLASH Information */ DS_U32 uSize; /* SFLASH Maximum Size */ DS_U32 uAvlStart; /* SFLASH Available Range Start */ DS_U32 uAvlEnd; /* SFLASH Available Range End */ /* Platform-specific information */ #if defined(USE_SFLASH_FILE) int sflash_fd; #endif } *P_DST_DEV_SFLASH, DST_DEV_SFLASH; #if defined __cplusplus extern "C" { #endif DHL_RESULT DHL_DEV_InitSFLASH( SFLASHID SFLASHId, DS_U32 Size, DS_U32 Start, DS_U32 End ); int DHL_DEV_ReadSFLASH( SFLASHID SFLASHId, DS_U32 Address, DS_U8 *pBuffer, DS_U32 Len ); int DHL_DEV_WriteSFLASH( SFLASHID SFLASHId, DS_U32 Address, DS_U8 *pBuffer, DS_U32 Len ); DHL_RESULT DHL_DEV_EraseSFLASH( SFLASHID SFLASHId, DS_U32 Address, DS_U32 Len ); #define MAX_FILTER_COUNT 15 typedef struct _des_pid_filter { DS_U16 Pid; DS_U32 slot; DS_BOOL bValid; }DST_CA_PID_FILTER; typedef enum { DHL_DEV_CARD_UNKNOWN=0, DHL_DEV_CARD_READY, DHL_DEV_CARD_DETECTED, DHL_DEV_CARD_ACTIVATED, DHL_DEV_CARD_FAILED } DHL_DEV_CARD_STATUS; #define S_SEQUENCE 0x40 #define N_SEQUENCE 0x00 typedef void (DHL_CARD_CALLBACK)(DHL_DEV_CARD_STATUS stat); typedef DHL_CARD_CALLBACK * P_DHL_CARD_CALLBACK; DHL_RESULT DHL_DEV_InitSmartCardInterface(void *func); DHL_RESULT DHL_DEV_SmartCARDTransaction( DS_U8 *cmdBuf,DS_U32 CmdLen, DS_U8 *retBuf ); DHL_RESULT DHL_DEV_GetCARDStatus(DHL_DEV_CARD_STATUS *Status); DHL_RESULT DHL_CA_InitMULTI2(DS_U8 *SystemKey, DS_U8 *CBC); DHL_RESULT DHL_CA_ResetMULTI2(void); DHL_RESULT DHL_CA_SetMULTI2Key(DS_U16 Pid,DS_U8 *EvenData, DS_U8 *OddData,DS_BOOL bAll); DHL_RESULT DHL_CA_SetMULTI2Pid(DS_U16 Pid, DS_BOOL Enable); void DHL_CA_GetCurPid(DS_U16 *retBuf, DS_U8 *Cnt); #if defined __cplusplus } #endif #endif /* __DST_HAL_DEV_H__ */