📄 sim_ram.c
字号:
/******************************************************************************/
/* */
/* Copyright (C), 1995-2006, msystems Ltd. All rights reserved. */
/* */
/* Redistribution and use in source and binary forms, with or without */
/* modification, are permitted provided that the following conditions are */
/* met: */
/* 1. Redistributions of source code must retain the above copyright notice, */
/* this list of conditions and the following disclaimer. */
/* 2. Redistributions in binary form must reproduce the above copyright */
/* notice, this list of conditions and the following disclaimer in the */
/* documentation and/or other materials provided with the distribution. */
/* 3. Neither the name of msystems nor the names of its contributors may be */
/* used to endorse or promote products derived from this software without */
/* specific prior written permission. */
/* */
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */
/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR */
/* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR */
/* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
/* */
/******************************************************************************/
/*
* $Log: V:/PVCSDB/DiskOnChip/archives/DocDriver/TrueFFS BD/sim_al/sim_ram.c-arc $
*
* Rev 1.2 Sep 13 2006 10:30:06 yaniv.iarovici
* Fix compilation warnings
*
* Rev 1.1 Sep 11 2006 13:43:22 yaniv.iarovici
* Legal header added
*
* Rev 1.0 Sep 03 2006 15:27:48 Yaniv.Iarovici
* Initial revision.
*
* Rev 1.0 Sep 03 2006 15:21:50 Yaniv.Iarovici
* Initial revision.
*
* Rev 1.4 Aug 09 2006 19:08:34 einat.avidan
* adaptation for DOC Driver 1.0
* aditional simulator types
*
* Rev 1.3 Jun 15 2006 10:45:18 Benoit.Seligmann
* bug fixed in casceded create 16Gb
*
* Rev 1.2 May 21 2006 15:14:40 einat.avidan
* simulator updates for EQA4 migration utilities
*
* Rev 1.1 Mar 27 2006 16:02:04 einat.avidan
* add default file name to simulator files
*
* Rev 1.0 Mar 21 2006 17:30:18 einat.avidan
* Initial revision.
*/
#include "sim_ram.h"
#include "sim_dev.h"
#ifdef DOCH_FILE_SIMULATION
FLWord wRamSimulateDevice; /*device type to simulate*/
/*********************************************************/
/* Function name : sim_setSizeByType */
/* Description : sets dwSimLength according to type */
/* Return type : DOCH_Error */
/* Argument : FLDword dwSimType - simulator type */
/*********************************************************/
DOCH_Error sim_setSizeByType (FLDword dwSimType)
{
switch (dwSimType)
{
case SIM_1GBIT: dwSimLength[0]=SIM_1GBIT_SIZE;
break;
#ifndef SIM_NO_CASCADED_SUPPORT
case SIM_1GBIT_CASCADED: dwSimLength[0]=SIM_1GBIT_SIZE;
dwSimLength[1]=SIM_1GBIT_SIZE;
break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
case SIM_8GBIT: dwSimLength[0]=SIM_8GBIT_SIZE;
break;
#ifndef SIM_NO_CASCADED_SUPPORT
case SIM_8GBIT_CASCADED: dwSimLength[0]=SIM_8GBIT_SIZE;
dwSimLength[1]=SIM_8GBIT_SIZE;
break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
case SIM_16GBIT: dwSimLength[0]=SIM_16GBIT_SIZE;
break;
#ifndef SIM_NO_CASCADED_SUPPORT
case SIM_16GBIT_CASCADED: dwSimLength[0]=SIM_16GBIT_SIZE;
dwSimLength[1]=SIM_16GBIT_SIZE;
break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
case SIM_64MB: dwSimLength[0]=SIM_64MB_SIZE;
break;
#ifndef SIM_NO_CASCADED_SUPPORT
case SIM_64MB_CASCADED: dwSimLength[0]=SIM_64MB_SIZE;
dwSimLength[1]=SIM_64MB_SIZE;
break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
default:
return DOCH_AdapterNotFound ;
}
return DOCH_OK;
}
/*********************************************************/
/* Function name : sim_setFileNameByType */
/* Description : sets File Name according to type */
/* Return type : DOCH_Error */
/* Argument : FLDword dwSimType - simulator type */
/*********************************************************/
DOCH_Error sim_FileNameByType (FLDword dwSimType)
{
switch (dwSimType)
{
case SIM_1GBIT: pSimFileName=SIM_1GBIT_FILE_NAME;
break;
#ifndef SIM_NO_CASCADED_SUPPORT
case SIM_1GBIT_CASCADED: pSimFileName=SIM_1GBIT_CASCADED_FILE_NAME;
break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
case SIM_8GBIT: pSimFileName=SIM_8GBIT_FILE_NAME;;
break;
#ifndef SIM_NO_CASCADED_SUPPORT
case SIM_8GBIT_CASCADED: pSimFileName=SIM_8GBIT_CASCADED_FILE_NAME;
break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
case SIM_16GBIT: pSimFileName=SIM_16GBIT_FILE_NAME;;
break;
#ifndef SIM_NO_CASCADED_SUPPORT
case SIM_16GBIT_CASCADED: pSimFileName=SIM_16GBIT_CASCADED_FILE_NAME;
break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
case SIM_64MB: pSimFileName=SIM_64MB_FILE_NAME;
break;
#ifndef SIM_NO_CASCADED_SUPPORT
case SIM_64MB_CASCADED: pSimFileName=SIM_64MB_CASCADED_FILE_NAME;
break;
#endif /*SIM_NO_CASCADED_SUPPORT*/
default:
return DOCH_AdapterNotFound ;
}
return DOCH_OK;
}
/*********************************************************/
/* Function name : simIdentify */
/* Description : sets dwSimLength according to type */
/* Return type : DOCH_Error */
/* Argument : FLDword dwSimType - simulator type */
/*********************************************************/
FLStatus simIdentify (void)
{
if (wRamSimulateDevice != RAM_MTD_UNKNOWN)
{/*check that the type is simulator type*/
switch (wRamSimulateDevice)
{
#ifdef DOCH_FILE_SIMULATION
case SIM_1GBIT:
case SIM_8GBIT:
#ifndef SIM_NO_CASCADED_SUPPORT
case SIM_1GBIT_CASCADED:
case SIM_8GBIT_CASCADED:
#endif /*SIM_NO_CASCADED_SUPPORT*/
return flOK;
#endif /*DOCH_FILE_SIMULATION*/
default:
return flAdapterNotFound ;
}
}
/* identification of simulator file*/
if( pSimFileName != NULL )
{
FLByte tempBuf[sizeof(SIMULTOR_IDENTIFY_STRING)];
FLDword szReadLen;
FILE * pRamFile;
pRamFile = fopen((char*) pSimFileName, "rb" );
if(pRamFile!=NULL)
{
/* the requested filename was found! */
szReadLen = fread( (void*)tempBuf, 1, sizeof(SIMULTOR_IDENTIFY_STRING), pRamFile );
if( szReadLen==sizeof(SIMULTOR_IDENTIFY_STRING))
{
if (/*ExMemCmp*/tffscmp( SIMULTOR_IDENTIFY_STRING, tempBuf, sizeof(SIMULTOR_IDENTIFY_STRING) ) == 0)
return flOK ;
}
fclose(pRamFile);
}
}
return flAdapterNotFound ;
}
#endif /*DOCH_FILE_SIMULATION*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -