亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? taskshow.c

?? vxworks 5.5 kernel code
?? C
?? 第 1 頁 / 共 2 頁
字號:
#endif /* _WRS_ALTIVEC_SUPPORT */#ifdef _WRS_SPE_SUPPORT		if (_func_speTaskRegsShow != NULL)	/* spe regs if attached*/		    (* _func_speTaskRegsShow) (tid);#endif /* _WRS_SPE_SUPPORT */#if (CPU_FAMILY==I80X86)		if (_func_sseTaskRegsShow != NULL)	/* SIMD regs if attached */		    (* _func_sseTaskRegsShow) (tid);#endif /* (CPU_FAMILY==I80X86) */		}	    /* print exception info if any */	    if ((_func_excInfoShow != NULL) && ((pTcb = taskTcb (tid)) != NULL))		(* _func_excInfoShow) (&pTcb->excInfo, FALSE);	    break;	    }	case 2 :				/* summarize all tasks */	default :	    {	    printf (infoHdr);	    nTasks = taskIdListGet (idList, NELEMENTS (idList));	    taskIdListSort (idList, nTasks);	    for (ix = 0; ix < nTasks; ++ix)		{		if (taskInfoGet (idList [ix], &td) == OK)		    taskSummary (&td);		}	    break;	    }	}    return (OK);    }/********************************************************************************* taskSummary - print task summary line** This routine is used by i() and ti() to print each task's summary line.** NOMANUAL*/LOCAL void taskSummary    (    TASK_DESC *pTd		/* task descriptor to summarize */    )    {    REG_SET   regSet;			/* get task's regs into here */    char      statusString[10];		/* status string goes here   */    SYMBOL_ID symbolId;                 /* symbol identifier         */    char *    name;   /* ptr to sym tbl copy of name of main routine */    void *    value = NULL;		/* symbol's actual value     */    taskStatusString (pTd->td_id, statusString);    /* Print the summary of the TCB */    printf ("%-11.11s", pTd->td_name);	/* print the name of the task */    /*      * Only check one symLib function pointer (for performance's sake).      * All symLib functions are provided by the same library, by convention.         */    if ((_func_symFindSymbol != (FUNCPTR) NULL) && 	(sysSymTbl != NULL) && 	((* _func_symFindSymbol) (sysSymTbl, NULL, (char *)pTd->td_entry, 				 N_EXT | N_TEXT, N_EXT | N_TEXT,				 &symbolId) == OK))	{	(* _func_symNameGet) (symbolId, &name);	(* _func_symValueGet) (symbolId, &value);	}    if (pTd->td_entry == (FUNCPTR) value)	printf ("%-12.12s", name);    else	printf ("%-12x", (int)pTd->td_entry);    /* get task's registers;  if the tcb being printed is the     * calling task's tcb, then taskRegsGet will return garbage for pc,     * so we fudge it a little so it won't look bad.     */    taskRegsGet (pTd->td_id, &regSet);    printf (" %8x %3d %-10.10s %8x %8x %7x %5u\n",	    pTd->td_id,	    pTd->td_priority,	    statusString,	    ((taskIdSelf () == pTd->td_id) ? (int)taskSummary : (int)regSet.pc),	    (int)regSet.spReg,	    pTd->td_errorStatus,	    pTd->td_delay);    }/******************************************************************************** taskIdListSort - sort the ID list by priority** This routine sorts the <idList> by task priority.** NOMANUAL*/void taskIdListSort    (    int idList[],		/* id list to sort */    int nTasks			/* number of tasks in id list */    )    {    FAST int temp;    int prevPri;    int curPri;    FAST int *pCurId;    BOOL change = TRUE;    FAST int *pEndId = &idList [nTasks];    if (nTasks == 0)	return;    while (change)	{	change = FALSE;	taskPriorityGet (idList[0], &prevPri);	for (pCurId = &idList[1]; pCurId < pEndId; ++pCurId, prevPri = curPri)	    {	    taskPriorityGet (*pCurId, &curPri);	    if (prevPri > curPri)		{		temp = *pCurId;		*pCurId = *(pCurId - 1);		*(pCurId - 1) = temp;		change = TRUE;		}	    }	}    }/********************************************************************************* taskRegsShow - display the contents of a task's registers** This routine displays the register contents of a specified task* on standard output.** EXAMPLE: The following example displays the register of the shell task * (68000 family):* .CS 4* -> taskRegsShow (taskNameToId ("tShell"))** d0     =        0   d1     =        0    d2    =    578fe    d3     =        1* d4     =   3e84e1   d5     =   3e8568    d6    =        0    d7     = ffffffff* a0     =        0   a1     =        0    a2    =    4f06c    a3     =    578d0* a4     =   3fffc4   a5     =        0    fp    =   3e844c    sp     =   3e842c* sr     =     3000   pc     =    4f0f2* value = 0 = 0x0* .CE** RETURNS: N/A*/void taskRegsShow    (    int tid             /* task ID */    )    {#if ((CPU_FAMILY != MIPS) && (CPU_FAMILY != COLDFIRE))    int		ix;    int *	pReg;		/* points to register value */#endif /* (CPU_FAMILY != MIPS) && (CPU_FAMILY != COLDFIRE) */    REG_SET	regSet;		/* register set */    if (_func_taskRegsShowRtn != NULL)        {        (_func_taskRegsShowRtn) (tid);        return;        }    if (taskRegsGet (tid, &regSet) == ERROR)	{	printf ("taskRegsShow: invalid task id %#x\n", tid);	return;	}#if (CPU_FAMILY==MIPS || CPU_FAMILY==COLDFIRE)    taskArchRegsShow (&regSet);#else    /* print out registers */    for (ix = 0; taskRegName[ix].regName != NULL; ix++)	{	if ((ix % 4) == 0)	    printf ("\n");	else	    printf ("%3s","");	if (taskRegName[ix].regName[0] != EOS)	    {	    pReg = (int *) ((int)&regSet + taskRegName[ix].regOff);	    printf (taskRegsFmt, taskRegName[ix].regName, *pReg);	    }	else	    printf ("%17s", "");	}    printf ("\n");#endif    }/********************************************************************************* taskStatusString - get a task's status as a string** This routine deciphers the WIND task status word in the TCB for a* specified task, and copies the appropriate string to <pString>.* * The formatted string is one of the following:** .TS* tab(|);* lf3 lf3* l l .* String   | Meaning* _* READY    | Task is not waiting for any resource other than the CPU.* PEND     | Task is blocked due to the unavailability of some resource.* DELAY    | Task is asleep for some duration.* SUSPEND  | Task is unavailable for execution (but not suspended, delayed, or pended).* DELAY+S  | Task is both delayed and suspended.* PEND+S   | Task is both pended and suspended.* PEND+T   | Task is pended with a timeout.* PEND+S+T | Task is pended with a timeout, and also suspended.* \&...+I  | Task has inherited priority (+I may be appended to any string above).* DEAD     | Task no longer exists.* .TE** EXAMPLE* .CS*     -> taskStatusString (taskNameToId ("tShell"), xx=malloc (10))*     new symbol "xx" added to symbol table.*     value = 0 = 0x0*     -> printf ("shell status = <%s>\en", xx)*     shell status = <READY>*     value = 2 = 0x2* .CE** RETURNS: OK, or ERROR if the task ID is invalid.*/STATUS taskStatusString    (    int  tid,           /* task to get string for */    char *pString       /* where to return string */    )    {    WIND_TCB *pTcb = taskTcb (tid);    if (pTcb == NULL)	return (ERROR);    switch (pTcb->status)	{	case WIND_READY:	strcpy (pString, "READY");  break;	case WIND_DELAY:	strcpy (pString, "DELAY");  break;	case WIND_DELAY |	     WIND_SUSPEND:	strcpy (pString, "DELAY+S");  break;	case WIND_PEND:		strcpy (pString, "PEND");   break;	case WIND_PEND |	     WIND_DELAY:	strcpy (pString, "PEND+T");   break;	case WIND_PEND |	     WIND_SUSPEND:	strcpy (pString, "PEND+S");   break;	case WIND_PEND |	     WIND_DELAY |	     WIND_SUSPEND:	strcpy (pString, "PEND+S+T");   break;	case WIND_SUSPEND:	strcpy (pString, "SUSPEND");  break;	case WIND_DEAD:		strcpy (pString, "DEAD");   break;	default:			/* unanticipated combination */	    sprintf (pString, "0x%02x", pTcb->status);	    return (ERROR);	}    if (pTcb->priority != pTcb->priNormal)	strcat (pString, "+I");		/* task's priority inherited */    return (OK);    }/********************************************************************************* taskOptionsString - get a task's options as a string** This routine deciphers the WIND task options field in the TCB, for a* specified task, and copies the appropriate string to <pString>.** RETURNS: OK, or ERROR if the task ID is invalid.** NOMANUAL*/STATUS taskOptionsString    (    int  tid,           /* task to get options string for */    char *pString       /* where to return string of options */    )    {    WIND_TCB *pTcb = taskTcb (tid);    if (pTcb == NULL)	return (ERROR);    pString[0] = EOS;				/* null terminate string */    if (pTcb->options & VX_SUPERVISOR_MODE)	strcat (pString, "VX_SUPERVISOR_MODE  ");    if (pTcb->options & VX_UNBREAKABLE)	strcat (pString, "VX_UNBREAKABLE      ");    if (pTcb->options & VX_DEALLOC_STACK)	strcat (pString, "VX_DEALLOC_STACK    ");    if (pTcb->options & VX_FP_TASK)	strcat (pString, "VX_FP_TASK          ");    if (pTcb->options & VX_DSP_TASK)	strcat (pString, "VX_DSP_TASK         ");#ifdef _WRS_ALTIVEC_SUPPORT    if (pTcb->options & VX_ALTIVEC_TASK)        strcat (pString, "VX_ALTIVEC_TASK     ");#endif /* _WRS_ALTIVEC_SUPPORT */#ifdef _WRS_SPE_SUPPORT    if (pTcb->options & VX_SPE_TASK)        strcat (pString, "VX_SPE_TASK     ");#endif /* _WRS_SPE_SUPPORT */    if (pTcb->options & VX_STDIO)	strcat (pString, "VX_STDIO            ");    if (pTcb->options & VX_ADA_DEBUG)	strcat (pString, "VX_ADA_DEBUG        ");    if (pTcb->options & VX_FORTRAN)	strcat (pString, "VX_FORTRAN          ");    if (pTcb->options & VX_PRIVATE_ENV)	strcat (pString, "VX_PRIVATE_ENV      ");    if (pTcb->options & VX_NO_STACK_FILL)	strcat (pString, "VX_NO_STACK_FILL    ");    return (OK);    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
人人超碰91尤物精品国产| 国产欧美日韩在线观看| 奇米777欧美一区二区| 欧美精品乱码久久久久久按摩| 午夜精品福利一区二区三区av | 91啪在线观看| 亚洲欧美日韩国产综合| 欧美日韩国产综合一区二区| 日韩国产欧美在线视频| 久久一区二区视频| av在线一区二区三区| 亚洲国产精品久久久久秋霞影院| 欧美精品vⅰdeose4hd| 欧美三电影在线| 亚洲黄色小说网站| 欧美群妇大交群的观看方式| 看电视剧不卡顿的网站| 国产亚洲一二三区| 色伊人久久综合中文字幕| 午夜国产精品影院在线观看| 精品久久久久一区| 91一区二区在线| 日本少妇一区二区| 国产精品女同一区二区三区| 欧美又粗又大又爽| 久久精品国产成人一区二区三区 | 亚洲精品乱码久久久久久久久 | 欧美电影免费观看完整版| 国产一区二区免费看| 亚洲色图一区二区| 岛国精品在线播放| 亚洲人成7777| 欧美一区二区三区在线观看视频 | 国产成人在线视频网址| 一区二区三区小说| 久久久久久久一区| 欧美色图免费看| 成人晚上爱看视频| 奇米色一区二区| 亚洲男人的天堂在线观看| 精品黑人一区二区三区久久| 色视频欧美一区二区三区| 国产福利不卡视频| 午夜精品一区二区三区三上悠亚| 中文字幕巨乱亚洲| 精品国产91久久久久久久妲己| 99久久精品国产精品久久| 精品影院一区二区久久久| 亚洲国产视频网站| 亚洲欧美乱综合| 国产日韩欧美激情| 精品国产乱码久久| 91精品国产高清一区二区三区蜜臀 | 日本亚洲最大的色成网站www| 亚洲人吸女人奶水| 国产精品欧美极品| 国产午夜精品一区二区| 91精品国产91综合久久蜜臀| 欧美性猛片aaaaaaa做受| 色综合天天综合| 国产一区二区美女| 久久精品国产第一区二区三区| 亚洲国产aⅴ天堂久久| 亚洲免费av高清| 亚洲欧美色图小说| 欧美激情在线看| 久久久精品tv| 久久久一区二区| 国产视频在线观看一区二区三区 | 午夜国产精品一区| 亚洲国产美国国产综合一区二区| 亚洲欧美激情小说另类| 亚洲图片欧美激情| 亚洲区小说区图片区qvod| 亚洲欧美日韩一区二区三区在线观看| 欧美极品xxx| 国产精品久久久久久妇女6080| 国产欧美精品在线观看| 国产亚洲女人久久久久毛片| 国产免费观看久久| 国产精品卡一卡二| 亚洲欧美精品午睡沙发| 亚洲综合色噜噜狠狠| 午夜视频一区二区| 丝袜诱惑亚洲看片| 六月丁香婷婷久久| 国产一区三区三区| 成人国产在线观看| 色综合久久久久综合| 欧美日韩美少妇| 日韩免费高清电影| 欧美高清在线一区二区| 亚洲图片欧美激情| 午夜精品久久久久久久蜜桃app| 日韩国产欧美在线观看| 国产精品中文欧美| 91农村精品一区二区在线| 欧美体内she精高潮| 日韩一级在线观看| 中文字幕av免费专区久久| 亚洲精品五月天| 美腿丝袜一区二区三区| 成人午夜免费电影| 欧美日韩在线播放一区| 欧美成人精品二区三区99精品| 国产欧美一区在线| 亚洲国产成人91porn| 国产又黄又大久久| 91麻豆免费在线观看| 91精品国产全国免费观看| 国产欧美精品国产国产专区| 一区二区三区在线观看视频 | 国产精品毛片高清在线完整版| 亚洲女同女同女同女同女同69| 午夜影院久久久| 国产成人精品免费在线| 在线亚洲+欧美+日本专区| 日韩一区二区三区免费观看| 国产欧美日韩卡一| 午夜国产精品一区| av一区二区不卡| 欧美一区日韩一区| 亚洲免费在线电影| 国内国产精品久久| 欧美丝袜丝nylons| 国产偷国产偷亚洲高清人白洁| 亚洲国产一区二区三区青草影视| 国产一区二区成人久久免费影院| 色综合久久久久网| 色婷婷综合久久久久中文| 综合电影一区二区三区| 天天亚洲美女在线视频| 国产精品夜夜爽| 欧美人伦禁忌dvd放荡欲情| 国产欧美日韩精品a在线观看| 调教+趴+乳夹+国产+精品| 91丝袜国产在线播放| 久久色在线观看| 亚洲3atv精品一区二区三区| 91一区一区三区| 国产亚洲1区2区3区| 另类小说一区二区三区| 精品视频一区三区九区| 亚洲婷婷综合色高清在线| 国产精品羞羞答答xxdd| 欧美成人精品1314www| 狠狠色综合色综合网络| 欧美日韩不卡一区二区| 亚洲精品视频在线看| 丰满亚洲少妇av| 久久久久97国产精华液好用吗| 日韩高清欧美激情| 欧美日韩一级片在线观看| 一区二区三区四区在线| 97se亚洲国产综合自在线| 国产精品三级电影| 成人自拍视频在线| 国产欧美一区在线| 国产iv一区二区三区| 国产校园另类小说区| 国产成人综合亚洲网站| 国产亚洲女人久久久久毛片| 国产剧情一区二区| 久久奇米777| 国精产品一区一区三区mba桃花| 日韩欧美色综合| 精品在线播放午夜| 久久人人爽人人爽| 成人性生交大片免费看中文| 中文字幕乱码日本亚洲一区二区| 粉嫩嫩av羞羞动漫久久久| 国产精品青草久久| 色拍拍在线精品视频8848| 一区二区日韩电影| 欧美日韩高清在线| 日韩黄色免费电影| 日韩免费高清av| 国产成人精品免费视频网站| 国产精品全国免费观看高清| 91美女在线观看| 亚洲一区在线免费观看| 在线电影院国产精品| 久久99精品网久久| 国产欧美一区二区精品仙草咪| 成人sese在线| 亚洲国产综合在线| 精品美女在线播放| 波多野结衣91| 亚洲va中文字幕| 精品88久久久久88久久久| 国产成人激情av| 亚洲精品少妇30p| 91精品国产综合久久蜜臀| 久久精品久久综合| 一区精品在线播放| 欧美久久一二区| 风间由美一区二区三区在线观看 | 亚洲国产日韩在线一区模特| 欧美大片国产精品| 成人激情av网|