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

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

?? p4_fc.c

?? MPICH是MPI的重要研究,提供了一系列的接口函數,為并行計算的實現提供了編程環境.
?? C
字號:
/*  this file contains the direct fiber channel interface:    p4_initfc    p4_sendfc    p4_recvfc    */#include "p4.h"#include "p4_sys.h"#include <sys/uio.h>#include <sys/file.h>#include <sys/comio.h>/* #include <fcntl.h> */#include <sys/devinfo.h>#include <stdlib.h>/* #include <netdb.h> */#include "sfcdchi.h"int y, fds[64];struct sfc_open *fcopen;struct sfc_bind *fcbind;struct sfc_connect *fcconnect;struct sfc_listen *fclisten;struct sfc_accept *fcaccept;struct sfc_read *fcread;struct sfc_write *fcwrite;struct sfc_close *fcclose;p4_initfc(){    unsigned char *buf;    int fd;    int i;    int j;    int k;    char * device;    char * localip = NULL;    char  destip[100];    struct hostent * hp;    int remotefd;    int myid, numnodes, rc;    device = "/dev/sfc0";    fcopen = calloc(1,sizeof(struct sfc_open));    fcbind = calloc(1,sizeof(struct sfc_bind));    fcbind->name = calloc(1,sizeof(struct sfcaddr_in));    fcconnect = calloc(1,sizeof(struct sfc_connect));    fcconnect->name = calloc(1,sizeof(struct sfcaddr_in));    fcaccept = calloc(1,sizeof(struct sfc_accept));    fcaccept->address = calloc(1,sizeof(struct sfcaddr_in));    fclisten = calloc(1,sizeof(struct sfc_listen));    fcread = calloc(1,sizeof(struct sfc_read));    fcwrite = calloc(1,sizeof(struct sfc_write));    fcclose= calloc(1,sizeof(struct sfc_close));    if ((y=open(device,O_RDWR,0)) < 0)     {	fprintf(stderr, "p4_initfc: Unable to open device '%s': %s\n",		device, strerror(errno));	exit(1);    }    p4_dprintfl(30,"opening. . .\n");    if ((i = ioctl(y,SFC_OPEN,fcopen)) != 0)    {	p4_error("p4_initfc: open error: ",errno);     }    fd = fcopen->dcd;    p4_dprintfl(30,"opened fd %d. . .\n",fd);    p4_dprintfl(30,"binding port 211 to descriptor fd %d. . .\n",fd);    fcbind->dcd=fd;    fcbind->name->port = 211;    fcbind->name->type = IP_ADDR;    if (localip == NULL)	fcbind->name->inet_addr = gethostid();    else     {	hp = gethostbyname(localip);	if (hp == NULL)	{	    fprintf(stderr, "p4_initfc: %s: unknown host\n", localip);	    exit(1);	}	bcopy(hp->h_addr,&fcconnect->name->inet_addr,hp->h_length);    }    if ((i = ioctl(y,SFC_BIND,fcbind)) != 0)    {	p4_error("p4_initfc: bind error: ",errno);     }    p4_dprintfl(30,"listening for connection requests. . .\n");    fclisten->dcd = fd;    fclisten->backlog = 3;    if ((i = ioctl(y,SFC_LISTEN,fclisten)) != 0)    {	p4_error("p4_initfc: listen error: ",errno);     }    /* establish all the connections */    numnodes = p4_num_total_ids();    myid     = p4_get_my_id();    for (i = 0; i < numnodes; i++)    {	if (myid < i)	{	    int otherid;	    p4_dprintfl(30,"accepting first connection. . .\n");	    fcaccept->dcd = fd;	    fcaccept->timeout = DCMAXTIMEOUT;	    fcaccept->blockflag = BLOCKING;	    do {		errno = 0;		if ((rc = ioctl(y,SFC_ACCEPT,fcaccept)) != 0		    && errno != ETIMEOUT)		{		    p4_error("p4_initfc: accept error: ",errno); 		}	    } while (errno == ETIMEOUT);	    if (rc==NOERROR)		remotefd = fcaccept->newdcd;	    p4_dprintfl(30,"doing initial blocked read\n");	    fcread->dcd = fcaccept->newdcd;	    fcread->buff = (char *) &otherid;	    fcread->nbytes = sizeof(int);	    fcread->timeout = 10;   /* 10 sec */	    fcread->blockflag = BLOCKING;	    rc = ioctl(y,SFC_READ,fcread);	    if (rc != 0)		p4_dprintf("err %d\n",errno);	    else	    {		if (fcread->nbytes != sizeof(int))		    p4_error("initial message wrong size:", fcread->nbytes);		else		{		    p4_dprintfl(30,"read from %d\n",otherid);		    fds[otherid] = remotefd;		}	    }	}	if (myid > i)	{	    p4_dprintfl(30,"opening. . .\n");	    if ((rc = ioctl(y,SFC_OPEN,fcopen)) != 0)	    {		p4_error("p4_initfc: open error: ",errno); 	    }	    fd = fcopen->dcd;	    p4_dprintfl(30,"opened fd %d. . .\n",fd);	    translate_name(p4_global->proctable[i].host_name,destip);	    p4_dprintfl(30,"swname = %s, destip = %s\n",		       p4_global->proctable[i].host_name,destip);	    hp = gethostbyname(destip);	    if (hp == 0)	    {		fprintf(stderr, "p4_initfc: %s: unknown host\n",destip);		exit(2);	    }	    p4_dprintfl(30,"connecting. . .\n");	    do /*try to connect repeatedly until accept on other side occurs */	    {		fcconnect->dcd = fd;		fcconnect->timeout = 10;		fcconnect->name->port = 211;		fcconnect->name->type = IP_ADDR;		bcopy(hp->h_addr, &fcconnect->name->inet_addr, hp->h_length);		if ((rc = ioctl(y,SFC_CONNECT,fcconnect)) != NOERROR)		{		    p4_dprintf("error connecting %d\n", errno);		}	    } while (rc != NOERROR);	    fds[i] = fd;	    p4_dprintfl(30,"connected. . .\n");	    p4_dprintfl(30,"%d writing id\n",myid);	    fcwrite->dcd    = fd;	    fcwrite->nbytes = sizeof(int);	    fcwrite->buff   = (char *) &myid;	    fcwrite->type   = BLOCKING;	    if ((rc = ioctl(y,SFC_WRITE,fcwrite)) != NOERROR)	    {		if (rc < 0 )		    p4_dprintf("error on initial write was %d \n ",errno);	    }	}    }}translate_name(fromname,toname)char *fromname, *toname;{/*  this routine is a temporary hack to derive fiber-channel names from    the hostnames in the procgroup file that are used to set up the original    p4 configuration for use by p4_send and p4_recv.  The fiber channel names    will be used by the direct fiber-channel interface, p4_sendfc and     p4_recvfc.*/    if (strncmp(fromname,"spnode",6) == 0) /* ANL SP-1 nodes */    {	/* chg swnodexxx to fcnodexxx */	strcpy(toname,fromname);	toname[0] = 'f';	toname[1] = 'c';    }    else if ((strncmp(fromname,"hamlet",6) == 0) ||	     (strncmp(fromname,"timon",5) == 0)  ||	     (strncmp(fromname,"titus",5) == 0)  ||	     (strncmp(fromname,"ibm1",4) == 0)) /* ANL CTD and HEP */    {	/* append "-fc to machine names */	strcpy(toname,fromname);	strcat(toname,"-fc");    }    else if ((strncmp(fromname,"mercury",7) == 0) ||	     (strncmp(fromname,"venus",5) == 0)   ||	     (strncmp(fromname,"earth",5) == 0)   ||	     (strncmp(fromname,"mars",4) == 0)    ||	     (strncmp(fromname,"jupiter",7) == 0) ||	     (strncmp(fromname,"saturn",6) == 0)  ||	     (strncmp(fromname,"neptune",7) == 0) ||	     (strncmp(fromname,"uranus",7) == 0) ||	     (strncmp(fromname,"pluto",5) == 0)) /* ANL SP-1 planets */    {	/* append "f1" to planet names */	strcpy(toname,fromname);	strcat(toname,"f1");    }    else if (strncmp(fromname,"ibms",4) == 0) /* FSU nodes */    {	/* append "f" to FSU ibmsxx names */	strcpy(toname,fromname);	strcat(toname,"f");    }    else	p4_error("p4_initfc:  couldn't translate name", 0);}p4_sendfc(type,to,msg,len)int type,to,len;char *msg;{    int rc, wrtlen;    struct p4_net_msg_hdr header;        header.msg_type = type;    header.to	    = to;    header.from     = p4_get_my_id();    header.ack_req  = 0;    header.msg_len  = len;    p4_dprintfl(30,"writing header to %d\n",to);    fcwrite->dcd    = fds[to];    fcwrite->nbytes = sizeof(struct p4_net_msg_hdr);    fcwrite->buff   = (char *) &header;    fcwrite->type   = BLOCKING;    if ((rc = ioctl(y,SFC_WRITE,fcwrite)) != NOERROR)    {	if (rc < 0 )	    p4_error("p4_sendfc error on header write was ",errno);    }    while (len > 0)    {	if (len > 65500)	{	    len -= 65500;	    wrtlen = 65500;	}	else	{	    wrtlen = len;	    len = 0;	}	p4_dprintfl(30,"writing %d bytes of data to %d\n",to);	fcwrite->dcd    = fds[to];	fcwrite->nbytes = wrtlen;	fcwrite->buff   = msg;	fcwrite->type   = BLOCKING;	if ((rc = ioctl(y,SFC_WRITE,fcwrite)) != NOERROR)	{	    if (rc < 0 )		p4_error("error on data write was ",errno);	}    }    p4_dprintfl(30,"exiting p4_sendfc\n");}p4_recvfc(type,from,msg,len)int *type, *from, *len;char **msg;{    int rc;    struct p4_net_msg_hdr header;        if (*msg == NULL)	p4_error("p4_recvfc: pre-allocated buffers required for fiber channel",0);    if (*from == -1)	p4_error("p4_recvfc: wild-card receive not allowed for fiber channel",0);        p4_dprintfl(30,"doing blocked read for header\n");    fcread->dcd = fds[*from];    fcread->buff = (char *) &header;    fcread->nbytes = sizeof(struct p4_net_msg_hdr);    fcread->timeout = 10;   /* 10 sec */    fcread->blockflag = BLOCKING;    rc = ioctl(y,SFC_READ,fcread);    if (rc != 0)	p4_error("p4_recvfc: read for header failed",rc);    p4_dprintfl(30,"length from received header is %d\n",header.msg_len);    if (header.msg_len != 0)    {	p4_dprintfl(30,"doing blocked read for data\n");	fcread->dcd = fds[*from];	fcread->buff = *msg;	fcread->nbytes = header.msg_len;	fcread->timeout = 10;   /* 10 sec */	fcread->blockflag = BLOCKING;	rc = ioctl(y,SFC_READ,fcread);	if (rc != 0)	    p4_error("p4_recvfc: read for data failed",rc);    }    *type = header.msg_type;    *from = header.from;    *len  = header.msg_len;}	    

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成在线观看一区二区| 日韩国产欧美在线视频| 欧美日韩亚洲国产综合| 国产精品一线二线三线精华| 亚洲精品高清在线| 国产亚洲1区2区3区| 日韩一级视频免费观看在线| 一本一本久久a久久精品综合麻豆| 日本美女一区二区三区视频| 亚洲欧美色一区| 国产午夜精品一区二区三区嫩草| 337p亚洲精品色噜噜| 不卡的电视剧免费网站有什么| 日韩黄色小视频| 一区二区三区日韩在线观看| 国产三级一区二区| 精品久久人人做人人爱| 欧美电影在线免费观看| 色悠悠久久综合| 99久久免费国产| 高清成人免费视频| 国产福利一区在线| 国产美女精品在线| 美脚の诱脚舐め脚责91| 亚洲第一电影网| 亚洲最新视频在线观看| 亚洲欧美日韩久久| 亚洲男人的天堂av| 亚洲欧美中日韩| 国产精品高潮久久久久无| 国产人成亚洲第一网站在线播放| 一区二区三区蜜桃| 成人欧美一区二区三区1314| 中文字幕国产一区| 亚洲国产高清在线| 欧美国产在线观看| 国产精品伦理一区二区| 国产精品护士白丝一区av| 国产精品初高中害羞小美女文| 国产午夜亚洲精品午夜鲁丝片| 精品免费日韩av| 日韩一区二区免费在线电影| 欧美一区二区性放荡片| 91精品国产综合久久福利软件| 欧美人牲a欧美精品| 欧美日本一道本| 欧美一区三区二区| 欧美成人激情免费网| 欧美成人在线直播| 26uuu色噜噜精品一区| 国产色综合一区| 国产精品久久久久影院色老大| 国产精品色呦呦| 综合分类小说区另类春色亚洲小说欧美| 国产欧美日韩视频在线观看| 国产欧美日韩另类视频免费观看| 中文一区二区在线观看| 亚洲日本一区二区三区| 亚洲福利一区二区| 久久精工是国产品牌吗| 国产综合色精品一区二区三区| 国产精品18久久久久久久久| 国产1区2区3区精品美女| 国产大陆亚洲精品国产| 不卡av电影在线播放| 色偷偷久久一区二区三区| 欧美在线免费观看视频| 91精品国产全国免费观看| 久久午夜电影网| 亚洲人成7777| 男女男精品视频| 夫妻av一区二区| 精品视频999| 精品国产91久久久久久久妲己 | 高清beeg欧美| 91在线观看地址| 日韩视频免费观看高清完整版| 国产亚洲综合在线| 一二三四区精品视频| 九九**精品视频免费播放| 欧美色视频一区| 国产日韩精品一区二区三区在线| 亚洲精品免费在线播放| 久久精品久久综合| 99精品国产一区二区三区不卡| 欧美日韩免费观看一区二区三区| 日韩欧美中文字幕制服| 中文字幕一区二| 日本成人在线网站| av电影天堂一区二区在线观看| 欧美日韩国产bt| 日韩欧美一区二区久久婷婷| 国产精品成人免费在线| 亚洲成人午夜影院| 成人av手机在线观看| 在线电影一区二区三区| 国产精品对白交换视频 | 国产一区二区三区日韩| 91黄色激情网站| 欧美激情在线一区二区三区| 日本在线不卡一区| 一本一道久久a久久精品综合蜜臀| 精品久久人人做人人爽| 亚洲国产日韩a在线播放性色| 国产不卡一区视频| 日韩欧美中文字幕制服| 亚洲aaa精品| 一本到不卡免费一区二区| 国产日韩欧美精品电影三级在线| 亚洲高清不卡在线| 99久久久精品| 2020国产精品| 久久97超碰国产精品超碰| 欧美日韩一级二级| 亚洲色图一区二区三区| 国产成人精品三级麻豆| 久久久国产精品午夜一区ai换脸| 五月天久久比比资源色| 91黄色免费版| 亚洲女同一区二区| 91在线免费播放| 中文字幕视频一区二区三区久| 国产91综合一区在线观看| 久久午夜电影网| 国产在线不卡一区| 日韩午夜在线观看视频| 青青青伊人色综合久久| 在线不卡a资源高清| 日韩在线播放一区二区| 91精品免费在线| 免费人成网站在线观看欧美高清| 欧美精品少妇一区二区三区| 亚洲午夜一二三区视频| 欧美在线制服丝袜| 亚洲一区二区三区视频在线 | 日韩一二三区视频| 蜜臀久久久久久久| 精品久久人人做人人爽| 国产麻豆视频精品| 国产欧美精品一区| 盗摄精品av一区二区三区| 国产精品久久久久影视| 色噜噜久久综合| 亚洲国产日产av| 91精品国产一区二区三区| 精品一区二区在线播放| 亚洲国产岛国毛片在线| 91在线观看成人| 亚洲成人激情自拍| 日韩一区二区电影在线| 国产一区二区三区四区五区美女 | 亚洲一区二区三区自拍| 欧美日韩的一区二区| 免费看欧美女人艹b| 精品国产乱码久久久久久夜甘婷婷| 寂寞少妇一区二区三区| 国产精品三级电影| 色女孩综合影院| 日本色综合中文字幕| 国产性天天综合网| 91黄视频在线| 久久国产精品99久久人人澡| 国产亚洲欧美色| 欧美综合色免费| 狠狠色丁香婷婷综合久久片| 欧美激情一区三区| 欧美色图一区二区三区| 精品一区二区av| 亚洲欧洲制服丝袜| 日韩视频免费观看高清完整版| www.亚洲在线| 日韩国产欧美一区二区三区| 欧美激情中文不卡| 欧美人成免费网站| 成人在线综合网站| 五月婷婷激情综合| 国产精品二三区| 欧美成人性福生活免费看| 91日韩一区二区三区| 久久国产乱子精品免费女| 亚洲欧美在线视频| 欧美mv和日韩mv的网站| 色视频一区二区| 国产一区二区三区在线观看精品 | 精品1区2区3区| 国产激情视频一区二区在线观看 | 国产精品免费网站在线观看| 欧美日韩国产影片| 国产成人亚洲综合色影视| 亚洲成人av一区二区| 欧美国产激情二区三区| 91精品免费观看| 91精品福利视频| 成人在线综合网| 精品在线免费视频| 日韩—二三区免费观看av| 成人欧美一区二区三区小说| 欧美成人a在线| 欧美老年两性高潮| 一本一道波多野结衣一区二区|