oslessoam.cpp
来自「SAMSUNG S3C6410 CPU BSP for winmobile6」· C++ 代码 · 共 746 行 · 第 1/3 页
CPP
746 行
OAM_Memset(VOID *pDst, UINT8 nV, UINT32 nLen)
{
#if defined(OAM_USE_STDLIB)
memset(pDst, nV, nLen);
#else /* OAM_USE_STDLIB */
#if defined(OAM_32BIT_MEMCPY_OK)
register UINT8 *pD8;
register UINT32 *pD32;
register UINT8 nV8 = nV;
register UINT32 nV32 = (UINT32)( nV << 24 | nV << 16 | nV << 8 | nV );
register INT32 nL = (INT32)nLen;
register UINT32 nCnt;
pD8 = (UINT8*)pDst;
while ( (INT32)pDst % sizeof(UINT32) )
{
*pD8++ = nV8;
nL--;
if( nL <= 0 )
return;
}
pD32 = (UINT32*)pD8;
for (nCnt = 0; nCnt <(INT32)(nL / sizeof(UINT32)); nCnt++)
*pD32++ = nV32;
pD8 = (UINT8*)pD32;
while( nL % sizeof(UINT32) )
{
*pD8++ = nV8;
nL--;
}
#else
register UINT8 *pD8;
register UINT16 *pD16;
register UINT8 nV8 = nV;
register UINT32 nV16 = (UINT16)( nV << 8 | nV );
register INT32 nL = (INT32)nLen;
register UINT32 nCnt;
pD8 = (UINT8*)pDst;
while ( (INT16)pDst % sizeof(UINT16) )
{
*pD8++ = nV8;
nL--;
if( nL <= 0 )
return;
}
pD16 = (UINT16*)pD8;
for (nCnt = 0; nCnt <(INT32)(nL / sizeof(UINT16)); nCnt++)
*pD16++ = nV16;
pD8 = (UINT8*)pD16;
while( nL % sizeof(UINT16) )
{
*pD8++ = nV8;
nL--;
}
#endif
#endif /* OAM_USE_STDLIB */
}
/*****************************************************************************/
/* */
/* NAME */
/* OAM_Memcmp */
/* DESCRIPTION */
/* This function compare data of two buffer. */
/* */
/* PARAMETERS */
/* pSrc Source data allocated Pointer */
/* pDst Destination array Pointer to be compared */
/* nLen length to be compared */
/* */
/* RETURN VALUES */
/* none */
/* */
/* NOTES */
/* This function is called by function that wants to compare source */
/* buffer and destination buffer. */
/* */
/*****************************************************************************/
INT32
OAM_Memcmp(VOID *pSrc, VOID *pDst, UINT32 nLen)
{
#if defined(OAM_USE_STDLIB)
return memcmp(pSrc, pDst, nLen);
#else /* OAM_USE_STDLIB */
UINT8 *pS1 = (UINT8 *)pSrc;
UINT8 *pD1 = (UINT8 *)pDst;
while (nLen--)
{
if (*pS1 != *pD1)
return (*pS1 - *pD1);
pS1++;
pD1++;
}
return 0;
#endif /* OAM_USE_STDLIB */
}
/*****************************************************************************/
/* */
/* NAME */
/* OAM_CreateSM */
/* DESCRIPTION */
/* This function creates semaphore. */
/* */
/* PARAMETERS */
/* pHandle Handle of semaphore */
/* */
/* RETURN VALUES */
/* If this function creates semaphore successfully, it returns TRUE32. */
/* else it returns FALSE32. */
/* NOTES */
/* This function is called by function that wants to create semaphore */
/* */
/* */
/*****************************************************************************/
BOOL32
OAM_CreateSM(SM32 *pHandle)
{
return TRUE32;
}
/*****************************************************************************/
/* */
/* NAME */
/* OAM_DestroySM */
/* DESCRIPTION */
/* This function destroys semaphore. */
/* */
/* PARAMETERS */
/* nHandle Handle of semaphore to be destroyed */
/* */
/* RETURN VALUES */
/* If this function destroys semaphore successfully, it returns TRUE32. */
/* else it returns FALSE32. */
/* NOTES */
/* This function is called by function that wants to destroy semaphore */
/* */
/*****************************************************************************/
BOOL32
OAM_DestroySM(SM32 nHandle)
{
return TRUE32;
}
/*****************************************************************************/
/* */
/* NAME */
/* OAM_AcquireSM */
/* DESCRIPTION */
/* This function acquires semaphore. */
/* */
/* PARAMETERS */
/* nHandle Handle of semaphore to be acquired */
/* */
/* RETURN VALUES */
/* If this function acquires semaphore successfully, it returns TRUE32. */
/* else it returns FALSE32. */
/* NOTES */
/* This function is called by function that wants to acquire semaphore */
/* */
/*****************************************************************************/
BOOL32
OAM_AcquireSM(SM32 nHandle)
{
return TRUE32;
}
/*****************************************************************************/
/* */
/* NAME */
/* OAM_ReleaseSM */
/* DESCRIPTION */
/* This function releases semaphore. */
/* */
/* PARAMETERS */
/* nHandle [IN] */
/* Handle of semaphore to be released */
/* */
/* RETURN VALUES */
/* If this function releases semaphore successfully, it returns TRUE32. */
/* else it returns FALSE32. */
/* NOTES */
/* This function is called by function that wants to release semaphore */
/* */
/*****************************************************************************/
BOOL32
OAM_ReleaseSM(SM32 nHandle)
{
return TRUE32;
}
/*****************************************************************************/
/* */
/* NAME */
/* OAM_Pa2Va */
/* DESCRIPTION */
/* This function gets virtual address for NAND device physical address */
/* */
/* PARAMETERS */
/* nPAddr physical address of NAND device */
/* */
/* RETURN VALUES */
/* Virtual address of NAND device that Symbian OS using */
/* */
/* NOTES */
/* This function makes virtual address for NAND device when system */
/* initialized */
/* */
/*****************************************************************************/
UINT32
OAM_Pa2Va(UINT32 nPAddr)
{
return (nPAddr);
}
/*****************************************************************************/
/* */
/* NAME */
/* OAM_InitInt */
/* DESCRIPTION */
/* This function initialize interrupt for NAND device */
/* */
/* PARAMETERS */
/* Caller Class that this function called */
/* */
/* RETURN VALUES */
/* none */
/* */
/* NOTES */
/* This function is called in Media driver interface layer */
/* */
/* */
/*****************************************************************************/
VOID
OAM_InitInt(VOID *Caller)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?