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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xtransam.c

?? 手寫識別Chinput源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
	ciptr->addrlen = strlen("XXXXTODO");	break;    case ACDT_VIRTCIRC:	/* For Amoeba connections the adress is not really used,	 * so just fake something	 */	ciptr->family = AF_AMOEBA;	ciptr->addr = strdup("Amoeba");	ciptr->addrlen = strlen(ciptr->addr);	break;    }}#ifdef TRANS_SERVERstatic XtransConnInfoTRANS(AMOpenCOTSServer)(thistrans, protocol, given_host, port)Xtransport	*thistrans;char		*protocol;char		*given_host;char		*port;{    XAmChanDesc    *chandesc;    XtransConnInfo  ciptr;    PRMSG(2,"AMOpenCOTSServer(%s,%s,%s)\n", protocol, given_host, port);    ciptr = (XtransConnInfo) xcalloc (1, sizeof(struct _XtransConnInfo));    if (ciptr == NULL) {        PRMSG (1, "AMOpenCotsClient: malloc failed\n", 0, 0, 0);        return NULL;    }    chandesc = XAmAllocChanDesc();    if (chandesc == NULL) {	return NULL;    }#ifdef XSERV_t    AmStartXserverThreads(chandesc);#endif    chandesc->conninfo = ciptr;    ciptr->fd = XAmChanDescToFd(chandesc);    TRANS(AmSetAddr)(ciptr, chandesc);    TRANS(AMGetPeerAddr)(ciptr);    return ciptr;}#endif /* TRANS_SERVER */#ifdef TRANS_CLIENTstatic XtransConnInfoTRANS(AMOpenCLTSClient)(thistrans, protocol, host, port)Xtransport	*thistrans;char		*protocol;char		*host;char		*port;{    XtransConnInfo	ciptr;    int 		i;        PRMSG(1,"AMOpenCLTSClient(%d,%s,%s)\n", protocol, host, port );    /* TODO */    return NULL;}			#endif /* TRANS_CLIENT */#ifdef TRANS_SERVERstatic XtransConnInfoTRANS(AMOpenCLTSServer)(thistrans, protocol, host, port)Xtransport	*thistrans;char		*protocol;char		*host;char		*port;{    XtransConnInfo	ciptr;    int 		i;        PRMSG(1,"AMOpenCLTSServer(%d,%s,%s)\n", protocol, host, port );    /* TODO */    return NULL;}			static intTRANS(AMResetListener)(ciptr)XtransConnInfo	ciptr;{    PRMSG(2,"AMResetListener()\n", 0, 0, 0 );    /* nothing to do? */    return 0;}#endif /* TRANS_SERVER */staticTRANS(AMSetOption)(ciptr, option, arg)XtransConnInfo	ciptr;int		option;int		arg;{    PRMSG(1,"AMSetOption(%d,%d,%d)\n", ciptr->fd, option, arg );    /* TODO */    return -1;}#ifdef TRANS_SERVERstaticTRANS(AMCreateListener)(ciptr, req)XtransConnInfo	ciptr;char	       *req;{    PRMSG(2,"AMCreateListener(%x->%d,%x)\n", ciptr, ciptr->fd, req );    /* Listener threads are already created at this point */    return 0;}static XtransConnInfoTRANS(AMAccept)(ciptr)XtransConnInfo	ciptr;{    XAmChanDesc    *chandesc;    XtransConnInfo  newciptr;    PRMSG(2,"AMAccept(%x->%d)\n", ciptr, ciptr->fd, 0 );#if defined(XSERV_t) || defined(FS_t)    chandesc = XAmFetchConnectingClient();    if (chandesc == NULL) {        PRMSG (1, "AMAccept: no client waiting?\n", 0, 0, 0);        return NULL;    }    nNewConns--;    newciptr = (XtransConnInfo) xcalloc (1, sizeof(struct _XtransConnInfo));    if (newciptr == NULL)    {        PRMSG (1, "AMAccept: malloc failed\n", 0, 0, 0);        return NULL;    }    newciptr->fd = XAmChanDescToFd(chandesc);    chandesc->conninfo = newciptr;    chandesc->status |= CONN_ALIVE;    PRMSG(2,"AMAccept: OK: (%x->%d)\n", newciptr, newciptr->fd, 0 );    TRANS(AmSetAddr)(newciptr, chandesc);    TRANS(AMGetPeerAddr)(newciptr);        return newciptr;#else    return NULL;#endif}#endif /* TRANS_SERVER */#ifdef TRANS_CLIENTstaticTRANS(AMConnect)(ciptr, host, port)XtransConnInfo	ciptr;char		*host;char		*port;{    /* If this function is called, we are already connected */    PRMSG(2, "AMConnect(%d,%s)\n", ciptr->fd, host, 0);    return 0;}#endif /* TRANS_CLIENT */intTRANS(AmFdBytesReadable)(fd, count)int fd;BytesReadable_t	*count;{    register XAmChanDesc *chandesc;    PRMSG(2, "AmFdBytesReadable(%d,%x): ", fd, count, 0 );#ifndef XSERV_t    /* give reader threads a chance: */    threadswitch();#endif    errno = 0;    chandesc = XAmFdToChanDesc(fd);    if (chandesc == NULL || chandesc->state != ACDS_USED) {	errno = EBADF;	*count = 0;	return -1;    }    switch (chandesc->type) {    case ACDT_TCPIP:	*count = cb_full(chandesc->circbuf);	break;    case ACDT_VIRTCIRC:	*count = vc_avail(chandesc->virtcirc, VC_IN);	break;    }    if (*count < 0) {	errno = (chandesc->state == ACDS_CLOSED) ? EINTR : EPIPE;	*count = 0;	return -1;    }    PRMSG(2, "AMFdBytesReadable: %d\n", *count, 0, 0 );    return 0;}staticTRANS(AMBytesReadable)(ciptr, count)XtransConnInfo	ciptr;BytesReadable_t	*count;{    return TRANS(AmFdBytesReadable)(ciptr->fd, count);}staticTRANS(AMRead)(ciptr, buf, count)XtransConnInfo	ciptr;char		*buf;int		count;{    int fdi;    register XAmChanDesc *chandesc;    register int rv;    BytesReadable_t avail;    fdi = ciptr->fd;    PRMSG(2, "AMRead(%d,%x,%d)\n", ciptr->fd, buf, count );    errno = 0;    chandesc = XAmFdToChanDesc(fdi);    if (chandesc == NULL || chandesc->state != ACDS_USED) {	errno = EBADF;	return -1;    }    /* do a non-blocking read (maybe only conditionally?) */    if ((TRANS(AMBytesReadable)(ciptr, &avail)) == 0) {	if (avail <= 0) {	    PRMSG(2, "AMRead: nothing available yet\n", 0, 0, 0);	    errno = EAGAIN;	    return 0;	} else if (count > avail) {	    PRMSG(2, "AMRead(%d): only %d of %d available\n",		  ciptr->fd, avail, count);	    count = avail; /* just read amount available */	}    } else {	PRMSG(1, "AMRead: ...BytesReadable failed\n", 0, 0, 0);	return -1;    }    switch (chandesc->type) {    case ACDT_TCPIP:	rv = cb_gets(chandesc->circbuf, buf, count, count);	if (rv != count) {	    if (rv == 0) {		fprintf(stderr, "Xlib: Cannot read circbuf\n");		errno = EPIPE;		rv = -1;	    } else {		fprintf(stderr, "Xlib: Cannot read circbuf (%d)\n", rv);	    }	}	break;    case ACDT_VIRTCIRC:	rv = vc_readall(chandesc->virtcirc, buf, count);	if (rv < 0) {	    fprintf(stderr, "Xlib: Cannot read virtual circuit\n");	    errno = EPIPE;	    rv = -1;	}	break;    }    /* The circular buffer writer will only UP the semaphore when     * characters are available; we have to down it ourselfs.     */    if (chandesc->sema && rv > 0)	sema_mdown(chandesc->sema, rv);    PRMSG(2, "AMRead: %d bytes\n", rv, 0, 0);    return rv;}staticTRANS(AMWrite)(ciptr, buf, count)XtransConnInfo	ciptr;char		*buf;int		count;{    register XAmChanDesc *chandesc;    register int written;        PRMSG(2, "AMWrite(%d,%x,%d)\n", ciptr->fd, buf, count );    errno = 0;    written = 0;    chandesc = XAmFdToChanDesc(ciptr->fd);    if (chandesc == NULL || chandesc->state != ACDS_USED) {	errno = EBADF;	return -1;    }    switch (chandesc->type) {    case ACDT_TCPIP:	while (count > 0) {	    bufsize bsize;	    int wrcnt;	    wrcnt = count > TCPIP_BUFSIZE ? TCPIP_BUFSIZE : count;	    bsize = tcpip_write(&chandesc->chancap, buf, wrcnt);	    if (ERR_STATUS(bsize)) {		fprintf(stderr, "Xlib: TCP/IP write failed (%s)\n",			tcpip_why(ERR_CONVERT(bsize)));		errno = EPIPE;		return -1;	    }	    if (bsize != wrcnt) {		fprintf(stderr,			"Xlib: TCP/IP write failed (expected %d, wrote %d)\n",			(int)bsize, wrcnt);		errno = EPIPE;		return -1;	    }	    buf += bsize;	    count -= (int) bsize;	    written += (int) bsize;	}	break;    case ACDT_VIRTCIRC:	if ((written = vc_write(chandesc->virtcirc, buf, count)) < 0) {	    fprintf(stderr, "Xlib: virtual circuit write failed\n");	    errno = EPIPE;	    return -1;	}	break;    }    return written;}staticTRANS(AMReadv)(ciptr, iov, n)XtransConnInfo	ciptr;struct iovec   *iov;int		n;{    int i;    int count = 0, thiscount;    PRMSG(2, "AMReadv(%d,%x,%d)\n", ciptr->fd, ciptr, n );    for (i = 0; i < n; i++, iov++) {	if (iov->iov_len) {	    thiscount = TRANS(AMRead)(ciptr, iov->iov_base, iov->iov_len);	    if (thiscount < 0) return thiscount;	    count += thiscount;	    if (thiscount < iov->iov_len) break;	}    }    return count;}staticTRANS(AMWritev)(ciptr, iov, n)XtransConnInfo	ciptr;struct iovec	*iov;int		n;{    int i;    int count = 0, thiscount;    PRMSG(2, "AMWritev(%d,%x,%d)\n", ciptr->fd, iov, n );    for (i = 0; i < n; i++, iov++) {	if (iov->iov_len) {	    thiscount = TRANS(AMWrite)(ciptr, iov->iov_base, iov->iov_len);	    if (thiscount < 0)		return thiscount;	    count += thiscount;	    if (thiscount < iov->iov_len) break;	}    }    return count;}staticTRANS(AMDisconnect)(ciptr)XtransConnInfo	ciptr;{    register XAmChanDesc *chandesc;    PRMSG(2, "AMDisconnect(%x->%d)\n", ciptr, ciptr->fd, 0 );    chandesc = XAmFdToChanDesc(ciptr->fd);    if (chandesc != NULL) {	switch (chandesc->type) {	case ACDT_TCPIP:	    if (chandesc->signal != -1) {		sig_raise(chandesc->signal);		chandesc->signal = -1;	    }	    std_destroy(&chandesc->chancap);	    break;	case ACDT_VIRTCIRC:	    vc_close(chandesc->virtcirc, VC_BOTH | VC_ASYNC);	    break;	}#ifdef XSERV_t	if (ciptr->fd == maxClient - 1) {	    maxClient--;	    /* we could look if maxClient can be reduced even more */	}#endif	XAmFreeChanDesc(chandesc);    }    return 0;}staticTRANS(AMClose)(ciptr)XtransConnInfo	ciptr;{    PRMSG(2, "AMClose(%x->%d)\n", ciptr, ciptr->fd, 0 );    return TRANS(AMDisconnect)(ciptr);}Xtransport	TRANS(AmConnFuncs) = {	/* Combined AMOEBA RPC/TCP Interface; maybe we should split this  */	"amcon",	0,#ifdef TRANS_CLIENT	TRANS(AMOpenCOTSClient),#endif /* TRANS_CLIENT */#ifdef TRANS_SERVER	TRANS(AMOpenCOTSServer),#endif /* TRANS_SERVER */#ifdef TRANS_CLIENT	TRANS(AMOpenCLTSClient),#endif /* TRANS_CLIENT */#ifdef TRANS_SERVER	TRANS(AMOpenCLTSServer),#endif /* TRANS_SERVER */	TRANS(AMSetOption),#ifdef TRANS_SERVER	TRANS(AMCreateListener),	TRANS(AMResetListener),	TRANS(AMAccept),#endif /* TRANS_SERVER */#ifdef TRANS_CLIENT	TRANS(AMConnect),#endif /* TRANS_CLIENT */	TRANS(AMBytesReadable),	TRANS(AMRead),	TRANS(AMWrite),	TRANS(AMReadv),	TRANS(AMWritev),	TRANS(AMDisconnect),	TRANS(AMClose),};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩三级中文字幕| 国产精品女上位| 日本一区二区三区高清不卡| 洋洋av久久久久久久一区| 精品一区二区在线视频| 91九色最新地址| 亚洲欧洲国产日韩| 国产毛片精品一区| 日韩一区二区电影网| 亚洲午夜影视影院在线观看| 丁香一区二区三区| 久久综合av免费| 久久福利资源站| 欧美年轻男男videosbes| 亚洲视频网在线直播| 国产91精品在线观看| 久久伊99综合婷婷久久伊| 日韩中文欧美在线| 欧美日韩午夜在线视频| 一区二区三区四区在线| 91丝袜高跟美女视频| 国产精品人成在线观看免费| 国产在线精品一区二区夜色| 日韩精品专区在线影院观看| 五月婷婷激情综合| 欧美日韩国产高清一区二区| 有坂深雪av一区二区精品| 91视频xxxx| 亚洲日本在线a| 色丁香久综合在线久综合在线观看| 欧美国产成人精品| 97超碰欧美中文字幕| 日韩一区日韩二区| 91在线精品一区二区三区| 亚洲手机成人高清视频| 色婷婷av一区二区三区大白胸 | 日韩在线一区二区三区| 欧美日韩精品一区二区在线播放| 亚洲国产精品一区二区尤物区| 欧美在线观看一二区| 亚洲欧美日韩综合aⅴ视频| 日本高清不卡在线观看| 一区二区高清免费观看影视大全| 在线观看www91| 视频一区二区中文字幕| 91精品国产综合久久精品图片| 喷水一区二区三区| 久久久蜜桃精品| 成人国产精品免费观看视频| 中文字幕一区二区三区四区不卡| 91亚洲资源网| 日韩国产成人精品| 久久久蜜臀国产一区二区| 99综合电影在线视频| 亚洲自拍另类综合| 日韩精品资源二区在线| av在线播放一区二区三区| 亚洲国产欧美日韩另类综合| 日韩欧美电影在线| 粉嫩aⅴ一区二区三区四区五区 | 91精品久久久久久久久99蜜臂| 日韩avvvv在线播放| 久久嫩草精品久久久精品一| www.亚洲激情.com| 日本免费在线视频不卡一不卡二 | 国产精品88av| 伊人夜夜躁av伊人久久| 精品国产免费人成在线观看| 成人久久视频在线观看| 日韩国产精品久久久久久亚洲| 久久久精品黄色| 欧美亚洲国产怡红院影院| 国产在线视视频有精品| 亚洲专区一二三| 国产调教视频一区| 91超碰这里只有精品国产| 成人免费视频播放| 蜜桃视频在线观看一区| 亚洲日本va在线观看| ww亚洲ww在线观看国产| 欧美午夜片在线看| 99久久久无码国产精品| 国内精品嫩模私拍在线| 视频一区视频二区中文字幕| 国产精品电影院| 久久精品亚洲乱码伦伦中文| 欧美老年两性高潮| 99久久综合狠狠综合久久| 激情综合网av| 日韩国产成人精品| 亚洲一区二区三区精品在线| 中文乱码免费一区二区| 欧美精品一区二区三区久久久| 欧美性xxxxx极品少妇| 一本久久综合亚洲鲁鲁五月天| 国产福利一区二区| 看国产成人h片视频| 日韩精品乱码免费| 性做久久久久久久免费看| 亚洲精品久久久久久国产精华液| 欧美国产日韩亚洲一区| 国产欧美综合在线| 久久夜色精品国产欧美乱极品| 欧美精品在线一区二区三区| 欧美三级资源在线| 在线观看视频一区二区| 日本韩国欧美一区| 欧美午夜电影在线播放| 欧美手机在线视频| 欧美人与禽zozo性伦| 欧美午夜精品理论片a级按摩| 在线中文字幕不卡| 色综合久久精品| 欧美伊人精品成人久久综合97| 91行情网站电视在线观看高清版| 在线欧美日韩国产| 欧美日韩国产系列| 欧美精品久久一区| 欧美一区二区三区视频在线| 制服视频三区第一页精品| 欧美日本在线看| 欧美mv日韩mv亚洲| xf在线a精品一区二区视频网站| 久久久久国产精品麻豆ai换脸| 国产亚洲成av人在线观看导航| 欧美国产乱子伦| 亚洲美女免费视频| 香蕉乱码成人久久天堂爱免费| 天天爽夜夜爽夜夜爽精品视频| 日韩精品一级二级 | 亚洲午夜久久久久久久久电影院| 亚洲欧洲制服丝袜| 日韩精品电影在线观看| 黄页网站大全一区二区| 风流少妇一区二区| 91丨九色丨黑人外教| 欧美色图免费看| 精品久久久久久久久久久院品网 | 日韩精品专区在线影院观看| 2020国产精品| 亚洲人吸女人奶水| 麻豆久久久久久久| 成人v精品蜜桃久久一区| 91福利区一区二区三区| 日韩欧美在线影院| 国产精品久线在线观看| 亚洲国产视频在线| 国产精品影视网| 欧美无乱码久久久免费午夜一区 | 精品一区二区在线看| 成人午夜在线免费| 欧美日韩久久一区| 国产精品亲子乱子伦xxxx裸| 亚洲国产精品嫩草影院| 国产精品自拍av| 欧美日韩午夜在线| 亚洲欧美在线aaa| 久久99日本精品| 91久久免费观看| 欧美韩国日本不卡| 欧美aⅴ一区二区三区视频| av一二三不卡影片| 精品国产一区二区在线观看| 亚洲视频免费在线| 国产盗摄女厕一区二区三区| 7777精品伊人久久久大香线蕉超级流畅| 国产日韩欧美一区二区三区综合 | 国产成人亚洲综合a∨婷婷图片| 在线观看网站黄不卡| 国产欧美一区二区精品性| 日韩综合一区二区| 欧美羞羞免费网站| 亚洲天堂av一区| 国产精华液一区二区三区| 欧美久久高跟鞋激| 亚洲一区二区四区蜜桃| www..com久久爱| 国产三级精品视频| 精品一区二区三区的国产在线播放| 一本一道久久a久久精品| 国产精品免费久久| 国产麻豆精品95视频| 欧美成人video| 蜜臀久久99精品久久久画质超高清| 91黄色免费版| 亚洲一区在线观看网站| 不卡的av电影在线观看| 欧美高清在线精品一区| 国产一区999| 精品国免费一区二区三区| 美女视频免费一区| 日韩欧美高清一区| 国内精品在线播放| 久久综合中文字幕| 国产盗摄精品一区二区三区在线| 欧美v日韩v国产v| 国产一区二区三区不卡在线观看| 欧美一区二区精美| 看电视剧不卡顿的网站| 精品日韩一区二区三区 |