sdif.h 1.36 KB
#ifndef	__SDIF_H__
#define	__SDIF_H__


typedef	enum {
	enCARD_UNKOWN,
	enCARD_SDMEM,
	enCARD_SDIO,
	enCARD_SDCOMBO,
	enCARD_MMC
}	enCARD_TYPE;


typedef	struct {
	U8	cardType;	
	U8	SDHC;
	
	U32	capacity;
	U16	blkSize;	
}	SD_CARD_INFO;

#define SD_DEVICE	sdif_init,				\
					sdif_fini,				\
					sdif_open,				\
					sdif_close,				\
					sdif_writeBlocks,			\
					sdif_readBlocks,			\
					sdif_getCapacity,			\
					sdif_Get_Media,			\
					sdif_Erase,				\
					sdif_Format_Unit,			\
					sdif_Get_Format_Propgress,\
					sdif_getSectorSize,		\
					sdif_Media_Active


int sdif_preinit(void);
BOOL sdif_init(void);
BOOL sdif_open(void);
BOOL sdif_close(void);
BOOL sdif_fini(void);

U16	sdif_writeBlocks( U8 *buf, U32 lba, U16 blkcnt );
U16	sdif_readBlocks( U8 *buf, U32 lba, U16 blkcnt );
U32 sdif_getCapacity (void);
U16 sdif_getBlockSize(void);

WORD sdif_Get_Media (void);
BOOL sdif_Erase (DWORD sector_addr, DWORD len);
BOOL sdif_Format_Unit (void);
BOOL sdif_Get_Format_Propgress (BYTE *format_progress);
BOOL sdif_Media_Active (void);
U16 sdif_getSectorSize(void);



SD_CARD_INFO *sdif_getCardInfo(void);
int	sdif_isCardPresent( void );
int	sdif_errRecover( void );

typedef	enum {
	enWP_NOCARD,
	enWP_NONE,
	enWP_MECHANICAL,
	enWP_SOFT
}	enum_CARD_WP;
int sdif_isCardWP( int *wp );

void sdif_icallback_cardInsert( void );
void sdif_icallback_cardRemove( void );



#endif