📄 pseudovfl.c
字号:
/* */
/*****************************************************************************/
Buffer *
BUF_Get(BUFType eType)
{
VFLPacket stPacket;
Buffer *pBuf;
UINT32 nResult;
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++BUF_Get()\r\n")));
VFLP_LOG_PRINT((TEXT("[VFLP: IN] BUF_Get() eType = %d\r\n"), eType));
do {
/* BUF_Get */
stPacket.nCtrlCode = PM_HAL_VFL_BUF_GET;
stPacket.nVbn = 0; // Not used
stPacket.nVpn = 0; // Not used
stPacket.pBuf = NULL;
stPacket.nSrcVpn = 0; // Not used
stPacket.nDesVpn = 0; // Not used
stPacket.bCleanCheck= 0;
stPacket.eType = eType;
KernelIoControl(IOCTL_POCKETSTOREII_CMD, /* Io Control Code */
&stPacket, /* Input buffer (Additional Control Code) */
sizeof(VFLPacket), /* Size of Input buffer */
NULL, /* Output buffer */
0, /* Size of Output buffer */
&nResult); /* Error Return */
if (nResult != VFL_SUCCESS)
{
VFLP_ERR_PRINT((TEXT("[VFLP:ERR] BUF_Get() failure. ERR Code=%x\r\n"), nResult));
break;
}
pBuf = stPacket.pBuf;
VFLP_LOG_PRINT((TEXT("[VFLP: IN] BUF_Get() pBuf = 0x%x\r\n"), pBuf));
} while(0);
VFLP_LOG_PRINT((TEXT("[VFLP:OUT] --BUF_Get()\r\n")));
return pBuf;
}
/*****************************************************************************/
/* */
/* NAME */
/* BUF_Reget */
/* DESCRIPTION */
/* This function changes the type of the buffer. */
/* PARAMETERS */
/* pBuf [IN/OUT] */
/* buffer pointer */
/* eType [IN] */
/* buffer type */
/* RETURN VALUES */
/* none */
/* NOTES */
/* */
/*****************************************************************************/
VOID
BUF_Reget(Buffer *pBuf, BUFType eType)
{
VFLPacket stPacket;
UINT32 nResult;
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++BUF_Reget()\r\n")));
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++BUF_Reget() pBuf = 0x%x\r\n"), pBuf));
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++BUF_Reget() eType = %d\r\n"), eType));
do {
/* BUF_Reget */
stPacket.nCtrlCode = PM_HAL_VFL_BUF_REGET;
stPacket.nVbn = 0; // Not used
stPacket.nVpn = 0; // Not used
stPacket.pBuf = pBuf;
stPacket.nSrcVpn = 0; // Not used
stPacket.nDesVpn = 0; // Not used
stPacket.bCleanCheck= 0;
stPacket.eType = eType;
KernelIoControl(IOCTL_POCKETSTOREII_CMD, /* Io Control Code */
&stPacket, /* Input buffer (Additional Control Code) */
sizeof(VFLPacket), /* Size of Input buffer */
NULL, /* Output buffer */
0, /* Size of Output buffer */
&nResult); /* Error Return */
if (nResult != VFL_SUCCESS)
{
VFLP_ERR_PRINT((TEXT("[VFLP:ERR] BUF_Reget() failure. ERR Code=%x\r\n"), nResult));
break;
}
} while(0);
VFLP_LOG_PRINT((TEXT("[VFLP:OUT] --BUF_Reget()\r\n")));
return;
}
/*****************************************************************************/
/* */
/* NAME */
/* BUF_Release */
/* DESCRIPTION */
/* This function releases the buffer to the buffer pool. */
/* PARAMETERS */
/* pBuf [IN] */
/* buffer pointer */
/* RETURN VALUES */
/* none */
/* NOTES */
/* */
/*****************************************************************************/
VOID
BUF_Release(Buffer *pBuf)
{
VFLPacket stPacket;
UINT32 nResult;
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++BUF_Release()\r\n")));
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++BUF_Release() pBuf = 0x%x\r\n"), pBuf));
do {
/* BUF_Release */
stPacket.nCtrlCode = PM_HAL_VFL_BUF_RELEASE;
stPacket.nVbn = 0; // Not used
stPacket.nVpn = 0; // Not used
stPacket.pBuf = pBuf;
stPacket.nSrcVpn = 0; // Not used
stPacket.nDesVpn = 0; // Not used
stPacket.bCleanCheck= 0;
KernelIoControl(IOCTL_POCKETSTOREII_CMD, /* Io Control Code */
&stPacket, /* Input buffer (Additional Control Code) */
sizeof(VFLPacket), /* Size of Input buffer */
NULL, /* Output buffer */
0, /* Size of Output buffer */
&nResult); /* Error Return */
if (nResult != VFL_SUCCESS)
{
VFLP_ERR_PRINT((TEXT("[VFLP:ERR] BUF_Release() failure. ERR Code=%x\r\n"), nResult));
break;
}
} while(0);
VFLP_LOG_PRINT((TEXT("[VFLP:OUT] --BUF_Release()\r\n")));
return;
}
/*****************************************************************************/
/* */
/* NAME */
/* FIL_Init */
/* DESCRIPTION */
/* This function initializes FIL layer. */
/* PARAMETERS */
/* none */
/* RETURN VALUES */
/* FIL_SUCCESS */
/* VFL_Init is completed. */
/* FIL_CRITICAL_ERROR */
/* VFL_Init is failed. */
/* NOTES */
/* */
/*****************************************************************************/
INT32
FIL_Init(VOID)
{
VFLPacket stPacket;
UINT32 nResult;
VFLP_LOG_PRINT((TEXT("[FILP: IN] ++FIL_Init()\r\n")));
do {
/* FIL Init */
stPacket.nCtrlCode = PM_HAL_FIL_INIT;
stPacket.nVbn = 0; // Not used
stPacket.nVpn = 0; // Not used
stPacket.pBuf = NULL;
stPacket.nSrcVpn = 0; // Not used
stPacket.nDesVpn = 0; // Not used
stPacket.bCleanCheck= 0;
KernelIoControl(IOCTL_POCKETSTOREII_CMD, /* Io Control Code */
&stPacket, /* Input buffer (Additional Control Code) */
sizeof(VFLPacket), /* Size of Input buffer */
NULL, /* Output buffer */
0, /* Size of Output buffer */
&nResult); /* Error Return */
if (nResult != FIL_SUCCESS)
{
VFLP_ERR_PRINT((TEXT("[FILP:ERR] FIL_Init() failure. ERR Code=%x\r\n"), nResult));
break;
}
} while(0);
VFLP_LOG_PRINT((TEXT("[FILP:OUT] --FIL_Init()\r\n")));
return (INT32)nResult;
}
VOID
GetNandInfo(NAND_INFO * pNandInfo)
{
VFLPacket stPacket;
UINT32 nResult;
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++GetNandInfo()\r\n")));
do {
/* BUF_Release */
stPacket.nCtrlCode = PM_HAL_FIL_GET_NANDINFO;
stPacket.nVbn = 0; // Not used
stPacket.nVpn = 0; // Not used
stPacket.pBuf = NULL;
stPacket.nSrcVpn = 0; // Not used
stPacket.nDesVpn = 0; // Not used
stPacket.bCleanCheck= 0;
KernelIoControl(IOCTL_POCKETSTOREII_CMD, /* Io Control Code */
&stPacket, /* Input buffer (Additional Control Code) */
sizeof(VFLPacket), /* Size of Input buffer */
pNandInfo, /* Output buffer */
0, /* Size of Output buffer */
&nResult); /* Error Return */
if (nResult != VFL_SUCCESS)
{
VFLP_ERR_PRINT((TEXT("[VFLP:ERR] BUF_Release() failure. ERR Code=%x\r\n"), nResult));
break;
}
} while(0);
VFLP_LOG_PRINT((TEXT("[VFLP:OUT] --BUF_Release()\r\n")));
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -