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

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

?? siglib.c

?? vxworks 5.5 kernel code
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(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)*

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆免费看片| 免费成人美女在线观看.| 欧美另类z0zxhd电影| 国产成人在线视频免费播放| 一区二区三区高清不卡| 欧美精品一区二区高清在线观看| 色偷偷久久人人79超碰人人澡| 国产精品伦理一区二区| 91福利视频网站| 天天av天天翘天天综合网色鬼国产| 久久蜜桃av一区精品变态类天堂| 91在线无精精品入口| 日韩在线a电影| 国内精品免费**视频| 日韩久久久精品| 色久综合一二码| 丁香激情综合国产| 久久精品国产精品亚洲精品| 亚洲黄色尤物视频| 国产精品亲子乱子伦xxxx裸| 日韩欧美一区二区视频| 欧美无乱码久久久免费午夜一区| 成人国产精品视频| 国产米奇在线777精品观看| 日韩高清不卡在线| 亚洲444eee在线观看| 国产精品免费aⅴ片在线观看| 久久这里只有精品首页| 欧美一区二区三区在线看| 精品va天堂亚洲国产| 国产成人aaa| 国产一区二区调教| 久久97超碰国产精品超碰| 天堂一区二区在线免费观看| 亚洲永久免费av| 亚洲精品精品亚洲| 亚洲男女一区二区三区| 中文字幕 久热精品 视频在线 | 一区二区日韩av| 一区视频在线播放| 中文字幕亚洲视频| 日韩一区中文字幕| 国产精品久久久久久久岛一牛影视 | 国产女主播一区| 国产亲近乱来精品视频| 中文字幕精品综合| 欧美国产1区2区| 综合欧美一区二区三区| 中文字幕在线不卡视频| 亚洲欧美日韩在线| 一区二区不卡在线视频 午夜欧美不卡在| 一色屋精品亚洲香蕉网站| 亚洲精品菠萝久久久久久久| 一区二区三区四区中文字幕| 一区二区三区国产精品| 天堂在线一区二区| 精品亚洲成a人| 成人中文字幕在线| 色94色欧美sute亚洲线路一ni| 91黄色免费看| 91精选在线观看| 久久久国产一区二区三区四区小说| 国产亚洲精品资源在线26u| 国产精品毛片大码女人| 亚洲伊人伊色伊影伊综合网| 五月婷婷久久综合| 国产麻豆91精品| caoporm超碰国产精品| 日本韩国一区二区三区视频| 欧美三级蜜桃2在线观看| 精品少妇一区二区三区免费观看| 国产午夜精品久久久久久久 | 91在线视频在线| 欧美日韩一级视频| 欧美r级电影在线观看| 日本一区二区视频在线观看| 亚洲精品久久久久久国产精华液| 免费久久精品视频| 成+人+亚洲+综合天堂| 欧美女孩性生活视频| 国产午夜精品一区二区三区视频 | 欧美成人在线直播| 成人免费小视频| 蜜桃一区二区三区在线| 成人av网站免费观看| 6080国产精品一区二区| 国产三级精品视频| 午夜视频久久久久久| 国产福利电影一区二区三区| 91黄色免费版| 国产欧美日本一区二区三区| 亚洲mv大片欧洲mv大片精品| 国产精品2024| 91精品国产综合久久久久| 国产欧美日韩视频在线观看| 日韩国产高清影视| av网站一区二区三区| 日韩视频一区二区在线观看| 亚洲免费视频成人| 精品一区二区三区影院在线午夜| 在线免费精品视频| 欧美国产欧美亚州国产日韩mv天天看完整 | 日本精品一级二级| 久久理论电影网| 婷婷综合另类小说色区| 91丨九色丨尤物| 久久色成人在线| 日本在线不卡视频| 日本高清无吗v一区| 国产人久久人人人人爽| 日av在线不卡| 欧美日本国产一区| 一区二区三区欧美在线观看| 成人丝袜18视频在线观看| 精品国产一区二区三区忘忧草| 亚洲va天堂va国产va久| 色婷婷亚洲一区二区三区| 国产精品久久国产精麻豆99网站| 精品一区二区久久| 欧美日韩国产色站一区二区三区| 亚洲色图第一区| 成人伦理片在线| 国产日韩精品久久久| 国产一区二三区| 欧美成人精品3d动漫h| 日韩综合在线视频| 欧美调教femdomvk| 亚洲影院在线观看| 欧美三级电影在线观看| 亚洲欧美偷拍卡通变态| 91片黄在线观看| 亚洲毛片av在线| 一本色道久久综合亚洲aⅴ蜜桃 | 国产伦精品一区二区三区免费迷 | 久久午夜国产精品| 激情另类小说区图片区视频区| 欧美一区中文字幕| 青青青伊人色综合久久| 日韩一区二区在线看| 日本不卡的三区四区五区| 337p亚洲精品色噜噜| 日本va欧美va欧美va精品| 日韩午夜激情电影| 久久成人av少妇免费| 国产亚洲一区二区三区| 成人综合婷婷国产精品久久蜜臀| 国产精品女同互慰在线看| 99久久婷婷国产| 亚洲影院在线观看| 日韩一区二区三免费高清| 久久国产欧美日韩精品| 久久精品欧美日韩| 成人精品gif动图一区| 亚洲精品你懂的| 欧美剧情电影在线观看完整版免费励志电影 | 欧美va日韩va| 福利一区二区在线| 亚洲精品视频免费看| 欧美日韩成人激情| 久久精品噜噜噜成人av农村| 国产丝袜欧美中文另类| 91丨九色丨国产丨porny| 亚洲电影激情视频网站| 欧美大胆人体bbbb| 成人免费高清在线| 亚洲自拍另类综合| 日韩精品专区在线| 成人黄色av网站在线| 性感美女久久精品| 26uuu精品一区二区| 色综合婷婷久久| 伦理电影国产精品| 国产精品成人在线观看| 欧美日本精品一区二区三区| 国产成人精品综合在线观看| 亚洲精品日韩综合观看成人91| 91精品国产免费| 成人免费毛片嘿嘿连载视频| 亚洲一线二线三线久久久| 精品久久国产字幕高潮| 91在线观看美女| 麻豆久久久久久| 亚洲欧美韩国综合色| 精品福利一二区| 欧美伊人久久久久久午夜久久久久| 蜜桃视频第一区免费观看| 国产精品久久久久久亚洲毛片| 欧美精品视频www在线观看 | 国产黄色精品网站| 亚洲444eee在线观看| 国产精品美女久久久久av爽李琼 | 欧美一区二视频| 成人av免费在线| 蜜桃av一区二区三区电影| 日韩久久一区二区| 精品99久久久久久| 欧美欧美午夜aⅴ在线观看| 成人激情视频网站| 久久超碰97人人做人人爱| 一区二区理论电影在线观看|