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

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

?? siglib.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號(hào):
		    {		    *(struct sigpend **)pSigPend = _pSigQueueFreeHead;		    _pSigQueueFreeHead = pSigPend;		    }		}	    }	windExit ();				/* KERNEL EXIT */	}    return (OK);    }/********************************************************************************* sigprocmask - examine and/or change the signal mask (POSIX)** This routine allows the calling process to examine and/or change its* signal mask.  If the value of <pSet> is not NULL, it points to a set of* signals to be used to change the currently blocked set.** The value of <how> indicates the manner in which the set is changed and* consists of one of the following, defined in signal.h:* .iP SIG_BLOCK 4* the resulting set is the union of the current set and the signal set* pointed to by <pSet>.* .iP SIG_UNBLOCK* the resulting set is the intersection of the current set and the complement* of the signal set pointed to by <pSet>.* .iP SIG_SETMASK* the resulting set is the signal set pointed to by <pSset>.** RETURNS: OK (0), or ERROR (-1) if <how> is invalid.** ERRNO: EINVAL** SEE ALSO: sigsetmask(), sigblock()*/int sigprocmask    (    int			how,	/* how signal mask will be changed */    const sigset_t	*pSet,	/* location of new signal mask */    sigset_t		*pOset	/* location to store old signal mask */    )    {    struct sigtcb *pSigTcb;    if ((pSigTcb = sigTcbGet()) == NULL)	return (ERROR);				/* errno was set */    kernelState = TRUE;				/* KERNEL ENTER */    if (pOset != NULL)	*pOset = pSigTcb->sigt_blocked;    if (pSet != NULL)	switch (how)	    {	    case SIG_BLOCK:		pSigTcb->sigt_blocked |= *pSet;		windExit ();			/* KERNEL EXIT */		return (OK);	    case SIG_UNBLOCK:		pSigTcb->sigt_blocked &= ~*pSet;		break;	    case SIG_SETMASK:		pSigTcb->sigt_blocked = *pSet;		break;	    default:		windExit ();			/* KERNEL EXIT */		errnoSet (EINVAL);		return (ERROR);	    }    /*     * check to see if we opened up any pending signals and run them.     * sigpendrun has the horrible symantic of doing a windExit if     * successful.     */    if (sigPendRun(pSigTcb) == FALSE)	windExit ();				/* KERNEL EXIT */    return (OK);    }/********************************************************************************* sigpending - retrieve the set of pending signals blocked from delivery (POSIX)** This routine stores the set of signals that are blocked from delivery and* that are pending for the calling process in the space pointed to by* <pSet>.** RETURNS: OK (0), or ERROR (-1) if the signal TCB cannot* be allocated.** ERRNO: ENOMEM*/int sigpending    (    sigset_t	*pSet		/* location to store pending signal set */    )    {    struct sigtcb *pSigTcb;    if ((pSigTcb = sigTcbGet ()) == NULL)	return (ERROR);    *pSet = pSigTcb->sigt_pending;    return (OK);    }/********************************************************************************* sigsuspend - suspend the task until delivery of a signal (POSIX)** This routine suspends the task until delivery of a signal.  While* suspended, <pSet> is used as the set of masked signals.** NOTE: Since the sigsuspend() function suspends thread execution* indefinitely, there is no successful completion return value.** RETURNS: -1, always.** ERRNO: EINTR*/int sigsuspend    (    const sigset_t	*pSet	/* signal mask while suspended */    )    {    Q_HEAD qHead;    sigset_t oldset;    struct sigtcb *pSigTcb;    int savtype;    if ((pSigTcb = sigTcbGet ()) == NULL)        return (ERROR);			/* errno was set */#ifdef WV_INSTRUMENTATION    /* windview - level 1 event logging */    EVT_OBJ_SIG (EVENT_SIGSUSPEND, 1, (int) *pSet, 0);#endif    if (_func_pthread_setcanceltype != NULL)        {        _func_pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &savtype);        }    kernelState = TRUE;				/* KERNEL ENTER */    /* save old set */    oldset = pSigTcb->sigt_blocked;    pSigTcb->sigt_blocked = *pSet;    /* check for pending */    if (sigPendRun (pSigTcb) == TRUE)	{	sigprocmask (SIG_SETMASK, &oldset, NULL);	if (_func_pthread_setcanceltype != NULL)            {            _func_pthread_setcanceltype(savtype, NULL);            }	errnoSet (EINTR);	return (ERROR);	}    /*     * Put ourself to sleep until a signal comes in.     */    qInit (&qHead, Q_FIFO, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);#ifdef WV_INSTRUMENTATION    /* windview - level 2 event logging */    EVT_TASK_1 (EVENT_OBJ_SIGSUSPEND, pSet); #endif    if (windPendQPut (&qHead, WAIT_FOREVER) != OK)        {	windExit ();				/* KERNEL EXIT */        if (_func_pthread_setcanceltype != NULL)            {            _func_pthread_setcanceltype(savtype, NULL);            }	return (ERROR);        }    windExit ();				/* KERNEL EXIT */    /*     * Restore old mask set.     */    sigprocmask(SIG_SETMASK, &oldset, NULL);    if (_func_pthread_setcanceltype != NULL)        {        _func_pthread_setcanceltype(savtype, NULL);        }    errnoSet (EINTR);    return (ERROR);    }/********************************************************************************* pause - suspend the task until delivery of a signal (POSIX)** This routine suspends the task until delivery of a signal.** NOTE: Since the pause() function suspends thread execution indefinitely,* there is no successful completion return value.** RETURNS: -1, always.** ERRNO: EINTR*/int pause (void)    {    Q_HEAD qHead;    int savtype;#ifdef WV_INSTRUMENTATION    /* windview - level 1 event logging */    EVT_OBJ_SIG (EVENT_PAUSE, 1, taskIdCurrent,0);#endif    if (_func_pthread_setcanceltype != NULL)        {        _func_pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &savtype);        }    /*     * Put ourself to sleep until a signal comes in.     */    qInit (&qHead, Q_FIFO, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);    kernelState = TRUE;				/* KERNEL ENTER */#ifdef WV_INSTRUMENTATION    /* windview - level 2 event logging */    EVT_TASK_1 (EVENT_OBJ_SIGPAUSE, taskIdCurrent);  /* log event */#endif    if (windPendQPut (&qHead, WAIT_FOREVER) != OK)        {	windExit ();				/* KERNEL EXIT */	if (_func_pthread_setcanceltype != NULL)            {            _func_pthread_setcanceltype(savtype, NULL);            }	return (ERROR);        }    windExit ();				/* KERNEL EXIT */    if (_func_pthread_setcanceltype != NULL)        {        _func_pthread_setcanceltype(savtype, NULL);        }    errnoSet (EINTR);    return (ERROR);    }/********************************************************************************* sigtimedwait - wait for a signal** The function sigtimedwait() selects the pending signal from the set* specified by <pSet>.  If multiple signals in <pSet> are pending, it will* remove and return the lowest numbered one.  If no signal in <pSet> is pending* at the* time of the call, the task will be suspend until one of the signals in <pSet>* become pending, it is interrupted by an unblocked caught signal, or* until the time interval specified by <pTimeout> has expired.* If <pTimeout> is NULL, then the timeout interval is forever.** If the <pInfo> argument is non-NULL, the selected signal number is* stored in the `si_signo' member, and the cause of the signal is* stored in the `si_code' member.  If the signal is a queued signal,* the value is stored in the `si_value' member of <pInfo>; otherwise* the content of `si_value' is undefined.** The following values are defined in signal.h for `si_code':* .iP SI_USER* the signal was sent by the kill() function.* .iP SI_QUEUE* the signal was sent by the sigqueue() function.* .iP SI_TIMER* the signal was generated by the expiration of a timer set by timer_settime().* .iP SI_ASYNCIO* the signal was generated by the completion of an asynchronous I/O request.* .iP SI_MESGQ* the signal was generated by the arrival of a message on an empty message* queue.* .LP** The function sigtimedwait() provides a synchronous mechanism for tasks* to wait for asynchromously generated signals.  A task should use* sigprocmask() to block any signals it wants to handle synchronously and* leave their signal handlers in the default state.  The task can then* make repeated calls to sigtimedwait() to remove any signals that are* sent to it.** RETURNS: Upon successful completion (that is, one of the signals specified* by <pSet> is pending or is generated) sigtimedwait() will return the selected* signal number.  Otherwise, a value of -1 is returned and `errno' is set to* indicate the error.** ERRNO* .iP EINTR* The wait was interrupted by an unblocked, caught signal.* .iP EAGAIN* No signal specified by <pSet> was delivered within the specified timeout* period.* .iP EINVAL* The <pTimeout> argument specified a `tv_nsec' value less than zero or greater* than or equal to 1000 million.** SEE ALSO: sigwait()*/int sigtimedwait    (    const sigset_t		*pSet,	/* the signal mask while suspended */    struct siginfo		*pInfo,	/* return value */    const struct timespec	*pTimeout    )    {    struct sigtcb *pSigTcb;    struct sigwait waitinfo;    struct siginfo info;    int signo;    int wait;    int status;    int savtype;    if ((pSigTcb = sigTcbGet()) == NULL)	return (ERROR);			/* errno was set */    if (_func_pthread_setcanceltype != NULL)        {        _func_pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &savtype);        }    if (pTimeout != 0)	{	int tickRate = sysClkRateGet();	if ((pTimeout->tv_nsec < 0) || (pTimeout->tv_nsec > 1000000000))	    {	    errno = EINVAL;	    if (_func_pthread_setcanceltype != NULL)                {                _func_pthread_setcanceltype(savtype, NULL);                }	    return (ERROR);	    }	wait = pTimeout->tv_sec * tickRate +		pTimeout->tv_nsec / (1000000000 / tickRate);	}    else	wait = WAIT_FOREVER;    kernelState = TRUE;				/* KERNEL ENTER */    if ((signo = sigPendGet(pSigTcb, pSet, &info)) > 0)	{	windExit ();				/* KERNEL EXIT */	if (pInfo != NULL)		*pInfo = info;        if (_func_pthread_setcanceltype != NULL)            {            _func_pthread_setcanceltype(savtype, NULL);            }		return (signo);	}    waitinfo.sigw_set = *pSet;    qInit (&waitinfo.sigw_wait, Q_FIFO, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);    pSigTcb->sigt_wait = &waitinfo;#ifdef WV_INSTRUMENTATION    /* windview - level 2 event logging */    EVT_TASK_1 (EVENT_OBJ_SIGWAIT, waitinfo.sigw_wait);#endif    if (windPendQPut (&waitinfo.sigw_wait, wait) != OK)        {	windExit ();				/* KERNEL EXIT */         if (_func_pthread_setcanceltype != NULL)            {            _func_pthread_setcanceltype(savtype, NULL);            }        return (ERROR);        }    status = windExit ();				/* KERNEL EXIT */    pSigTcb->sigt_wait = 0;    if (status != 0)	{ 	if (_func_pthread_setcanceltype != NULL)            {            _func_pthread_setcanceltype(savtype, NULL);            }	errnoSet ((status == RESTART) ? EINTR : EAGAIN);	return (-1);	}    if (pInfo != NULL)	*pInfo = waitinfo.sigw_info;    if (_func_pthread_setcanceltype != NULL)        {        _func_pthread_setcanceltype(savtype, NULL);        }     return (waitinfo.sigw_info.si_signo);    }/********************************************************************************* sigwaitinfo - wait for real-time signals** The function sigwaitinfo() is equivalent to calling sigtimedwait() with* <pTimeout> equal to NULL.  See that manual entry for more information.** RETURNS: Upon successful completion (that is, one of the signals specified* by <pSet> is pending or is generated) sigwaitinfo() returns the selected* signal number.  Otherwise, a value of -1 is returned and `errno' is set to* indicate the error.** ERRNO* .iP EINTR* The wait was interrupted by an unblocked, caught signal.*/int sigwaitinfo    (    const sigset_t	*pSet,	/* the signal mask while suspended */    struct siginfo	*pInfo	/* return value */    )    {    return (sigtimedwait (pSet, pInfo, (struct timespec *)NULL));    }/********************************************************************************* sigwait - wait for a signal to be delivered (POSIX)*

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲成aⅴ人片在线观看| 欧美视频精品在线| 舔着乳尖日韩一区| 亚洲午夜激情av| 亚洲国产sm捆绑调教视频| 国产激情偷乱视频一区二区三区| 国产精品对白交换视频| 亚洲第一成人在线| 日本在线不卡视频| 久久电影网站中文字幕 | 麻豆精品在线视频| 国产精品一区二区你懂的| 国产91富婆露脸刺激对白| 成人av片在线观看| 色综合天天综合狠狠| 欧美少妇一区二区| 99久久精品国产精品久久| 99r精品视频| 久久综合一区二区| 午夜在线电影亚洲一区| 成人午夜视频在线| 在线观看国产91| 日韩精品一区二区三区在线播放| www.欧美日韩| 欧美性猛片aaaaaaa做受| 中文字幕亚洲欧美在线不卡| 亚洲成人资源网| 在线观看一区二区精品视频| 国产精品丝袜91| 天天亚洲美女在线视频| 欧美性生交片4| 亚洲一区二区三区自拍| 精品一区二区精品| 91在线视频18| 国产精品国产自产拍高清av| 国产成人av电影免费在线观看| 欧美午夜精品久久久久久孕妇| 欧美成va人片在线观看| 综合分类小说区另类春色亚洲小说欧美| 国产午夜久久久久| 久久99在线观看| 日韩一区二区三区免费看| 国产精品久久看| 成人av在线资源网| 国产精品久久久久久妇女6080| 欧美精品vⅰdeose4hd| www.日韩大片| 日韩一区二区三区视频| 亚洲美女屁股眼交| 亚洲丰满少妇videoshd| 欧美色图天堂网| 日韩午夜激情免费电影| 美女任你摸久久| 精品国产污污免费网站入口| 亚洲一区二区三区四区在线免费观看 | 99久久精品免费观看| 亚洲欧洲韩国日本视频| 色综合久久综合网97色综合| 久久久久久久综合狠狠综合| 天天做天天摸天天爽国产一区| 国产91丝袜在线播放0| 日本一区二区电影| 青青草97国产精品免费观看无弹窗版| 日本不卡视频在线| 欧美一区二区免费观在线| 亚洲卡通欧美制服中文| 国产精品中文字幕日韩精品| 亚洲欧美综合色| 99久久99久久精品免费观看| 一区二区三区日韩| av一区二区三区四区| 亚洲美女在线一区| 91精品一区二区三区在线观看| 宅男在线国产精品| 狠狠v欧美v日韩v亚洲ⅴ| 欧美一级一级性生活免费录像| 亚洲人xxxx| 欧美日韩免费高清一区色橹橹| 3d成人动漫网站| 激情综合网天天干| 亚洲欧美另类综合偷拍| 欧美激情资源网| 在线观看日韩电影| 精品在线你懂的| 1区2区3区精品视频| 欧美福利一区二区| 国产成人超碰人人澡人人澡| 伊人一区二区三区| 精品国产一区二区三区久久影院 | 国产精品久久久久一区| 91成人免费网站| 亚洲欧美欧美一区二区三区| 91精品国产91久久综合桃花 | 成人免费在线视频| 欧美一级国产精品| 91捆绑美女网站| 亚洲精品日日夜夜| 日韩欧美不卡在线观看视频| 成a人片国产精品| 美女在线一区二区| 依依成人精品视频| 26uuu久久综合| 欧美性色综合网| 丁香亚洲综合激情啪啪综合| 亚洲一区二区成人在线观看| 久草精品在线观看| av日韩在线网站| 欧美xxxxxxxxx| 韩国成人福利片在线播放| 亚洲免费电影在线| 久久久久久久久久电影| 欧美日韩高清不卡| 99riav一区二区三区| 久久国产日韩欧美精品| 亚洲妇女屁股眼交7| 日韩三级中文字幕| 国产不卡高清在线观看视频| 日韩影院免费视频| 91.com视频| 91农村精品一区二区在线| 国产在线一区观看| 日本不卡一二三区黄网| 一区二区高清在线| 国产精品久久久一区麻豆最新章节| 成人性生交大合| 国内久久精品视频| 天涯成人国产亚洲精品一区av| 日韩欧美在线网站| 欧美色大人视频| 色综合久久综合| 国产99久久久国产精品免费看| 亚洲女与黑人做爰| 国产精品二区一区二区aⅴ污介绍| 欧美色综合久久| 97超碰欧美中文字幕| 国产91精品在线观看| 国产综合久久久久影院| 久久av资源网| 麻豆精品新av中文字幕| 香蕉久久夜色精品国产使用方法| 色中色一区二区| 老鸭窝一区二区久久精品| 一区二区三区四区不卡视频| 国产精品国产自产拍高清av| 国产精品午夜春色av| 久久久久久久久久久久久女国产乱| 成人激情黄色小说| 国产精品99精品久久免费| 国产酒店精品激情| 国产综合一区二区| 国产综合久久久久久鬼色| 精品一区二区av| 精品一区二区三区视频在线观看 | 欧美视频在线一区二区三区| 色哦色哦哦色天天综合| 色综合视频在线观看| 91视视频在线直接观看在线看网页在线看| 亚洲不卡一区二区三区| 一区二区三区不卡视频| 亚洲国产综合91精品麻豆| 亚洲香蕉伊在人在线观| 午夜私人影院久久久久| 日韩中文字幕一区二区三区| 日日夜夜免费精品| 日韩影视精彩在线| 久久草av在线| 国产一区二区三区香蕉| 一区二区三区欧美久久| 一区二区三区四区亚洲| 亚洲在线一区二区三区| 视频一区视频二区中文| 麻豆精品一区二区综合av| 国内精品国产成人| www.亚洲免费av| 欧美影视一区在线| 7777精品久久久大香线蕉| 精品日韩在线观看| 国产日韩欧美a| 精品少妇一区二区三区| 久久精品人人做| 国产精品国产精品国产专区不蜜 | 欧美久久久一区| 欧美电视剧免费全集观看| 国产亚洲精品免费| 亚洲视频一区二区在线观看| 亚洲一区中文日韩| 毛片不卡一区二区| 欧美剧在线免费观看网站| 日韩情涩欧美日韩视频| 国产色产综合产在线视频| 国产精品不卡在线| 亚洲成a人片在线不卡一二三区 | 久久夜色精品国产噜噜av| 国产欧美日韩亚州综合| 亚洲三级在线免费观看| 日本免费在线视频不卡一不卡二| 午夜欧美视频在线观看| 狠狠色伊人亚洲综合成人| 色综合天天综合网天天狠天天| 97久久精品人人爽人人爽蜜臀|