?? pseudovfl.c
字號:
if (nResult != VFL_SUCCESS)
{
VFLP_ERR_PRINT((TEXT("[VFLP:ERR] VFL_Copyback() failure. ERR Code=%x\r\n"), nResult));
break;
}
} while(0);
VFLP_LOG_PRINT((TEXT("[VFLP:OUT] --VFL_Copyback()\r\n")));
return (INT32)nResult;
}
/*****************************************************************************/
/* */
/* NAME */
/* VFL_Sync */
/* DESCRIPTION */
/* This function checks all bank's status. */
/* PARAMETERS */
/* none */
/* RETURN VALUES */
/* VFL_SUCCESS */
/* VFL_Sync is completed. */
/* VFL_CRITICAL_ERROR */
/* VFL_Sync is failed. */
/* NOTES */
/* */
/*****************************************************************************/
INT32
VFL_Sync(VOID)
{
VFLPacket stPacket;
UINT32 nResult;
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++VFL_Sync()\r\n")));
do {
/* VFL_Sync */
stPacket.nCtrlCode = PM_HAL_VFL_SYNC;
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 != VFL_SUCCESS)
{
VFLP_ERR_PRINT((TEXT("[VFLP:ERR] VFL_Sync() failure. ERR Code=%x\r\n"), nResult));
break;
}
} while(0);
VFLP_LOG_PRINT((TEXT("[VFLP:OUT] --VFL_Sync()\r\n")));
return (INT32)nResult;
}
/*****************************************************************************/
/* */
/* NAME */
/* VFL_Close */
/* DESCRIPTION */
/* This function releases VFL layer. */
/* PARAMETERS */
/* none */
/* RETURN VALUES */
/* none */
/* NOTES */
/* */
/*****************************************************************************/
INT32
VFL_Close(VOID)
{
VFLPacket stPacket;
UINT32 nResult;
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++VFL_Close()\r\n")));
do {
/* VFL_Close */
stPacket.nCtrlCode = PM_HAL_VFL_CLOSE;
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 != VFL_SUCCESS)
{
VFLP_ERR_PRINT((TEXT("[VFLP:ERR] VFL_Close() failure. ERR Code=%x\r\n"), nResult));
break;
}
} while(0);
VFLP_LOG_PRINT((TEXT("[VFLP:OUT] --VFL_Close()\r\n")));
return (INT32)nResult;
}
#if (WMR_SUPPORT_META_WEAR_LEVEL)
/*****************************************************************************/
/* */
/* NAME */
/* VFL_GetFTLCxtVbn */
/* DESCRIPTION */
/* This function is returning the recent FTL context block position */
/* PARAMETERS */
/* aFTLCxtVbn [OUT] Recent FTL context block list */
/* RETURN VALUES */
/* none */
/* NOTES */
/* */
/*****************************************************************************/
void
VFL_GetFTLCxtVbn(UINT16 *pFTLCxtVbn)
{
VFLPacket stPacket;
UINT32 nResult;
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++VFL_GetFTLCxtVbn()\r\n")));
do {
/* VFL_GetFTLCxtVbn */
stPacket.nCtrlCode = PM_HAL_VFL_GETFTLCXT;
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 */
pFTLCxtVbn, /* Output buffer */
sizeof(UINT16*), /* Size of Output buffer */
&nResult); /* Error Return */
VFLP_LOG_PRINT((TEXT("[VFLP:INF] VFL_GetFTLCxtVbn() nResult = 0x%x\r\n"), nResult));
VFLP_LOG_PRINT((TEXT("[VFLP:INF] VFL_GetFTLCxtVbn() pFTLCxtVbn = 0x%x\r\n"), pFTLCxtVbn));
// VFLP_LOG_PRINT((TEXT("[VFLP:INF] VFL_GetFTLCxtVbn() *pFTLCxtVbn = 0x%x\r\n"), *pFTLCxtVbn));
if (nResult != VFL_SUCCESS)
{
VFLP_ERR_PRINT((TEXT("[VFLP:ERR] VFL_GetFTLCxtVbn() failure. ERR Code=%x\r\n"), nResult));
break;
}
} while(0);
VFLP_LOG_PRINT((TEXT("[VFLP:OUT] --VFL_GetFTLCxtVbn()\r\n")));
// return (UINT16*)pFTLCxtVbn;
}
#endif
#if (WMR_SUPPORT_META_WEAR_LEVEL)
/*****************************************************************************/
/* */
/* NAME */
/* VFL_ChangeFTLCxtVbn */
/* DESCRIPTION */
/* This function change the virtual block number of FTL context block */
/* PARAMETERS */
/* aFTLCxtVbn [IN] FTL context block list */
/* that replace old FTL context positon */
/* RETURN VALUES */
/* VFL_SUCCESS */
/* VFL_Format is completed. */
/* VFL_CRITICAL_ERROR */
/* VFL_Format is failed. */
/* NOTES */
/* */
/*****************************************************************************/
INT32
VFL_ChangeFTLCxtVbn(UINT16 *pFTLCxtVbn)
{
VFLPacket stPacket;
UINT32 nResult;
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++VFL_ChangeFTLCxtVbn()\r\n")));
VFLP_LOG_PRINT((TEXT("[VFLP: IN] ++VFL_ChangeFTLCxtVbn() *pFTLCxtVbn = %d\r\n"), *pFTLCxtVbn));
do {
/* VFL_ChangeFTLCxtVbn */
stPacket.nCtrlCode = PM_HAL_VFL_CHANGEFTLCXT;
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 */
(LPVOID)pFTLCxtVbn, /* Output buffer */
0, /* Size of Output buffer */
&nResult); /* Error Return */
if (nResult != VFL_SUCCESS)
{
VFLP_ERR_PRINT((TEXT("[VFLP:ERR] VFL_ChangeFTLCxtVbn() failure. ERR Code=%x\r\n"), nResult));
break;
}
} while(0);
VFLP_LOG_PRINT((TEXT("[VFLP:OUT] --VFL_ChangeFTLCxtVbn()\r\n")));
return (INT32)nResult;
}
#endif
/*****************************************************************************/
/* */
/* NAME */
/* BUF_Get */
/* DESCRIPTION */
/* This function returns a new free buffer. */
/* if there is not a free buffer, this function calls the sync function */
/* and generates a new free buffer. */
/* PARAMETERS */
/* eType [IN] */
/* buffer type */
/* RETURN VALUES */
/* Buffer */
/* BUF_Get is completed. */
/* NULL */
/* BUF_Get is failed. */
/* NOTES */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -