rem: printf("__card_readsegment(%d,%p)\n",chn,block_read_cb);
add: printf("__card_readsegment(%d,%p)\n",chn,callback);
context: static s32 __card_readsegment(u32 chn,cardcallback callback){	u32 err;	s32 ret;	card_block *card = NULL;#ifdef _CARD_DEBUG	printf("__card_readsegment(%d,%p)\n",chn,block_read_cb);#endif	if(chn<EXI_CHANNEL_0 || chn>=EXI_CHANNEL_2) return CARD_ERROR_NOCARD;	card = &cardmap[chn];	card->cmd[0] = 0x52;	card->cmd[1] = (card->cmd_sector_addr&0xFE0000)>>17;	card->cmd[2] = (card->cmd_sector_addr&0x01FE00)>>9;	card->cmd[3] = (card->cmd_sector_addr&0x000180)>>7;	card->cmd[4] = (card->cmd_sector_addr&0x00007F);	card->cmd_len = 5;	card->cmd_mode = EXI_READ;	card->cmd_retries = 0;		ret = __card_start(chn,callback,NULL);	if(ret<0) return ret;		err = 0;	if(EXI_ImmEx(chn,card->cmd,card->cmd_len,EXI_WRITE)==0) err |= 0x01;	if(EXI_ImmEx(chn,card->workarea+CARD_READSIZE,card->latency,EXI_WRITE)==0) err |= 0x02;	if(EXI_Dma(chn,card->cmd_usr_buf,CARD_READSIZE,card->cmd_mode,__card_txhandler)==0) err |= 0x04;		if(err) {		card->card_tx_cb = NULL;		EXI_Deselect(chn);		EXI_Unlock(chn);		return CARD_ERROR_NOCARD;	}	return CARD_ERROR_READY;}