iplinfo.c
来自「M-System DOC(Disk on a Chip) Flash芯片的诊断工」· C语言 代码 · 共 108 行
C
108 行
#include "iplinfo.h"
FLStatus DINFO_IPL(EXBYTE handle)
{
IOreq ioreq;
PhysicalInfo pInfo;
FLStatus Status;
BDKStruct bdkStruct;
FLExtendedDiskInfo info;
/* Get the IPL size */
ioreq.irHandle = handle;
ioreq.irData = &info;
ioreq.irLength = FL_ALL_FLOORS;
ioreq.irCount = 0; /* partition */
ioreq.irFlags = FL_DISK_PARTITION;
info.dwStructSize = sizeof(info);
Status = flGetExtendedDiskInfo( &ioreq );
if( Status != flOK )
return Status;
ioreq.irHandle = handle;
bdkStruct.signOffset = 8;
bdkStruct.startingBlock = 0;
ExMemCpy(bdkStruct.oldSign,"BIPO",4);
ioreq.irData = &bdkStruct;
Status = DINFO_bdkPartitionInfo(&ioreq);
ioreq.irHandle = handle;
ioreq.irData = &pInfo;
Status = DINFO_flGetPhysicalInfo(&ioreq);
if(STATUS_ERROR)
return Status;
DinfoPrint( EX_TEXT("\n IPL INFO.\n") );
ExPrintLine( 11 );
if( Option.Extraflag )
{
if( (readRegContent((EXDWORD)curFlash->win,0)==0x55) && (readRegContent((EXDWORD)curFlash->win,1)==0xAA) )
{
DinfoPrint( EX_TEXT(" IPL is Loaded\n") ) ;
}
else
{
DinfoPrint( EX_TEXT(" IPL is not Loaded\n") ) ;
}
}
switch (pInfo.mediaType)
{
case FL_DOC_OREN:
DinfoPrint( EX_TEXT(" IPL type : RAM.\n") ) ;
DinfoPrint( EX_TEXT(" IPL size : %d bytes (%d KB).\n"), 1024*flFlashOf(handle)->noOfFloors, flFlashOf(handle)->noOfFloors ) ;
break;
case FL_DOC2000TSOP:
DinfoPrint( EX_TEXT(" IPL type : RAM.\n") ) ;
DinfoPrint( EX_TEXT(" IPL size : 1024 bytes (1 KB).\n") ) ;
break;
case FL_MDOCP:
DinfoPrint( EX_TEXT(" IPL type : RAM.\n") ) ;
/* DinfoPrint(( EX_TEXT(" IPL size : %d bytes (%d KB).\n"), bdkVol->flash->noOfFloors * KBYTE, bdkVol->flash->noOfFloors ) ; */
/* CheckSumLen = 1024 * bdkVol->flash->noOfFloors; */
break;
case FL_MDOCP_16:
DinfoPrint( EX_TEXT(" IPL type : RAM.\n") ) ;
/* DinfoPrint(( EX_TEXT(" IPL size : %d bytes (%d KB).\n"), bdkVol->flash->noOfFloors * KBYTE, bdkVol->flash->noOfFloors ) ; */
/* CheckSumLen = 1024 * bdkVol->flash->noOfFloors; */
break;
case FL_MDOC:
DinfoPrint( EX_TEXT(" IPL type : RAM.\n") ) ;
DinfoPrint( EX_TEXT(" IPL size : 512 bytes (0.5 KB).\n") ) ;
break;
case FL_DOC:
DinfoPrint( EX_TEXT(" IPL type : ROM.\n") ) ;
DinfoPrint( EX_TEXT(" IPL size : Unknown\n") ) ;
break;
case FL_MDOC512_G3:
case FL_MDOC256_P3:
DinfoPrint( EX_TEXT(" IPL type : RAM.\n") ) ;
/* DinfoPrint( EX_TEXT(" IPL size : 2K bytes\n") ) ; */
DinfoPrint( EX_TEXT(" IPL size : %d\n"),info.dwIPLSize );
break;
default:
break;
}
return Status;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?