コード例 #1
0
/***********************************************************************************
 * ���Ͽ� ���� ������ �˾Ƴ���
 */
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;
}
コード例 #2
0
ファイル: topaz.c プロジェクト: ekinuzun/contactless-driver
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);
}