/*********************************************************************************** * ���Ͽ� ���� ������ �˾Ƴ��� */ void CVFS_Manager::GetFileInfo (const char * FileName, VFileInfo * pFileInfo, bool bCalCrc) { std::vector<VEntry *>::iterator iv = m_vecVFS.begin (); for(; iv != m_vecVFS.end (); iv++) { if((*iv)->pVFS->FileExists (FileName)) { (*iv)->pVFS->GetFileInfo (FileName, pFileInfo ); if( bCalCrc ) pFileInfo->dwCRC = ComputeCrc ( FileName ); return ; } } pFileInfo->dwCRC = 0; pFileInfo->dwVersion = 0; }
static int topaz_transceive_handler(struct picc_device *picc, u8 *cmdBuf, u32 cmdLen, u8 *resBuf, u32 *resLen, u16 timeout) { u32 i; int ret = 0; u8 crcL; u8 crcH; struct pn512_request *req = picc->request; // TRACE_TO("enter %s\n", __func__); pn512_reg_set(ManualRCVReg, ParityDisable); //Parity disable ComputeCrc(CRC_B, cmdBuf, cmdLen, cmdBuf + cmdLen, cmdBuf + cmdLen + 1); cmdLen += 2; req->buf[0] = cmdBuf[0]; req->bit_frame = 0x07; req->length = 1; req->command = CMD_TRANSMIT; req->direction = TRANSMIT; req->time_out = 0; req->tx_done = 0; picc_wait_for_req(req); for(i = 1; i < cmdLen-1; i++) { req->buf[0] = cmdBuf[i]; req->bit_frame = 0x00; req->length = 1; req->command = CMD_TRANSMIT; req->direction = TRANSMIT; req->time_out = 0; req->tx_done = 0; picc_wait_for_req(req); } req->buf[0] = cmdBuf[cmdLen-1]; req->bit_frame = 0x00; req->length = 1; req->command = CMD_TRANSCEIVE; req->direction = TRANSCEIVE; req->time_out = timeout; req->tx_done = 0; picc_wait_for_req(req); ret = topaz_parity_check(req->buf, req->actual, resBuf, &i); if(ret < 0) goto err; // Response Processing if(i >= 4) { // Read the data from card to buffer ComputeCrc(CRC_B, resBuf, (i - 2), &crcL, &crcH); if((crcL == resBuf[i-2]) || (crcH == resBuf[i-1])) { *resLen = i-2; ret = 0; } else { *resLen = 0; ret = -ERROR_CRC; } } else { ret = -ERROR_BYTECOUNT; } err: // TRACE_TO("exit %s ret = %d\n", __func__, ret); return(ret); }