⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bkendlog.c

📁 vxworks源码源码解读是学习vxworks的最佳途径
💻 C
📖 第 1 页 / 共 5 页
字号:
    bkendLogWdbContext (&pExcInfo->context);    fprintf (wdbLogFile,"\t\tvec\t\t%d\n",(int) pExcInfo->vec);    fprintf (wdbLogFile,"\t\tpEsf\t\t0x%x\n",(int) pExcInfo->pEsf);    }/********************************************************************************* bkendLogWdbBpInfo - log a WDB_BP_INFO structure** RETURNS: void.*/LOCAL void bkendLogWdbBpInfo    (    WDB_BP_INFO *       pBpInfo         /* WDB_BP_INFO structure to log */    )    {    fprintf (wdbLogFile,"WDB_BP_INFO\n");    fprintf (wdbLogFile,"\t\tnumInts\t\t%d\n",(int) pBpInfo->numInts);    fprintf (wdbLogFile,"\t\t");    bkendLogWdbContext (&pBpInfo->context);    fprintf (wdbLogFile,"\t\tpc\t\t0x%x\n",(int) pBpInfo->pc);    fprintf (wdbLogFile,"\t\tfp\t\t0x%x\n",(int) pBpInfo->fp);    fprintf (wdbLogFile,"\t\tsp\t\t0x%x\n",(int) pBpInfo->sp);    if (pBpInfo->numInts > 5)	fprintf (wdbLogFile,"\t\taddr\t\t0x%x\n",(int) pBpInfo->addr);    }/********************************************************************************* bkendLogWdbCtxExitInfo - log a WDB_CTX_EXIT_INFO structure** RETURNS: void.*/LOCAL void bkendLogWdbCtxExitInfo    (    WDB_CTX_EXIT_INFO * pWdbCtxExitInfo /* WDB_CTX_EXIT_INFO structure to log */    )    {    fprintf (wdbLogFile,"WDB_CTX_EXIT_INFO\n");    fprintf (wdbLogFile,"\t\tnumInts\t\t%d\n",(int) pWdbCtxExitInfo->numInts);    fprintf (wdbLogFile,"\t\t");    bkendLogWdbContext (&pWdbCtxExitInfo->context);    fprintf (wdbLogFile,"\t\treturnVal\t0x%x\n",             (int) pWdbCtxExitInfo->returnVal);    fprintf (wdbLogFile,"\t\terrnoVal\t0x%x\n",(int) pWdbCtxExitInfo->errnoVal);    }/********************************************************************************* bkendLogWdbCtxStartInfo - log a WDB_CTX_START_INFO structure** RETURNS: void.*/LOCAL void bkendLogWdbCtxStartInfo    (    WDB_CTX_START_INFO * pWdbCtxStartInfo    )    {    fprintf (wdbLogFile,"WDB_CTX_START_INFO\n");    fprintf (wdbLogFile,"\t\tnumInts\t\t%d\n",(int) pWdbCtxStartInfo->numInts);    fprintf (wdbLogFile,"\t\t");    bkendLogWdbContext (&pWdbCtxStartInfo->createdCtx);    fprintf (wdbLogFile,"\t\t");    bkendLogWdbContext (&pWdbCtxStartInfo->creationCtx);    }/********************************************************************************* bkendLogWdbTsfsInfo - log a WDB_TSFS_INFO structure** RETURNS: void.*/LOCAL void bkendLogWdbTsfsInfo    (    WDB_TSFS_INFO *	pWdbTsfsInfo	/* WDB_TSFS_INFO structure to log */    )    {    void (*pTsfsInfoFct) ();    fprintf (wdbLogFile,"WDB_TSFS_INFO\n");    fprintf (wdbLogFile,"\t\tWDB_TSFS_GENERIC_INFO\n");    fprintf (wdbLogFile,"\t\tnumInts\t\t%d\n",(int) pWdbTsfsInfo->info.numInts);    fprintf (wdbLogFile,"\t\tchannel\t\t%d\n",(int) pWdbTsfsInfo->info.channel);    fprintf (wdbLogFile,"\t\topcode\t\t");    bkendLogWdbEnumToString ("TSFS_OPCODE", pWdbTsfsInfo->info.opcode);    fprintf (wdbLogFile,"\n");    fprintf (wdbLogFile,"\t\tsemId\t\t%#x\n",(int) pWdbTsfsInfo->info.semId);    fprintf (wdbLogFile,"\t\tpResult\t\t%#x\n",(int) pWdbTsfsInfo->info.pResult);    fprintf (wdbLogFile,"\t\tpErrno\t\t%#x\n",(int) pWdbTsfsInfo->info.pErrno);    switch (pWdbTsfsInfo->info.opcode)        {        case WDB_TSFS_OPEN:	    pTsfsInfoFct = bkendLogWdbTsfsOpenInfo;             break;        case WDB_TSFS_READ:	    pTsfsInfoFct = bkendLogWdbTsfsRwInfo;             break;        case WDB_TSFS_WRITE:	    pTsfsInfoFct = bkendLogWdbTsfsRwInfo;             break;        case WDB_TSFS_IOCTL:	    pTsfsInfoFct = bkendLogWdbTsfsIoctlInfo;             break;        case WDB_TSFS_DELETE:	    pTsfsInfoFct = bkendLogWdbTsfsDeleteInfo;             break;        case WDB_TSFS_CLOSE:	    pTsfsInfoFct = NULL;             break;        default:            pTsfsInfoFct = NULL;                    break;        }    if (pTsfsInfoFct != NULL)        {        fprintf (wdbLogFile,"\t\t");        pTsfsInfoFct (&pWdbTsfsInfo->extra);        }    }/********************************************************************************* bkendLogWdbTsfsOpenInfo - log a WDB_TSFS_OPEN_INFO structure** RETURNS: void.*/LOCAL void bkendLogWdbTsfsOpenInfo    (    WDB_TSFS_OPEN_INFO *	pWdbTsfsOpenInfo    )    {    fprintf (wdbLogFile,"WDB_TSFS_OPEN_INFO\n");    fprintf (wdbLogFile,"\t\tfilename\t%#x\n",				(int) pWdbTsfsOpenInfo->filename);    fprintf (wdbLogFile,"\t\tfnameLen\t%d\n",				(int) pWdbTsfsOpenInfo->fnameLen);    fprintf (wdbLogFile,"\t\tmode\t\t");    bkendLogWdbEnumToString ("TSFS_OPEN_MODE", (int) pWdbTsfsOpenInfo->mode);    fprintf (wdbLogFile,"\n");    fprintf (wdbLogFile,"\t\tperm\t\t%#o\n", (int) pWdbTsfsOpenInfo->perm);    }/********************************************************************************* bkendLogWdbTsfsRwInfo - log a WDB_TSFS_RW_INFO structure** RETURNS: void.*/LOCAL void bkendLogWdbTsfsRwInfo    (    WDB_TSFS_RW_INFO *	pWdbTsfsRwInfo    )    {    fprintf (wdbLogFile,"WDB_TSFS_RW_INFO\n");    fprintf (wdbLogFile,"\t\tbuffer\t\t%#x\n", (int) pWdbTsfsRwInfo->buffer);    fprintf (wdbLogFile,"\t\tnBytes\t\t%d\n",(int) pWdbTsfsRwInfo->nBytes);    }/********************************************************************************* bkendLogWdbTsfsIoctlInfo - log a WDB_TSFS_IOCTL_INFO structure** RETURNS: void.*/LOCAL void bkendLogWdbTsfsIoctlInfo    (    WDB_TSFS_IOCTL_INFO *	pWdbTsfsIoctlInfo    )    {    fprintf (wdbLogFile,"WDB_TSFS_IOCTL_INFO\n");    fprintf (wdbLogFile,"\t\trequest\t\t");    bkendLogWdbEnumToString ("TSFS_IOCTL_REQ", pWdbTsfsIoctlInfo->request);    fprintf (wdbLogFile,"\n");    fprintf (wdbLogFile,"\t\targ\t\t%d\n",(int) pWdbTsfsIoctlInfo->arg);    fprintf (wdbLogFile,"\t\tpExtra1\t\t%#x\n",(int) pWdbTsfsIoctlInfo->pExtra1);    fprintf (wdbLogFile,"\t\tpExtra2\t\t%#x\n",(int) pWdbTsfsIoctlInfo->pExtra2);    }/********************************************************************************* bkendLogWdbTsfsDeleteInfo - log a WDB_TSFS_DELETE_INFO structure** RETURNS: void.*/LOCAL void bkendLogWdbTsfsDeleteInfo    (    WDB_TSFS_DELETE_INFO *	pWdbTsfsDeleteInfo    )    {    fprintf (wdbLogFile,"WDB_TSFS_DELETE_INFO\n");    fprintf (wdbLogFile,"\t\tfilename\t%#x\n",				(int) pWdbTsfsDeleteInfo->filename);    fprintf (wdbLogFile,"\t\tfnameLen\t%d\n",				(int) pWdbTsfsDeleteInfo->fnameLen);    }/********************************************************************************* bkendLogWdbUINT32 - log a UINT32 integer** RETURNS: void.*/LOCAL void bkendLogWdbUINT32    (    UINT32 *    pUInt32                 /* UINT32 to log */    )    {    fprintf (wdbLogFile,"UINT32\t\t0x%x\n", *pUInt32);    }/********************************************************************************* bkendLogWdbAgentMode - log WDB agent mode ** RETURNS: void.*/LOCAL void bkendLogWdbAgentMode    (    TGT_INT_T *    pAgentMode		/* agent mode to log */    )    {    fprintf (wdbLogFile,"mode\t\t");    bkendLogWdbEnumToString ("AGENT_MODE", *pAgentMode);    fprintf (wdbLogFile,"\n");    }/********************************************************************************* bkendLogWdbCtxStatus - log WDB context status ** RETURNS: void.*/LOCAL void bkendLogWdbCtxStatus    (    TGT_INT_T *    pCtxStatus		/* context status to log */    )    {    fprintf (wdbLogFile,"status\t\t");    bkendLogWdbEnumToString ("CONTEXT_STATUS", *pCtxStatus);    fprintf (wdbLogFile,"\n");    }/********************************************************************************* bkendLogWdbTGT_ADDR_T - log a TGT_ADDR_T value** RETURNS: void.*/LOCAL void bkendLogWdbTGT_ADDR_T    (    TGT_ADDR_T *        pTgtAddr                /* TGT_ADDR_T to log */    )    {    fprintf (wdbLogFile,"TGT_ADDR_T\t0x%x\n", (UINT32) *pTgtAddr);    }/********************************************************************************* bkendLogWdbString - log a WDB_STRING_T string** RETURNS: void.*/LOCAL void bkendLogWdbString    (    WDB_STRING_T *      pWdbString              /* WDB_STRING_T to log */    )    {    fprintf (wdbLogFile,"WDB_STRING_T\n");    if (*pWdbString == NULL)        fprintf (wdbLogFile,"\t\tstring\t\t{%s}\n", "NULL");    else        fprintf (wdbLogFile,"\t\tstring\t\t{%s}\n", *pWdbString);    }/********************************************************************************  debugFlagGet - Get the debug mode (for WIN32 serial backend)**** NOMANUAL*/BOOL debugFlagGet (void)    {    return wpwrDebugModeGet();    }/******************************************************************************** bkendLogWdbEnumToString - print a string from a int** given an int and the name of an enum table, fill the log file with the * corresponding string.** NOMANUAL*/    LOCAL void bkendLogWdbEnumToString    (    char *		enumType,    int			enumValue    )    {    int			ix;    ENUM_NAME_MAP *	pMap;    /* look up the map for the given enum type. */        for (ix = 0; ix < NELEMENTS (enumTypeMap); ++ix)	{	if (!strcmp (enumType, enumTypeMap [ix].enumType))	    break;	}        if (ix == NELEMENTS (enumTypeMap))	return;        if (enumTypeMap [ix].allowOr)        {	int count = 0;	for (pMap = enumTypeMap [ix].pEnumNameMap; pMap->enumLongName; ++pMap)	    {	    if ((enumValue & pMap->enumInt) == pMap->enumInt)		{		if (count != 0)		    fprintf (wdbLogFile, "|");		fprintf (wdbLogFile, pMap->enumLongName);		++count;		/* strip the bit out of the given value.  When we're done,		   we'll append the residue. */		enumValue &= ~ pMap->enumInt;		}	    }		if (enumValue != 0)	    {	    /* There were leftover bits.  Just append the residue in hex. */	    if (count != 0)		fprintf (wdbLogFile, "|");	    fprintf (wdbLogFile, "%#x", enumValue);	    }	return;	}    else	{	/* check the string forms of the enum. */	for (pMap = enumTypeMap [ix].pEnumNameMap; pMap->enumLongName; ++pMap)	    {	    if (pMap->enumInt == enumValue)		{		fprintf (wdbLogFile, pMap->enumLongName);		return;		}	    }	}	    /* Wasn't a bitvector, and didn't match any scalars.  Just put the        number out */    fprintf (wdbLogFile, "%d", enumValue);    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -