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

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

?? xdev_mxdev_mxdevice.c

?? MPI for java for Distributed Programming
?? C
?? 第 1 頁 / 共 3 頁
字號:
  jobject staticBuffer;  jbyteArray directbuffer;  //int * sbuf_length;   int capacity ;  /* dynamic buffer declarations */  jbyteArray darr;  jbyte* dBuffer;  /* MX related declarations */  mx_return_t rc ;   mx_request_t recv_handle ;  mx_segment_t buffer_desc[1];  uint64_t match_recv, match_recv2, match_mask , proc_mask, tag_mask ;   mx_status_t recv_status;  uint32_t result;  if(tag == ANY_TAG) {    tag_mask = EMPTY ;   }  else {    tag_mask = MASK_TAG ;   }  if(any_src == 1) {      src_id = 0 ;    proc_mask = EMPTY;   }  else {    proc_mask = MASK_SRC ;   }  match_mask =   MATCH_CONTEXT | proc_mask | tag_mask ;    if(tag == ANY_TAG) { 	      match_recv = PRI_MATCH(context, src_id, 0);	      match_recv2 = SEC_MATCH(context, src_id, 0);  } else {    match_recv = PRI_MATCH(context, src_id, tag);	      match_recv2 = SEC_MATCH(context, src_id, tag);  }  //printf("src_id <%d> \n", src_id );   //printf("context <%d> \n", context);   //printf("match_mask U32 <%x> \n",MX_U32(match_mask));  //printf("match_recv U32 <%x> \n",MX_U32(match_recv));  //printf("match_mask L32 <%x> \n",MX_L32(match_mask));   //printf("match_recv L32 <%x> \n",MX_L32(match_recv));   //fflush(stdout);     /* get static buffer related stuff */  staticBuffer =           (*env)->GetObjectField(env,buf,FID_mpjbuf_Buffer_staticBuffer);  directbuffer =           (jbyteArray) (*env)->GetObjectField(env,                                          staticBuffer,                                          FID_mpjbuf_NIOBuffer_buffer);  buffer_address = (char *)(*env)->GetDirectBufferAddress(env,                            (jobject)directbuffer);  capacity = (unsigned int)                (*env)->GetIntField(env,buf,FID_mpjbuf_Buffer_capacity);   /* compose message ,sort out tag/context*/  buffer_desc[0].segment_ptr = buffer_address;   buffer_desc[0].segment_length = capacity+8 ;//+offset ..    //JRequestStruct *jreq = NULL;   //jreq = (JRequestStruct *) malloc(sizeof(JRequestStruct)) ;  //jobject globalRequestObject = (*env)->NewGlobalRef(env, req);   //jreq->jrequest = globalRequestObject ;   /* recv the message */  rc = mx_irecv(local_endpoint, buffer_desc, 1, match_recv, match_mask,		  NULL, &recv_handle);  //jreq instead of NULL   if(rc != MX_SUCCESS) {     printf("error in irecv"); fflush(stdout); 	    }  (*env)->SetLongField(env,req,reqhandleID,(jlong)recv_handle);  (*env)->SetLongField(env,req,lepID,(jlong)local_endpoint);  (*env)->SetObjectField(env,req,bufferhandleID,buf);  (*env)->SetLongField(env,req,matchrecvhandleID,(jlong)match_recv2);  (*env)->SetLongField(env,req,matchrecvmaskhandleID,(jlong)match_mask);  (*env)->SetLongField(env,req,bufferaddresshandleID,(jlong)buffer_address);  }/* * Class:     xdev_mxdev_MXDevice * Method:    nativeIprobe * Signature: (Lxdev/ProcessID;IILmpjdev/Status;II)I */JNIEXPORT jint JNICALL Java_xdev_mxdev_MXDevice_nativeIprobe  (JNIEnv *env, jobject jthis, jobject srcID, jint tag, jint context,    jobject status, jint any_src, jint isCompleted ) {  //printf("native probe method \n");	    mx_return_t rc;   mx_status_t c_status;  uint64_t result = EMPTY ;  uint64_t match_recv, proc_mask, tag_mask, match_mask ;  int src_id = ((*env)->GetIntField(env, srcID, processidID )) ;    if(tag == ANY_TAG) {    tag_mask = EMPTY ;   }  else {    tag_mask = MASK_TAG ;   }  if(any_src == 1) {      src_id = 0 ;    proc_mask = EMPTY;   }  else {    proc_mask = MASK_SRC ;   }  match_mask =   MATCH_CONTEXT | proc_mask | tag_mask ;    if(tag == ANY_TAG) { 	      match_recv = PRI_MATCH(context, src_id, 0);	    } else {    match_recv = PRI_MATCH(context, src_id, tag);	    }  //printf(" result upper (b)<%d> \n", MX_U32(result));  //printf(" result lower (b)<%d> \n", MX_L32(result));  rc = mx_iprobe(local_endpoint, 		match_recv,		match_mask,		&c_status,		&result);  //printf(" result upper (a)<%d> \n", MX_U32(result));  //printf(" result lower (a)<%d> \n", MX_L32(result));    if(result == EMPTY) {     //printf(" aint any message "); fflush(stdout);  }  else {    //printf(" yes message "); fflush(stdout);    isCompleted = 1; 	      (*env)->SetIntField(env,status, status_src_ID, 		      GET_SRC(c_status.match_info) );    (*env)->SetIntField(env,status, status_tag_ID, 		      GET_TAG(c_status.match_info) );    (*env)->SetIntField(env,status, countInBytesID , 		      c_status.msg_length - 16); //-8 is offset ...  }  return isCompleted ; }/* * Class:     xdev_mxdev_MXDevice * Method:    nativeProbe * Signature: (Lxdev/ProcessID;IILmpjdev/Status;I)V */JNIEXPORT void JNICALL Java_xdev_mxdev_MXDevice_nativeProbe  (JNIEnv *env, jobject jthis, jobject srcID, jint tag, jint context,    jobject status, jint any_src) {  //printf("native iprobe method \n");	    mx_return_t rc;   mx_status_t c_status;  uint64_t result ;  uint64_t match_recv, proc_mask, tag_mask, match_mask ;  int src_id = ((*env)->GetIntField(env, srcID, processidID )) ;    if(tag == ANY_TAG) {    tag_mask = EMPTY ;   }  else {    tag_mask = MASK_TAG ;   }  if(any_src == 1) {      src_id = 0 ;    proc_mask = EMPTY;   }  else {    proc_mask = MASK_SRC ;   }  match_mask =   MATCH_CONTEXT | proc_mask | tag_mask ;    if(tag == ANY_TAG) { 	      match_recv = PRI_MATCH(context, src_id, 0);	      //match_recv2 = SEC_MATCH(context, src_id, 0);  } else {    match_recv = PRI_MATCH(context, src_id, tag);	      //match_recv2 = SEC_MATCH(context, src_id, tag);  }  rc = mx_probe(local_endpoint, 		MX_INFINITE,   		match_recv,		match_mask,		&c_status,		&result);  (*env)->SetIntField(env,status, status_src_ID, 		      GET_SRC(c_status.match_info) );  (*env)->SetIntField(env,status, status_tag_ID, 		      GET_TAG(c_status.match_info) );  (*env)->SetIntField(env,status, countInBytesID , 		      c_status.msg_length - 16); //-8 is offset ...} /* * Class:     xdev_mxdev_MXDevice * Method:    nativePeek * Signature: (Lmpjdev/Status;)J */JNIEXPORT jlong JNICALL Java_xdev_mxdev_MXDevice_nativePeek  (JNIEnv *env, jclass jthis, jobject status) {  //printf(" nativePeek \n");fflush(stdout);   mx_request_t peekedRequest ;   mx_return_t rc ;   mx_status_t status ;   uint32_t result ;   //JRequestStruct *jrequest ;   //jobject javaRequest, statusInRequest ;    rc = mx_peek(local_endpoint, MX_INFINITE, &peekedRequest, &result);   if(rc != MX_SUCCESS) {     printf(" error while peeking the message \n");   }  if(result) {    //printf(" message peeked successfully \n");  fflush(stdout);   }  /* commented because of hashtable approach ...  rc = mx_wait( local_endpoint, &peekedRequest,                   MX_INFINITE, &status, &result);   jrequest = (JRequestStruct *) status.context ;   javaRequest =  jrequest->jrequest ;   statusInRequest = (*env)->GetObjectField( env, 		  javaRequest, FID_xdev_mxdev_MXRequest_status );   //.. save javaRequest in Request's long field ..  (*env)->SetLongField(env,javaRequest, FID_xdev_mxdev_MXRequest_requestStruct, 		       (jlong)jrequest);  //printf(" returning from native peek \n"); fflush(stdout);    //jobject copiedJavaRequest = javaRequest ;   //(*env)->DeleteGlobalRef(env, javaRequest);   (*env)->SetIntField(env,statusInRequest, status_src_ID,                      GET_SRC(status.match_info) );  (*env)->SetIntField(env,statusInRequest, status_tag_ID,                      GET_TAG(status.match_info) );  (*env)->SetIntField(env,statusInRequest, countInBytesID,                      status.msg_length - 8);  printf(" length <%d> \n ",status.msg_length) ;  fflush(stdout);   return javaRequest ;   */   // .. returnthe address of request struct ..   return peekedRequest ; }/* * Class:     xdev_mxdev_MXDevice * Method:    deletePeekedRequest * Signature: (Lxdev/mxdev/MXRequest;J)V */JNIEXPORT void JNICALL Java_xdev_mxdev_MXDevice_deletePeekedRequest  (JNIEnv *env, jclass jthis, jobject peekedRequest, jlong requestStruct) {   (*env)->DeleteGlobalRef(env, peekedRequest);   //JRequestStruct *jrequest = (JRequestStruct *) requestStruct ;   //free(jrequest); }/* * Class:     xdev_mxdev_MXDevice * Method:    nativePeek * Signature: (Lmpjdev/Status;)VJNIEXPORT void JNICALL Java_xdev_mxdev_MXDevice_nativePeek  (JNIEnv *env, jobject jthis, jobject requestObject) {  printf(" nativePeek \n");   mx_request_t request ;   mx_return_t rc ;   uint32_t result ;   rc = mx_peek( local_endpoint, MX_INFINITE, &request, &result);   if(rc == MX_SUCCESS) {     //printf(" mx_peek successful \n"); fflush(stdout);             }  if(result) {     printf(" a message has been peeked in nativeIwaitany \n"); fflush(stdout);   }     // complete comms ...  mx_status_t recv_status ;   rc = mx_wait( local_endpoint, &request, MX_INFINITE, &recv_status, &result);   JRequestStruct *jrequest = (JRequestStruct *) recv_status.context ;   jobject javaRequest =  jrequest->jrequest ;     printf("1 \n"); fflush(stdout);   jclass req_class = (*env)->GetObjectClass(env, javaRequest );    //.. get the comms ..    if(rc != MX_SUCCESS) {    printf(" error while calling mx_wait \n"); 	    }    //mx_status_t recv_status;  mx_request_t reqhandle ;  mx_endpoint_t mlep ;  jobject buffer ;  uint64_t match_recv;  uint64_t match_mask;  char * buffer_address;  mx_segment_t buffer_desc[1];    reqhandle = (mx_request_t) ((*env)->GetLongField(env, javaRequest, 			  reqhandleID )) ;  mx_request_t dreq ;   mlep = (mx_endpoint_t) ((*env)->GetLongField(env, javaRequest, 			  m_local_endpoint ));      printf("3 \n"); fflush(stdout);   match_recv = (uint64_t) ((*env)->GetLongField(env,			  javaRequest, matchrecvhandleID)) ;  match_mask = (uint64_t) 	  ((*env)->GetLongField(env, javaRequest, matchrecvmaskhandleID)) ;  buffer_address = (char *) ((*env)->GetLongField(env, 			  javaRequest, bufferaddresshandleID)) ;  buffer = ((*env)->GetObjectField(env, javaRequest,                           bufferhandleID )) ;  jclass mpjbuf_class = (*env)->GetObjectClass(env, buffer);  jbyteArray darr;  jbyte* dBuffer;  jboolean isCopy = JNI_TRUE;  char encoding = 1;   int dbuf_length ;   //.. dbuf_length ..  encoding = buffer_address[0] ;  dbuf_length = 	  (((int)(unsigned char) buffer_address[4]) << 24) |	  (((int)(unsigned char) buffer_address[5]) << 16) |	  (((int)(unsigned char) buffer_address[6]) << 8) |	  (((int)(unsigned char) buffer_address[7]) );     printf("dbuf_length [after strange] <%d> \n",dbuf_length); fflush(stdout);     //int dbuf_length = byte22int(buffer_address,0);  int sbuf_length = recv_status.msg_length - 8 ; //- offset   if(dbuf_length > 0) {     darr = (*env)->NewByteArray (env, dbuf_length);    dBuffer = (*env)->GetByteArrayElements(env, darr, &isCopy);    buffer_desc[0].segment_ptr = dBuffer;     buffer_desc[0].segment_length = dbuf_length;    //printf(" calling mx_irecv in nativeIwait \n"); fflush(stdout);         rc = mx_irecv(mlep, buffer_desc, 1, match_recv, match_mask,  		  NULL, &dreq);    if(rc != MX_SUCCESS) {       printf(" return code is not successful \n"); fflush(stdout);  	        }        rc = mx_wait(mlep, & dreq, MX_INFINITE, 		  &recv_status, &result);     if(rc != MX_SUCCESS) {       printf(" return code is not successful \n"); fflush(stdout);  	        }    //printf(" received \n"); fflush(stdout);     (*env)->SetByteArrayRegion(env,darr,0,dbuf_length,dBuffer);           jmethodID setdbuf = (*env)->GetMethodID(env, mpjbuf_class,  		       "setDynamicBuffer", "([B)V");     (*env)->CallVoidMethod(env, buffer, setdbuf, darr);  } else {    //printf(" no dynamic message \n") ;   }   jmethodID set_size = (*env)->GetMethodID(env, mpjbuf_class,  		       "setSize", "(I)V");   (*env)->CallVoidMethod(env, buffer, set_size, sbuf_length );   //printf("recvRequest wait returns \n");   (*env)->SetIntField(env,javaRequest, testcalledID, 1);   //printf("recv:req calling wait for control message \n"); fflush(stdout);  //printf("status.msg_length <%d> \n", recv_status.msg_length );   //(*env)->SetIntField(env,status, status_src_ID,  //                    GET_SRC(recv_status.match_info) );  //(*env)->SetIntField(env,status, status_tag_ID,  //                    GET_TAG(recv_status.match_info) );  //(*env)->SetIntField(env,status, countInBytesID,   //		      recv_status.msg_length - 16);//-16  //.. extract JRequest ..  //.. figure out if it is send or recv request ..   //if(recvrequest) {   //.. copy paste code from iwait of recvrequest ..  //}    //if(sendrequest) {   //.. copy paste code from iwait of sendrequest ..	    //}}*//* * Class:     xdev_mxdev_MXDevice * Method:    nativeFinish * Signature: ()V */ JNIEXPORT void JNICALL Java_xdev_mxdev_MXDevice_nativeFinish  (JNIEnv *env, jobject obj1) {  //printf("native:finish process <%d> starting finish \n",myRank );   //fflush(stdout);  //sleep(5);  mx_return_t rc;  //printf("native:finish process <%d> will close endpoint \n",myRank );   //fflush(stdout);   //fflush(stdout);  rc = mx_close_endpoint(local_endpoint);   if(rc != MX_SUCCESS) {     //printf("error in nativeFinish "); fflush(stdout); 	    }  //printf("native:finish process <%d> closed endpoint \n",myRank );   //fflush(stdout);   //fflush(stdout);  free(peer_endpoints);   peer_endpoints = NULL;   if(rc == MX_SUCCESS) {     //printf("closed endpoint \n");  }  //printf("native:finish process <%d> calling finalize \n",myRank ) ;   //fflush(stdout);      rc = mx_finalize();    if(rc == MX_SUCCESS) {    //printf("native:finish process <%d> called finalize \n", myRank );     //fflush(stdout);   }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91污片在线观看| 国产精品久久久久久久久久免费看| 91色乱码一区二区三区| 丁香另类激情小说| 成人午夜碰碰视频| 国产suv精品一区二区三区| 国产999精品久久| 国产一区二区三区四区五区入口 | 日韩成人午夜电影| 偷窥国产亚洲免费视频| 午夜精品福利一区二区三区蜜桃| 亚洲图片欧美视频| 日韩一区精品视频| 美女久久久精品| 国产在线视频一区二区三区| 韩国一区二区三区| 国产精品一区二区视频| 国产iv一区二区三区| 国产91对白在线观看九色| 成人性视频免费网站| 成人h版在线观看| 日本精品一区二区三区四区的功能| 在线免费观看视频一区| 91麻豆精品国产自产在线| 精品国产免费人成在线观看| 久久久91精品国产一区二区三区| 国产精品福利影院| 亚洲日韩欧美一区二区在线| 亚洲激情男女视频| 日韩中文字幕不卡| 国产乱码一区二区三区| 99精品久久99久久久久| 91成人国产精品| 欧美一区二区视频在线观看| 久久久久久电影| 亚洲视频网在线直播| 亚洲gay无套男同| 国内精品不卡在线| 色天使色偷偷av一区二区| 欧美日韩精品综合在线| 久久亚洲一级片| 一区二区视频免费在线观看| 日韩高清在线电影| 国产91丝袜在线播放0| 日本道精品一区二区三区| 欧美精品日韩综合在线| 国产日韩欧美在线一区| 亚洲综合av网| 国产剧情在线观看一区二区| 欧美亚洲一区二区三区四区| 亚洲精品一区二区三区四区高清| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲国产人成综合网站| 国产精品亚洲а∨天堂免在线| 一本大道久久a久久综合| 日韩你懂的在线观看| 亚洲视频网在线直播| 国内一区二区视频| 欧美在线视频日韩| 国产精品三级视频| 秋霞电影网一区二区| 99国产精品国产精品毛片| 91精品国产麻豆| 一区二区三区中文在线观看| 国产精品一级片| 欧美色精品在线视频| 国产精品久久三区| 韩日欧美一区二区三区| 欧美日韩一区二区三区在线 | 午夜影院久久久| 福利一区二区在线观看| 欧美一区二区在线视频| 综合电影一区二区三区| 国产成人自拍在线| 日韩一区二区三区观看| 亚洲福利电影网| 91香蕉视频mp4| 欧美激情一区二区三区四区| 美国精品在线观看| 69av一区二区三区| 亚洲资源中文字幕| 99国产麻豆精品| 国产日韩av一区| 国产永久精品大片wwwapp | 中文字幕在线不卡一区| 国产曰批免费观看久久久| 欧美精品国产精品| 亚洲一区二区三区四区在线观看| 不卡一区二区中文字幕| 国产日韩欧美高清| 久久97超碰色| 欧美成人精品1314www| 日本亚洲电影天堂| 91精品国产综合久久精品图片 | 日韩在线观看一区二区| 欧美网站大全在线观看| 亚洲精品国产第一综合99久久| 成人免费视频一区二区| 国产天堂亚洲国产碰碰| 国产一区三区三区| 久久理论电影网| 国产精选一区二区三区| 2020国产精品自拍| 国产中文字幕一区| 国产亚洲综合性久久久影院| 国产精品资源站在线| 国产视频视频一区| 波多野结衣的一区二区三区| 欧美国产欧美综合| 成人听书哪个软件好| 国产精品久久久久久久浪潮网站| 高清不卡一区二区| 亚洲人成小说网站色在线| 97久久精品人人澡人人爽| 亚洲欧美一区二区视频| 色8久久精品久久久久久蜜| 一区二区在线观看免费| 欧美特级限制片免费在线观看| 天堂成人国产精品一区| 精品少妇一区二区三区在线播放| 久久99国产精品免费| 亚洲国产精品高清| 91在线丨porny丨国产| 亚洲一二三四久久| 日韩三级中文字幕| 国产精品一区二区三区99| 中文字幕日韩欧美一区二区三区| 色婷婷久久一区二区三区麻豆| 亚洲成a人v欧美综合天堂下载 | 日韩欧美国产电影| 激情综合一区二区三区| 国产精品网站在线观看| 欧洲精品一区二区| 日韩和欧美一区二区三区| ww久久中文字幕| 成人av手机在线观看| 亚洲国产wwwccc36天堂| 精品久久久久一区二区国产| 成人福利视频网站| 亚洲电影一级片| 26uuu亚洲| 色婷婷激情久久| 青青草原综合久久大伊人精品优势| 久久久久久夜精品精品免费| 色琪琪一区二区三区亚洲区| 日韩不卡一二三区| 欧美国产一区二区在线观看| 欧美色视频在线| 国产精品99久久久久久似苏梦涵 | 久久成人av少妇免费| 欧美国产成人在线| 欧美日本在线播放| 成人亚洲精品久久久久软件| 性久久久久久久久久久久 | 国产精品亚洲第一| 亚洲高清视频的网址| 久久久久九九视频| 欧美日韩国产另类一区| 国产一区二区三区精品欧美日韩一区二区三区 | 91视频在线观看| 另类小说一区二区三区| 亚洲欧美在线另类| 欧美大白屁股肥臀xxxxxx| 色综合久久综合网| 国模套图日韩精品一区二区| 一区二区激情视频| 国产日本欧美一区二区| 4438成人网| 91色porny在线视频| 精品一区二区三区影院在线午夜 | 1024成人网| 欧美一区二区三区啪啪| 一本色道久久综合亚洲aⅴ蜜桃| 久久疯狂做爰流白浆xx| 亚洲女厕所小便bbb| 精品久久久久久最新网址| 欧美日韩综合在线| 成人黄色一级视频| 国产一区二区按摩在线观看| 丝瓜av网站精品一区二区 | 久久不见久久见免费视频1| 夜夜嗨av一区二区三区四季av| 国产欧美一区二区三区网站| 欧美成人三级电影在线| 欧美久久久久免费| 色婷婷综合久色| 成人福利电影精品一区二区在线观看| 奇米777欧美一区二区| 亚洲成人免费影院| 亚洲柠檬福利资源导航| 国产精品情趣视频| 久久九九99视频| 久久青草国产手机看片福利盒子| 这里只有精品免费| 欧美日韩国产综合草草| 色狠狠一区二区三区香蕉| 不卡的电影网站| 丁香亚洲综合激情啪啪综合| 国产福利一区二区三区视频| 国产一区二三区好的|