这篇教程C++ EXIT函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中EXIT函数的典型用法代码示例。如果您正苦于以下问题:C++ EXIT函数的具体用法?C++ EXIT怎么用?C++ EXIT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了EXIT函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: kmdf1394_AsyncWrite//.........这里部分代码省略......... ENTER("kmdf1394_AsyncWrite"); ioTarget = deviceExtension->StackIoTarget; pIrb = ExAllocatePoolWithTag(NonPagedPool, sizeof(IRB), POOLTAG_KMDF_VDEV); if (!pIrb) { TRACE(TL_ERROR, ("Failed to allocate pIrb!/n")); return STATUS_INSUFFICIENT_RESOURCES; } RtlZeroMemory (pIrb, sizeof (IRB)); pIrb->FunctionNumber = REQUEST_ASYNC_WRITE; pIrb->Flags = 0; pIrb->u.AsyncWrite.DestinationAddress = AsyncWrite->DestinationAddress; pIrb->u.AsyncWrite.nNumberOfBytesToWrite = AsyncWrite->nNumberOfBytesToWrite; pIrb->u.AsyncWrite.nBlockSize = AsyncWrite->nBlockSize; pIrb->u.AsyncWrite.fulFlags = AsyncWrite->fulFlags; if (AsyncWrite->bGetGeneration) { TRACE( TL_TRACE, ("Retrieved Generation Count = 0x%x/n", pIrb->u.AsyncRead.ulGeneration)); pIrb->u.AsyncRead.ulGeneration = deviceExtension->GenerationCount; } else { pIrb->u.AsyncRead.ulGeneration = AsyncWrite->ulGeneration; } pMdl = IoAllocateMdl ( AsyncWrite->Data, AsyncWrite->nNumberOfBytesToWrite, FALSE, FALSE, NULL); if(NULL == pMdl) { TRACE(TL_ERROR, ("Failed to allocate mdl!/n")); ExFreePoolWithTag (pIrb, POOLTAG_KMDF_VDEV); return STATUS_INSUFFICIENT_RESOURCES; } MmBuildMdlForNonPagedPool (pMdl); pIrb->u.AsyncWrite.Mdl = pMdl; // // We need to create a WDF Memory object for the IRB to nestle in // for an async request. // ntStatus = WdfMemoryCreatePreallocated ( WDF_NO_OBJECT_ATTRIBUTES, pIrb, sizeof (IRB), &Memory); if (!NT_SUCCESS (ntStatus)) { TRACE ( TL_ERROR, ("Failed WdfMemoryCreate %d/n", ntStatus)); IoFreeMdl (pIrb->u.AsyncWrite.Mdl); ExFreePoolWithTag (pIrb, POOLTAG_KMDF_VDEV); return ntStatus; } WdfRequestSetCompletionRoutine ( Request, kmdf1394_AsyncWriteCompletion, Memory); ntStatus = kmdf1394_SubmitIrpAsync (ioTarget, Request, Memory); if (!NT_SUCCESS(ntStatus)) { if (ntStatus != STATUS_INVALID_GENERATION) { TRACE(TL_ERROR, ("SubmitIrpSync failed = 0x%x/n", ntStatus)); } else { TRACE (TL_ERROR, ("Invalid Generation count/n")); } IoFreeMdl (pIrb->u.AsyncWrite.Mdl); ExFreePoolWithTag (pIrb, POOLTAG_KMDF_VDEV); WdfObjectDelete (Memory); } EXIT("kmdf1394_AsyncWrite", ntStatus); return ntStatus;} // kmdf1394_AsyncWrite
开发者ID:HiXiaoMing,项目名称:Win_Dev_Driver_Code,代码行数:101,
示例2: sys__msg_post/*! * Send message to queue or signal to thread */int sys__msg_post ( int dest_type, void *dest, msg_t *msg, uint flags ){ thread_t *thr; kthread_t *kthr, *new_kthr; kthrmsg_qs *thrmsg; kgmsg_q *kgmsgq; kmsg_q *kmsgq; msg_q *msgq; kmsg_t *kmsg; msg_t *cmsg; ASSERT_ERRNO_AND_EXIT ( dest && msg, E_INVALID_HANDLE ); if ( dest_type == MSG_THREAD || dest_type == MSG_SIGNAL ) { thr = dest; kthr = k_get_kthread ( thr ); ASSERT_ERRNO_AND_EXIT ( kthr, E_DONT_EXIST ); thrmsg = k_get_thrmsg ( kthr ); kmsgq = &thrmsg->msgq; } else if ( dest_type == MSG_QUEUE ) { msgq = dest; kgmsgq = msgq->handle; ASSERT_ERRNO_AND_EXIT ( kgmsgq && kgmsgq->id == msgq->id, E_INVALID_HANDLE ); kmsgq = &kgmsgq->mq; } else { EXIT ( E_INVALID_TYPE ); } if ( dest_type == MSG_THREAD || dest_type == MSG_QUEUE ) { /* send message to queue */ if ( kmsgq->min_prio <= msg->type ) /* msg has required prio. */ { kmsg = kmalloc ( sizeof (kmsg_t) + msg->size ); ASSERT_ERRNO_AND_EXIT ( kmsg, E_NO_MEMORY ); kmsg->msg.type = msg->type; kmsg->msg.size = msg->size; memcpy ( kmsg->msg.data, msg->data, msg->size ); list_append ( &kmsgq->msgs, kmsg, &kmsg->list ); /* is thread waiting for message? */ if ( k_release_thread ( &kmsgq->thrq ) ) k_schedule_threads (); EXIT ( SUCCESS ); } else { /* ignore message */ EXIT ( E_IGNORED ); } } /* must be MSG_SIGNAL */ if ( thrmsg->sig_prio <= msg->type ) { /* create thread that will service this signal */ cmsg = k_create_thread_private_storage ( kthr, sizeof (msg_t) + msg->size ); cmsg->type = msg->type; cmsg->size = msg->size; memcpy ( cmsg->data, msg->data, msg->size ); new_kthr = k_create_thread ( thrmsg->signal_handler, cmsg, pi.exit, k_get_thread_prio ( kthr ) + 1, NULL, 0, 1 ); ASSERT_ERRNO_AND_EXIT ( new_kthr, k_get_errno() ); k_set_thread_private_storage ( new_kthr, cmsg ); SET_ERRNO ( SUCCESS ); k_schedule_threads (); RETURN ( SUCCESS ); } else { /* ignore signal */ EXIT ( E_IGNORED ); }}
开发者ID:AdamRLukaitis,项目名称:oszur11-operating-system-examples,代码行数:90,
示例3: execute/* * Execute the shell command tree pointed to by t. */static voidexecute(struct tnode *t, int *pin, int *pout){ struct tnode *t1; enum tnflags f; pid_t cpid; int i, pfd[2]; const char **gav; const char *cmd, *p; if (t == NULL) return; switch (t->ntype) { case TLIST: f = t->nflags & (FFIN | FPIN | FINTR); if ((t1 = t->nleft) != NULL) t1->nflags |= f; execute(t1, NULL, NULL); if ((t1 = t->nright) != NULL) t1->nflags |= f; execute(t1, NULL, NULL); return; case TPIPE: if (pipe(pfd) == -1) { err(SH_ERR, FMT1S, ERR_PIPE); if (pin != NULL) { (void)close(pin[0]); (void)close(pin[1]); } return; } f = t->nflags; if ((t1 = t->nleft) != NULL) t1->nflags |= FPOUT | (f & (FFIN|FPIN|FINTR|FPRS)); execute(t1, pin, pfd); if ((t1 = t->nright) != NULL) t1->nflags |= FPIN | (f & (FAND|FPOUT|FINTR|FPRS)); execute(t1, pfd, pout); (void)close(pfd[0]); (void)close(pfd[1]); return; case TCOMMAND: if (t->nav == NULL || t->nav[0] == NULL) { /* should never (but can) be true */ err(SH_ERR, FMT1S, "execute: Invalid command"); return; } cmd = t->nav[0]; if (EQUAL(cmd, ":")) { status = SH_TRUE; return; } if (EQUAL(cmd, "chdir")) { ascan(t->nav[1], &trim); if (t->nav[1] == NULL) err(SH_ERR, FMT2S, cmd, ERR_ARGCOUNT); else if (chdir(t->nav[1]) == -1) err(SH_ERR, FMT2S, cmd, ERR_BADDIR); else status = SH_TRUE; return; } if (EQUAL(cmd, "exit")) { if (prompt == NULL) { (void)lseek(FD0, (off_t)0, SEEK_END); EXIT(status); } return; } if (EQUAL(cmd, "login") || EQUAL(cmd, "newgrp")) { if (prompt != NULL) { p = (*cmd == 'l') ? PATH_LOGIN : PATH_NEWGRP; vscan(t->nav, &trim); (void)sasignal(SIGINT, SIG_DFL); (void)sasignal(SIGQUIT, SIG_DFL); (void)pexec(p, (char *const *)t->nav); (void)sasignal(SIGINT, SIG_IGN); (void)sasignal(SIGQUIT, SIG_IGN); } err(SH_ERR, FMT2S, cmd, ERR_EXEC); return; } if (EQUAL(cmd, "shift")) { if (dolc > 1) { dolv = &dolv[1]; dolc--; status = SH_TRUE; return; } err(SH_ERR, FMT2S, cmd, ERR_NOARGS); return; } if (EQUAL(cmd, "wait")) { pwait(-1); return;//.........这里部分代码省略.........
开发者ID:alwayrun,项目名称:v6shell,代码行数:101,
示例4: mainint main(int argc, char **argv){ BN_GENCB *cb; DSA *dsa = NULL; int counter, ret = 0, i, j; unsigned char buf[256]; unsigned long h; unsigned char sig[256]; unsigned int siglen; if (bio_err == NULL) bio_err = BIO_new_fp(stderr, BIO_NOCLOSE | BIO_FP_TEXT); CRYPTO_set_mem_debug(1); CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); RAND_seed(rnd_seed, sizeof rnd_seed); BIO_printf(bio_err, "test generation of DSA parameters/n"); cb = BN_GENCB_new(); if (!cb) goto end; BN_GENCB_set(cb, dsa_cb, bio_err); if (((dsa = DSA_new()) == NULL) || !DSA_generate_parameters_ex(dsa, 512, seed, 20, &counter, &h, cb)) goto end; BIO_printf(bio_err, "seed/n"); for (i = 0; i < 20; i += 4) { BIO_printf(bio_err, "%02X%02X%02X%02X ", seed[i], seed[i + 1], seed[i + 2], seed[i + 3]); } BIO_printf(bio_err, "/ncounter=%d h=%ld/n", counter, h); DSA_print(bio_err, dsa, 0); if (counter != 105) { BIO_printf(bio_err, "counter should be 105/n"); goto end; } if (h != 2) { BIO_printf(bio_err, "h should be 2/n"); goto end; } i = BN_bn2bin(dsa->q, buf); j = sizeof(out_q); if ((i != j) || (memcmp(buf, out_q, i) != 0)) { BIO_printf(bio_err, "q value is wrong/n"); goto end; } i = BN_bn2bin(dsa->p, buf); j = sizeof(out_p); if ((i != j) || (memcmp(buf, out_p, i) != 0)) { BIO_printf(bio_err, "p value is wrong/n"); goto end; } i = BN_bn2bin(dsa->g, buf); j = sizeof(out_g); if ((i != j) || (memcmp(buf, out_g, i) != 0)) { BIO_printf(bio_err, "g value is wrong/n"); goto end; } dsa->flags |= DSA_FLAG_NO_EXP_CONSTTIME; DSA_generate_key(dsa); DSA_sign(0, str1, 20, sig, &siglen, dsa); if (DSA_verify(0, str1, 20, sig, siglen, dsa) == 1) ret = 1; dsa->flags &= ~DSA_FLAG_NO_EXP_CONSTTIME; DSA_generate_key(dsa); DSA_sign(0, str1, 20, sig, &siglen, dsa); if (DSA_verify(0, str1, 20, sig, siglen, dsa) == 1) ret = 1; end: if (!ret) ERR_print_errors(bio_err); DSA_free(dsa); BN_GENCB_free(cb);#ifndef OPENSSL_NO_CRYPTO_MDEBUG if (CRYPTO_mem_leaks(bio_err) <= 0) ret = 0;#endif BIO_free(bio_err); bio_err = NULL; EXIT(!ret);}
开发者ID:AnClark,项目名称:openssl,代码行数:95,
示例5: mainint main(int argc,char **argv){ size_t preload_read; const char *preload_buffer; int yyparse_result; tree_init();#ifdef WITH_CGI cgi_check_request(); if (cgi_status < 0) { cgi_write_error_bad_req(); return 0; }#endif params_set_defaults();#ifdef WITH_CGI if (!cgi_status) process_parameters(argc, argv); preload_buffer = charset_init_preload(param_inputf, &preload_read); if (cgi_status > 0) cgi_process_parameters(&preload_buffer, &preload_read); charset_auto_detect(preload_read); charset_preload_to_input(param_charset_in, preload_read); if (cgi_status == CGI_ST_MULTIPART) charset_cgi_boundary(boundary, boundary_len);#else /* process command line arguments */ process_parameters(argc, argv); charset_init_preload(param_inputf, &preload_read); charset_auto_detect(preload_read); charset_preload_to_input(param_charset_in, preload_read);#endif /* intialize the converter */ saxStartDocument(); if (param_inputf != stdin) parser_set_input(param_inputf); /* parse the input file and convert it */ yyparse_result = yyparse(); if (yyparse_result) { EXIT("Unrecoverable parse error"); } charset_close(); saxEndDocument();#ifdef WITH_CGI if (!cgi_status) { /* write the output */ if (writeOutput()) EXIT("Bad state in writeOutput()"); /* close de output file */ if (param_outputf != stdout) fclose(param_outputf); } else { cgi_write_output(); }#else /* write the output */ if (writeOutput()) EXIT("Bad state in writeOutput()"); /* close de output file */ if (param_outputf != stdout) fclose(param_outputf);#endif /* show final messages */ write_end_messages(); freeMemory(); return 0;}
开发者ID:andytough,项目名称:html2xhtml,代码行数:82,
示例6: update_ms2_user_outputs//.........这里部分代码省略......... UO_FROMECU_MULT_COL,&multiplier, UO_FROMECU_ADD_COL,&adder,-1); /* if (temp_dep) { printf("THIS WIDGET IS TEMP DEPENDENT/n"); printf("raw_lower %s, raw_upper %s in treemodel/n",lower,upper); if (multiplier) printf("multiplier %f/n",*multiplier); if (adder) printf("adder %f/n",*adder); printf("size %i, precision %i, temp_dep %i/n",(gint)size,precision,(gint)temp_dep); } */ tmpbuf = (gchar *)OBJ_GET(widget,"range_label"); if (tmpbuf) tmpwidget = lookup_widget_f(tmpbuf); if (GTK_IS_LABEL(tmpwidget)) { if (temp_dep) { OBJ_SET(tmpwidget,"widget_temp",DATA_GET(global_data,"mtx_temp_units")); OBJ_SET(tmpwidget,"c_label",tempc_range); OBJ_SET(tmpwidget,"f_label",tempf_range); OBJ_SET(tmpwidget,"k_label",tempk_range); bind_to_lists_f(tmpwidget,"temperature"); gtk_label_set_text(GTK_LABEL(tmpwidget),tempf_range); convert_temps_f(tmpwidget,DATA_GET(global_data,"mtx_temp_units")); } else { remove_from_lists_f("temperature",tmpwidget); OBJ_SET(tmpwidget,"widget_temp",NULL); OBJ_SET(tmpwidget,"temp_dep",NULL); /*OBJ_SET(tmpwidget,"c_label",NULL); OBJ_SET(tmpwidget,"f_label",NULL); OBJ_SET(tmpwidget,"k_label",NULL); */ gtk_label_set_text(GTK_LABEL(tmpwidget),range); } } tmpbuf = (gchar *)OBJ_GET(widget,"thresh_widget"); if (tmpbuf) tmpwidget = lookup_widget_f(tmpbuf); if (GTK_IS_WIDGET(tmpwidget)) { if (temp_dep) { OBJ_SET(tmpwidget,"widget_temp",DATA_GET(global_data,"mtx_temp_units")); OBJ_SET(tmpwidget,"temp_dep",GINT_TO_POINTER(temp_dep)); bind_to_lists_f(tmpwidget,"temperature"); } else { OBJ_SET(tmpwidget,"widget_temp",NULL); OBJ_SET(tmpwidget,"temp_dep",NULL); remove_from_lists_f("temperature",tmpwidget); } OBJ_SET(tmpwidget,"size",GINT_TO_POINTER(size)); OBJ_SET(tmpwidget,"precision",GINT_TO_POINTER(precision)); OBJ_SET(tmpwidget,"raw_lower",lower); OBJ_SET(tmpwidget,"raw_upper",upper); if (multiplier) OBJ_SET(tmpwidget,"fromecu_mult",multiplier); else OBJ_SET(tmpwidget,"fromecu_mult",NULL); if (adder) OBJ_SET(tmpwidget,"fromecu_add",adder); else OBJ_SET(tmpwidget,"fromecu_add",NULL); //convert_temps_f(tmpwidget,DATA_GET(global_data,"mtx_temp_units")); update_widget_f(tmpwidget,NULL); } tmpbuf = (gchar *)OBJ_GET(widget,"hyst_widget"); if (tmpbuf) tmpwidget = lookup_widget_f(tmpbuf); if (GTK_IS_WIDGET(tmpwidget)) { OBJ_SET(tmpwidget,"size",GINT_TO_POINTER(size)); OBJ_SET(tmpwidget,"precision",GINT_TO_POINTER(precision)); OBJ_SET(tmpwidget,"raw_lower",lower); OBJ_SET(tmpwidget,"raw_upper",upper); if (multiplier) OBJ_SET(tmpwidget,"fromecu_mult",multiplier); else OBJ_SET(tmpwidget,"fromecu_mult",NULL); if (adder) OBJ_SET(tmpwidget,"fromecu_add",adder); else OBJ_SET(tmpwidget,"fromecu_add",NULL); update_widget_f(tmpwidget,NULL); } g_free(range); } valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter); i++; } EXIT(); return;}
开发者ID:JacobD10,项目名称:MegaTunix,代码行数:101,
示例7: open_input_image/*-------------------------------------------------------------------*/static IFDopen_input_image (char *ifname, U16 *devt, U32 *vcyls, U32 *itrkl, BYTE **itrkb, BYTE *volser){int rc; /* Return code */H30CKD_TRKHDR h30trkhdr; /* Input track header */IFD ifd; /* Input file descriptor */int len; /* Length of input */U16 code; /* Device type code */U16 dt; /* Device type */U32 cyls; /* Device size (pri+alt cyls)*/U32 alts; /* Number of alternate cyls */BYTE *itrkbuf; /* -> Input track buffer */U32 itrklen; /* Input track length */BYTE *pbuf; /* Current byte in input buf */BYTE klen; /* Key length */U16 dlen; /* Data length */BYTE *kptr; /* -> Key in input buffer */BYTE *dptr; /* -> Data in input buffer */U32 cyl; /* Cylinder number */U32 head; /* Head number */BYTE rec; /* Record number */char pathname[MAX_PATH]; /* file path in host format */ hostpath(pathname, (char *)ifname, sizeof(pathname)); /* Open the HDR-30 CKD image file */ #if defined(HAVE_LIBZ) if (strcmp(ifname, "-") == 0) ifd = gzdopen (STDIN_FILENO, "rb"); else ifd = gzopen (pathname, "rb"); if (ifd == NULL) { fprintf (stderr, MSG(HHC02412, "E", "gzopen()", strerror(errno))); EXIT(3); } #else /*!defined(HAVE_LIBZ)*/ if (strcmp(ifname, "-") == 0) ifd = STDIN_FILENO; else { ifd = HOPEN (pathname, O_RDONLY | O_BINARY); if (ifd < 0) { fprintf (stderr, MSG(HHC02412, "E", "open()", strerror(errno))); EXIT(3); } } #endif /*!defined(HAVE_LIBZ)*/ /* Read the first track header */ read_input_data (ifd, ifname, (BYTE*)&h30trkhdr, H30CKD_TRKHDR_SIZE, 0); #if !defined(HAVE_LIBZ) /* Reject input if compressed and we lack gzip support */ if (memcmp(h30trkhdr.devcode, gz_magic_id, sizeof(gz_magic_id)) == 0) { fprintf (stderr, MSG(HHC02413, "E")); EXIT(3); } #endif /*!defined(HAVE_LIBZ)*/ /* Reject input if it is already in CKD or CCKD format */ if (memcmp((BYTE*)&h30trkhdr, ckd_ident, sizeof(ckd_ident)) == 0) { fprintf (stderr, MSG(HHC02414, "I")); EXIT(3); } /* Extract the device type code from the track header */ FETCH_HW (code, h30trkhdr.devcode); /* Determine the input device type and size from the device code */ switch (code) { case 0x01: dt=0x3330; cyls=411; alts=7; break; /* 3330 */ case 0x02: dt=0x3330; cyls=815; alts=7; break; /* 3330-11 */ case 0x03: dt=0x3340; cyls=351; alts=1; break; /* 3340-35 */ case 0x04: dt=0x3340; cyls=701; alts=1; break; /* 3340-70 */ case 0x05: dt=0x3350; cyls=562; alts=7; break; /* 3350 */ case 0x06: dt=0x3375; cyls=962; alts=3; break; /* 3375 */ case 0x08: dt=0x3380; cyls=888; alts=3; break; /* 3380-A,D,J*/ case 0x09: dt=0x3380; cyls=1774; alts=4; break; /* 3380-E */ case 0x0A: dt=0x3380; cyls=2660; alts=5; break; /* 3380-K */ case 0x0B: dt=0x3390; cyls=1117; alts=4; break; /* 3390-1 */ case 0x0C: dt=0x3390; cyls=2230; alts=4; break; /* 3390-2 */ case 0x0D: dt=0x3390; cyls=3343; alts=4; break; /* 3390-3 */ case 0x12: dt=0x2314; cyls=203; alts=3; break; /* 2314 */ case 0x13: dt=0x3390; cyls=10038; alts=21; break; /* 3390-9 */ case 0x14: dt=0x9345; cyls=1454; alts=14; break; /* 9345-1 */ case 0x15: dt=0x9345; cyls=2170; alts=14; break; /* 9345-2 */ default: fprintf (stderr, MSG(HHC02415, "E", code)); EXIT(3); } /* end switch(code) *///.........这里部分代码省略.........
开发者ID:IanWorthington,项目名称:hercules-390,代码行数:101,
示例8: convert_ckd_file/*-------------------------------------------------------------------*/static voidconvert_ckd_file (IFD ifd, char *ifname, int itrklen, BYTE *itrkbuf, int repl, int quiet, char *ofname, int fseqn, U16 devtype, U32 heads, U32 trksize, BYTE *obuf, U32 start, U32 end, U32 volcyls, BYTE *volser){int rc; /* Return code */int ofd; /* Output file descriptor */CKDDASD_DEVHDR devhdr; /* Output device header */CKDDASD_TRKHDR *trkhdr; /* -> Output track header */CKDDASD_RECHDR *rechdr; /* -> Output record header */U32 cyl; /* Cylinder number */U32 head; /* Head number */int fileseq; /* CKD header sequence number*/int highcyl; /* CKD header high cyl number*/BYTE *opos; /* -> Byte in output buffer */BYTE klen; /* Key length */U16 dlen; /* Data length */BYTE rec; /* Record number */BYTE *iptr; /* -> Byte in input buffer */BYTE *kptr; /* -> Key in input buffer */BYTE *dptr; /* -> Data in input buffer */int ilen; /* Bytes left in input buffer*/H30CKD_TRKHDR *ith; /* -> Input track header */U32 ihc, ihh; /* Input trk header cyl,head */U32 offset; /* Current input file offset */char pathname[MAX_PATH]; /* file path in host format */ UNREFERENCED(volser); /* Set file sequence number to zero if this is the only file */ if (fseqn == 1 && end + 1 == volcyls) fileseq = 0; else fileseq = fseqn; /* Set high cylinder number to zero if this is the last file */ if (end + 1 == volcyls) highcyl = 0; else highcyl = end; /* Create the AWSCKD image file */ hostpath(pathname, (char *)ofname, sizeof(pathname)); ofd = HOPEN (pathname, O_WRONLY | O_CREAT | O_BINARY | (repl ? 0 : O_EXCL), S_IRUSR | S_IWUSR | S_IRGRP); if (ofd < 0) { fprintf (stderr, MSG(HHC02412, "E", "open()", strerror(errno))); EXIT(8); } /* Create the device header */ memset(&devhdr, 0, CKDDASD_DEVHDR_SIZE); memcpy(devhdr.devid, "CKD_P370", 8); devhdr.heads[3] = (heads >> 24) & 0xFF; devhdr.heads[2] = (heads >> 16) & 0xFF; devhdr.heads[1] = (heads >> 8) & 0xFF; devhdr.heads[0] = heads & 0xFF; devhdr.trksize[3] = (trksize >> 24) & 0xFF; devhdr.trksize[2] = (trksize >> 16) & 0xFF; devhdr.trksize[1] = (trksize >> 8) & 0xFF; devhdr.trksize[0] = trksize & 0xFF; devhdr.devtype = devtype & 0xFF; devhdr.fileseq = fileseq; devhdr.highcyl[1] = (highcyl >> 8) & 0xFF; devhdr.highcyl[0] = highcyl & 0xFF; /* Write the device header */ rc = write (ofd, &devhdr, CKDDASD_DEVHDR_SIZE); if (rc < CKDDASD_DEVHDR_SIZE) { fprintf (stderr, MSG(HHC02412, "E", "write()", errno ? strerror(errno) : "incomplete")); EXIT(1); } /* Write each cylinder */ for (cyl = start; cyl <= end; cyl++) { /* Display progress message every 10 cylinders */ if ((cyl % 10) == 0) {#ifdef EXTERNALGUI if (extgui) fprintf (stderr, "CYL=%u/n", cyl); else#endif /*EXTERNALGUI*/ if (quiet == 0) fprintf (stderr, "Writing cylinder %u/r", cyl); } for (head = 0; head < heads; head++) { /* Calculate the current offset in the file */ offset = ((cyl*heads)+head)*itrklen;//.........这里部分代码省略.........
开发者ID:IanWorthington,项目名称:hercules-390,代码行数:101,
示例9: main//.........这里部分代码省略.........int lfs = 0; /* 1 = Build large file */char *strtok_str = NULL; /* Set program name */ if ( argc > 0 ) { if ( strlen(argv[0]) == 0 ) { pgmname = strdup( UTILITY_NAME ); } else { char path[MAX_PATH];#if defined( _MSVC_ ) GetModuleFileName( NULL, path, MAX_PATH );#else strncpy( path, argv[0], sizeof( path ) );#endif pgmname = strdup(basename(path));#if !defined( _MSVC_ ) strncpy( path, argv[0], sizeof(path) );#endif } } else { pgmname = strdup( UTILITY_NAME ); } pgm = strtok_r( strdup(pgmname), ".", &strtok_str); INITIALIZE_UTILITY( pgm ); /* Display the program identification message */ MSGBUF( msgbuf, MSG_C( HHC02499, "I", pgm, "DASD CKD image conversion" ) ); display_version (stderr, msgbuf+10, FALSE); /* Process the options in the argument list */ for (; argc > 1; argc--, argv++) { if (strcmp(argv[1], "-") == 0) break; if (argv[1][0] != '-') break; if (strcmp(argv[1], "-r") == 0) repl = 1; else if (strcmp(argv[1], "-q") == 0) quiet = 1; else if (sizeof(off_t) > 4 && strcmp(argv[1], "-lfs") == 0) lfs = 1; else argexit(5, pgm); } if (argc != 3) argexit(5, pgm); /* The first argument is the input file name */ if (argv[1] == NULL || strlen(argv[1]) == 0 || strlen(argv[1]) > sizeof(ifname)-1) argexit(1, pgm); strcpy (ifname, argv[1]); /* The second argument is the output file name */ if (argv[2] == NULL || strlen(argv[2]) == 0 || strlen(argv[2]) > sizeof(ofname)-1) argexit(2, pgm); strcpy (ofname, argv[2]); /* Read the first track of the input file, and determine the device type and size from the track header */ ifd = open_input_image (ifname, &devtype, &volcyls, &itrklen, &itrkbuf, volser); /* Use the device type to determine track characteristics */ switch (devtype) { case 0x2314: heads = 20; maxdlen = 7294; break; case 0x3330: heads = 19; maxdlen = 13030; break; case 0x3340: heads = 12; maxdlen = 8368; break; case 0x3350: heads = 30; maxdlen = 19069; break; case 0x3375: heads = 12; maxdlen = 35616; break; case 0x3380: heads = 15; maxdlen = 47476; break; case 0x3390: heads = 15; maxdlen = 56664; break; case 0x9345: heads = 15; maxdlen = 46456; break; default: fprintf (stderr, MSG(HHC02416, "E", devtype)); EXIT(3); } /* end switch(devtype) */ /* Create the device */ convert_ckd (lfs, ifd, ifname, itrklen, itrkbuf, repl, quiet, ofname, devtype, heads, maxdlen, volcyls, volser); /* Release the input buffer and close the input file */ free (itrkbuf); IFCLOS (ifd); /* Display completion message */ fprintf (stderr, MSG(HHC02423, "I")); return 0;} /* end function main */
开发者ID:IanWorthington,项目名称:hercules-390,代码行数:101,
示例10: OnCmdStartvoid OnCmdStart(CCommandParser* pParser){ if(!s_vtClients.empty()) { ::LogClientStartFail(SE_ILLEGAL_STATE, ::HP_GetSocketErrorDesc(SE_ILLEGAL_STATE)); return; } s_stat.Reset(); for(DWORD i = 0; i < g_app_arg.conn_count; i++) { CSSLClientPtr pSocket(&s_listener); if(!pSocket->SetupSSLContext(g_c_iVerifyMode, g_c_lpszPemCertFile, g_c_lpszPemKeyFile, g_c_lpszKeyPasswod, g_c_lpszCAPemCertFileOrPath)) { int iErrCode = ::SYS_GetLastError(); ::LogClientStartFail(iErrCode, _T("initialize SSL env fail")); ClearHPSocketPtrSet(s_vtClients); EXIT(EX_CONFIG, iErrCode); } pSocket->SetKeepAliveTime(g_app_arg.keep_alive ? TCP_KEEPALIVE_TIME : 0); if(pSocket->Start(g_app_arg.remote_addr, g_app_arg.port, g_app_arg.async)) s_vtClients.push_back(pSocket.Detach()); else { ::LogClientStartFail(pSocket->GetLastError(), pSocket->GetLastErrorDesc()); ClearHPSocketPtrSet(s_vtClients); return; } } ::LogClientStart(g_app_arg.remote_addr, g_app_arg.port); DWORD dwSendDelay = 3; CString strMsg; strMsg.Format(_T("*** willing to send data after %d seconds ***"), dwSendDelay); ::LogMsg(strMsg); ::WaitFor(dwSendDelay * 500); while(true) { int iConnected = s_stat.GetConnected(); if(iConnected < 0) { ClearHPSocketPtrSet(s_vtClients); ::LogClientStartFail(ERROR_CONNREFUSED, ::HP_GetSocketErrorDesc(SE_CONNECT_SERVER)); return; } else if(iConnected == (int)g_app_arg.conn_count) break; ::WaitFor(3); } ::WaitFor(dwSendDelay * 500); s_sendBuffer.Malloc(g_app_arg.data_length, true); ::LogMsg(_T("*** Go Now ! ***")); s_stat.StartTest(); BOOL bTerminated = FALSE; for(DWORD i = 0; i < g_app_arg.test_times; i++) { for(DWORD j = 0; j < g_app_arg.conn_count; j++) { ITcpClient* pSocket = s_vtClients[j]; if(!pSocket->Send(s_sendBuffer, (int)s_sendBuffer.Size())) { ::LogClientSendFail(i + 1, j + 1, ::SYS_GetLastError(), ::HP_GetSocketErrorDesc(SE_DATA_SEND)); bTerminated = TRUE; break; } } if(bTerminated) break; if(g_app_arg.test_interval > 0 && i + 1 < g_app_arg.test_times) ::WaitFor(g_app_arg.test_interval); } if(bTerminated) ClearHPSocketPtrSet(s_vtClients); s_sendBuffer.Free();}
开发者ID:anheiqq,项目名称:HP-Socket,代码行数:98,
示例11: mainint main(int argc,char **argv) { const char *szTestFile; FILE *f; if(argc != 2) { fprintf(stderr,"%s <test file>/n",argv[0]); EXIT(1); } CRYPTO_malloc_debug_init(); CRYPTO_set_mem_debug_options(V_CRYPTO_MDEBUG_ALL); CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); szTestFile=argv[1]; f=fopen(szTestFile,"r"); if(!f) { perror(szTestFile); EXIT(2); } /* Load up the software EVP_CIPHER and EVP_MD definitions */ OpenSSL_add_all_ciphers(); OpenSSL_add_all_digests();#ifndef OPENSSL_NO_ENGINE /* Load all compiled-in ENGINEs */ ENGINE_load_builtin_engines();#endif#if 0 OPENSSL_config();#endif#ifndef OPENSSL_NO_ENGINE /* Register all available ENGINE implementations of ciphers and digests. * This could perhaps be changed to "ENGINE_register_all_complete()"? */ ENGINE_register_all_ciphers(); ENGINE_register_all_digests(); /* If we add command-line options, this statement should be switchable. * It'll prevent ENGINEs being ENGINE_init()ialised for cipher/digest use if * they weren't already initialised. */ /* ENGINE_set_cipher_flags(ENGINE_CIPHER_FLAG_NOINIT); */#endif for( ; ; ) { char line[4096]; char *p; char *cipher; unsigned char *iv,*key,*plaintext,*ciphertext; int encdec; int kn,in,pn,cn; if(!fgets((char *)line,sizeof line,f)) break; if(line[0] == '#' || line[0] == '/n') continue; p=line; cipher=sstrsep(&p,":"); key=ustrsep(&p,":"); iv=ustrsep(&p,":"); plaintext=ustrsep(&p,":"); ciphertext=ustrsep(&p,":"); if (p[-1] == '/n') { p[-1] = '/0'; encdec = -1; } else { encdec = atoi(sstrsep(&p,"/n")); } kn=convert(key); in=convert(iv); pn=convert(plaintext); cn=convert(ciphertext); if(!test_cipher(cipher,key,kn,iv,in,plaintext,pn,ciphertext,cn,encdec) && !test_digest(cipher,plaintext,pn,ciphertext,cn)) {#ifdef OPENSSL_NO_AES if (strstr(cipher, "AES") == cipher) { fprintf(stdout, "Cipher disabled, skipping %s/n", cipher); continue; }#endif#ifdef OPENSSL_NO_DES if (strstr(cipher, "DES") == cipher) { fprintf(stdout, "Cipher disabled, skipping %s/n", cipher); continue; }#endif#ifdef OPENSSL_NO_RC4 if (strstr(cipher, "RC4") == cipher) { fprintf(stdout, "Cipher disabled, skipping %s/n", cipher); continue; }#endif//.........这里部分代码省略.........
开发者ID:RyunosukeOno,项目名称:rayjack,代码行数:101,
示例12: test1_exitstatic int test1_exit(int ec) { EXIT(ec); return(0); /* To keep some compilers quiet */ }
开发者ID:RyunosukeOno,项目名称:rayjack,代码行数:5,
示例13: mc_sync// Upon return no more I/O is possible. The stream is closed.//// If ne_close indicates a recoverable error, then the object is// logged to the "degraded object log".int mc_sync(DAL_Context* ctx) { ENTRY(); ObjectStream* os = MC_OS(ctx); ne_handle handle = MC_HANDLE(ctx); MC_Config* config = MC_CONFIG(ctx); MC_Context* mc_context = MC_CONTEXT(ctx); if(! (os->flags & OSF_OPEN)) { LOG(LOG_ERR, "%s isn't open/n", os->url); errno = EINVAL; return -1; } // the result of close for a handle opened for reading is an // indicator of whether the data is degraded and, if so, which // block is corrupt or missing. int error_pattern = ne_close(handle); if(error_pattern > 0) { // Keeping the log message as well as writing to the degraded // object file for debugging purposes. LOG(LOG_INFO, "WARNING: Object %s degraded. Error pattern: 0x%x." " (N: %d, E: %d, Start: %d)./n", mc_context->path_template, error_pattern, config->n, config->e, mc_context->start_block); // we shouldn't need more then 512 bytes to hold the extra data // needed for rebuild char buf[MC_MAX_LOG_LEN]; snprintf(buf, MC_MAX_LOG_LEN, MC_DEGRADED_LOG_FORMAT, mc_context->path_template, config->n, config->e, mc_context->start_block, error_pattern, MC_FH(ctx)->info.pre.repo->name, mc_context->pod, mc_context->cap); WAIT(&config->lock); // If the degraded log file has not already been opened, open it now. if(config->degraded_log_fd == -1) { config->degraded_log_fd = open_degraded_object_log(config->degraded_log_path); if(config->degraded_log_fd < 0) { LOG(LOG_ERR, "failed to open degraded log file/n"); } else { // If we successfully opened it, then free the resources // used to store the path. free(config->degraded_log_path); config->degraded_log_path = NULL; } } if(write(config->degraded_log_fd, buf, strlen(buf)) != strlen(buf)) { LOG(LOG_ERR, "Failed to write to degraded object log/n"); // theoretically the data is still safe, so we can just log // and ignore the failure. } POST(&config->lock); } else if(error_pattern < 0) { // close the stream, a failed sync renders the ne_handle // invalid calling mc_close should prevent marfs from ever // trying to use it again. mc_close(ctx); os->flags |= OSF_ERRORS; LOG(LOG_ERR, "ne_close failed on %s", mc_context->path_template); return -1; } EXIT(); return 0;}
开发者ID:thewacokid,项目名称:marfs,代码行数:75,
示例14: convert_ckd/*-------------------------------------------------------------------*/static voidconvert_ckd (int lfs, IFD ifd, char *ifname, int itrklen, BYTE *itrkbuf, int repl, int quiet, char *ofname, U16 devtype, U32 heads, U32 maxdlen, U32 volcyls, BYTE *volser){int i; /* Array subscript */char *s; /* String pointer */int fileseq; /* File sequence number */char sfname[260]; /* Suffixed name of this file*/char *suffix; /* -> Suffix character */U32 endcyl; /* Last cylinder of this file*/U32 cyl; /* Cylinder number */U32 cylsize; /* Cylinder size in bytes */BYTE *obuf; /* -> Output track buffer */U32 mincyls; /* Minimum cylinder count */U32 maxcyls; /* Maximum cylinder count */U32 maxcpif; /* Maximum number of cylinders in each CKD image file */int rec0len = 8; /* Length of R0 data */U32 trksize; /* AWSCKD image track length */ /* Compute the AWSCKD image track length */ trksize = sizeof(CKDDASD_TRKHDR) + sizeof(CKDDASD_RECHDR) + rec0len + sizeof(CKDDASD_RECHDR) + maxdlen + sizeof(eighthexFF); trksize = ROUND_UP(trksize,512); /* Compute minimum and maximum number of cylinders */ cylsize = trksize * heads; mincyls = 1; if (!lfs) { maxcpif = 0x80000000 / cylsize; maxcyls = maxcpif * CKD_MAXFILES; } else maxcpif = maxcyls = volcyls; if (maxcyls > 65536) maxcyls = 65536; /* Check for valid number of cylinders */ if (volcyls < mincyls || volcyls > maxcyls) { fprintf (stderr, MSG(HHC02421, "E", volcyls, mincyls, maxcyls)); EXIT(4); } /* Obtain track data buffer */ obuf = malloc(trksize); if (obuf == NULL) { char buf[40]; MSGBUF( buf, "malloc(%u)", trksize); fprintf (stderr, MSG(HHC02412, "E", buf, strerror(errno))); EXIT(6); } /* Display progress message */ fprintf (stderr, MSG(HHC02422, "I", devtype, volser, volcyls, heads, trksize));#ifdef EXTERNALGUI if (extgui) fprintf (stderr, "CYLS=%u/n", volcyls);#endif /*EXTERNALGUI*/ /* Copy the unsuffixed AWSCKD image file name */ strcpy (sfname, ofname); suffix = NULL; /* Create the suffixed file name if volume will exceed 2GB */ if (volcyls > maxcpif) { /* Look for last slash marking end of directory name */ s = strrchr (ofname, '/'); if (s == NULL) s = ofname; /* Insert suffix before first dot in file name, or append suffix to file name if there is no dot */ s = strchr (s, '.'); if (s != NULL) { i = s - ofname; strcpy (sfname + i, "_1"); strcat (sfname, ofname + i); suffix = sfname + i + 1; } else { strcat (sfname, "_1"); suffix = sfname + strlen(sfname) - 1; } } /* Create the AWSCKD image files */ for (cyl = 0, fileseq = 1; cyl < volcyls;//.........这里部分代码省略.........
开发者ID:IanWorthington,项目名称:hercules-390,代码行数:101,
示例15: process_parametersstatic void process_parameters(int argc, char **argv){ int i, fich, tmpnum; /* process command line arguments */ for (i=1, fich=0; i<argc; i++) { if (!strcmp(argv[i], "-e")) { param_strict = 0; } else if (!strcmp(argv[i], "-t") && ((i+1) < argc)) { param_doctype = dtd_get_dtd_index(argv[++i]); } else if (!strcmp(argv[i], "-o") && ((i+1) < argc)) { /* open the output file */ param_outputf = fopen(argv[++i], "wb"); if (!param_outputf) { perror("fopen"); EXIT("Could not open the output file for writing"); } } else if (!strcmp(argv[i], "-l") && ((i+1) < argc)) { tmpnum= atoi(argv[++i]); if (tmpnum >= 40) param_chars_per_line = tmpnum; } else if (!strcmp(argv[i], "-b") && ((i+1) < argc)) { tmpnum= atoi(argv[++i]); if (tmpnum >= 0 && tmpnum <= 16) param_tab_len = tmpnum; } else if (!strcmp(argv[i], "--preserve-space-comments")) { param_pre_comments = 1; } else if (!strcmp(argv[i], "--no-protect-cdata")) { param_protect_cdata = 0; } else if (!strcmp(argv[i], "--compact-block-elements")) { param_compact_block_elms = 1; } else if (!strcmp(argv[i], "--compact-empty-elem-tags")) { param_compact_empty_elm_tags = 1; } else if (!strcmp(argv[i], "--empty-elm-tags-always")) { param_empty_tags = 1; } else if (!strcmp(argv[i], "--dos-eol")) { param_crlf_eol = 1; } else if (!fich && argv[i][0]!='-') { fich = 1; param_inputf = fopen(argv[i], "r"); if (!param_inputf) { perror("fopen"); EXIT("Could not open the input file for reading"); } } else if (!strcmp(argv[i], "--help") || !strcmp(argv[i], "-h")) { help(); exit(0); } else if (!strcmp(argv[i], "--version") || !strcmp(argv[i], "-v")) { print_version(); exit(0); } else if (!strcmp(argv[i], "-L")) { print_doctype_keys(); exit(0); } else if (!strcmp(argv[i], "--ics") && ((i+1) < argc)) { param_charset_in = charset_lookup_alias(argv[++i]); if (!param_charset_in) { EPRINTF1("Trying to set input character set: %s/n", argv[i]); EXIT("Unsupported character set"); } } else if (!strcmp(argv[i], "--ocs") && ((i+1) < argc)) { param_charset_out = charset_lookup_alias(argv[++i]); if (!param_charset_out) { EPRINTF1("Trying to set output character set: %s/n", argv[i]); EXIT("Unsupported character set"); } } else if (!strcmp(argv[i], "--lcs")) { charset_dump_aliases(stdout); exit(0); } else if (!strcmp(argv[i], "--generate-snippet")) { param_generate_snippet = 1; } else { help(); exit(1); } } }
开发者ID:andytough,项目名称:html2xhtml,代码行数:76,
示例16: t1394Cmdr_SystemSetPowerIrpCompletionNTSTATUSt1394Cmdr_SystemSetPowerIrpCompletion( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID NotUsed ){ PDEVICE_EXTENSION deviceExtension = DeviceObject->DeviceExtension; NTSTATUS ntStatus = Irp->IoStatus.Status; PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(Irp); POWER_STATE state = stack->Parameters.Power.State; POWER_COMPLETION_CONTEXT *powerContext = NULL; PIRP pDIrp = NULL; ENTER("t1394Cmdr_SystemPowerIrpCompletion"); if (!NT_SUCCESS(ntStatus)) { TRACE(TL_TRACE, ("Set System Power Irp failed, status = 0x%x/n", ntStatus)); PoStartNextPowerIrp(Irp); ntStatus = STATUS_SUCCESS; goto Exit_SystemSetPowerIrpCompletion; } // allocate powerContext powerContext = (POWER_COMPLETION_CONTEXT*) ExAllocatePool(NonPagedPool, sizeof(POWER_COMPLETION_CONTEXT)); if (!powerContext) { TRACE(TL_TRACE, ("Failed to allocate powerContext, status = 0x%x/n", ntStatus)); ntStatus = STATUS_INSUFFICIENT_RESOURCES; goto Exit_SystemSetPowerIrpCompletion; } else { if (state.SystemState == PowerSystemWorking) { state.DeviceState = PowerDeviceD0; } else { state.DeviceState = PowerDeviceD3; } powerContext->DeviceObject = DeviceObject; powerContext->SIrp = Irp; ntStatus = PoRequestPowerIrp(deviceExtension->StackDeviceObject, IRP_MN_SET_POWER, state, t1394Cmdr_DeviceSetPowerIrpCompletion, powerContext, &pDIrp); TRACE(TL_TRACE, ("New Device Set Power Irp = 0x%x/n", pDIrp)); }Exit_SystemSetPowerIrpCompletion: if (!NT_SUCCESS(ntStatus)) { TRACE(TL_TRACE, ("System SetPowerIrp Completion routine failed = 0x%x/n", ntStatus)); if (powerContext) { ExFreePool(powerContext); } PoStartNextPowerIrp(Irp); Irp->IoStatus.Status = ntStatus; } else { ntStatus = STATUS_MORE_PROCESSING_REQUIRED; } EXIT("t1394Cmdr_SystemPowerIrpCompletion", ntStatus); return ntStatus;}
开发者ID:iamchucky,项目名称:tdloc,代码行数:81,
示例17: m_contextWindow::Window(int width, int height, bool enableVsync) :m_window(nullptr), m_context(nullptr), m_width(width), m_height(height){ if(!init(enableVsync)) EXIT("Window initialization failed."); }
开发者ID:compix,项目名称:Mesh-Decimator,代码行数:6,
示例18: t1394Cmdr_DeviceSetPowerIrpCompletionVOIDt1394Cmdr_DeviceSetPowerIrpCompletion( PDEVICE_OBJECT DeviceObject, UCHAR MinorFunction, POWER_STATE state, POWER_COMPLETION_CONTEXT* PowerContext, PIO_STATUS_BLOCK IoStatus ){ PDEVICE_EXTENSION deviceExtension = (PDEVICE_EXTENSION) PowerContext->DeviceObject->DeviceExtension; PIRP sIrp = PowerContext->SIrp; NTSTATUS ntStatus = IoStatus->Status; ENTER("t1394Cmdr_DevicePowerIrpCompletion"); if(!NT_SUCCESS(ntStatus)) { TRACE(TL_WARNING, ("Device Power Irp failed by driver below us = 0x%x/n", ntStatus)); goto Exit_t1394Cmdr_DeviceSetPowerIrpCompletion; } // set the new power state PoSetPowerState(DeviceObject, DevicePowerState, state); // figure out how to respond to this power state change if (state.DeviceState < deviceExtension->CurrentDevicePowerState) { // adding power // check to see if we are working again if (PowerDeviceD0 == state.DeviceState) { TRACE (TL_TRACE, ("Restarting our device/n")); deviceExtension->bShutdown = FALSE; // update the generation count t1394_GetGenerationCount(DeviceObject, NULL, &deviceExtension->GenerationCount); } } else { // removing power deviceExtension->bShutdown = TRUE; } // save the current device power state deviceExtension->CurrentDevicePowerState = state.DeviceState;Exit_t1394Cmdr_DeviceSetPowerIrpCompletion: // Here we copy the D-IRP status into the S-IRP sIrp->IoStatus.Status = IoStatus->Status; // Release the IRP PoStartNextPowerIrp(sIrp); sIrp->IoStatus.Information = 0; IoCompleteRequest(sIrp, IO_NO_INCREMENT); // Cleanup ExFreePool(PowerContext); EXIT("t1394Cmdr_DevicePowerIrpCompletion", ntStatus);}
开发者ID:iamchucky,项目名称:tdloc,代码行数:62,
示例19: ms2_output_combo_setup/*! /brief sets up and populates the MS2-Extra combo for output choice /param widget is the pointer to the combo to initialize */G_MODULE_EXPORT void ms2_output_combo_setup(GtkWidget *widget){ guint i = 0; GtkWidget *parent = NULL; gchar * lower = NULL; gchar * upper = NULL; gfloat * multiplier = NULL; gfloat * adder = NULL; gfloat * testmult = NULL; gchar * range = NULL; gint bitval = 0; gint width = 0; DataSize size = MTX_U08; gint precision = 0; gconstpointer * object = NULL; gint raw_lower = 0; gint raw_upper = 0; gboolean temp_dep = FALSE; gchar *raw_lower_str = NULL; gchar *raw_upper_str = NULL; gchar *tempc_range = NULL; gchar *tempf_range = NULL; gchar *tempk_range = NULL; gfloat real_lower = 0.0; gfloat real_upper = 0.0; gfloat tmpf = 0.0; gchar * name = NULL; gchar *internal_names = NULL; GtkWidget *entry = NULL; GtkEntryCompletion *completion = NULL; GtkListStore *store = NULL; GtkTreeIter iter; ENTER(); Rtv_Map *rtv_map = NULL; rtv_map = (Rtv_Map *)DATA_GET(global_data,"rtv_map"); if (!rtv_map) { EXIT(); return; } /* Create the store for the combo, with severla hidden values */ store = gtk_list_store_new(UO_COMBO_COLS, G_TYPE_STRING, /* Choice */ G_TYPE_UCHAR, /* BITval */ G_TYPE_POINTER, /* FromECU Multiplier (gfloat *) */ G_TYPE_POINTER, /* FromECU Adder (gfloat *) */ G_TYPE_STRING, /* Raw Lower clamp limit */ G_TYPE_STRING, /* Raw Upper clamp limit */ G_TYPE_STRING, /* Range widget string (non temp ctrls) */ G_TYPE_STRING, /* Range widget string (Celsius) */ G_TYPE_STRING, /* Range widget string (Fahrenheit) */ G_TYPE_STRING, /* Range widget string (Kelvin) */ G_TYPE_INT, /* Size enumeration (_U08_, _U16_, etc.) */ G_TYPE_UCHAR, /* Precision (floating point precision) */ G_TYPE_BOOLEAN);/* Temp dependent flag */ /* Iterate across valid variables */ for (i=0;i<rtv_map->rtv_list->len;i++) { object = NULL; name = NULL; object = (gconstpointer *)g_ptr_array_index(rtv_map->rtv_list,i); if (!object) continue; name = (gchar *) DATA_GET(object,"dlog_gui_name"); if (!name) continue; if (DATA_GET(object,"fromecu_complex")) continue; if (DATA_GET(object,"special")) continue; internal_names = (gchar *) DATA_GET(object,"internal_names"); if (!find_in_list(rtv_map->raw_list,internal_names)) continue; temp_dep = (GBOOLEAN)DATA_GET(object,"temp_dep"); size = (DataSize)(GINT)DATA_GET(object,"size"); multiplier = (gfloat *)DATA_GET(object,"fromecu_mult"); adder = (gfloat *)DATA_GET(object,"fromecu_add"); precision = (GINT) DATA_GET(object,"precision"); bitval = (GINT) DATA_GET(object,"offset"); if (DATA_GET(object,"real_lower")) { lower = (gchar *)DATA_GET(object,"real_lower"); real_lower = g_strtod(lower,NULL); raw_lower = calc_value_f(real_lower,multiplier,adder,TOECU); } else raw_lower = get_extreme_from_size_f(size,LOWER); if (DATA_GET(object,"real_upper")) { upper = (gchar *)DATA_GET(object,"real_upper");//.........这里部分代码省略.........
开发者ID:JacobD10,项目名称:MegaTunix,代码行数:101,
示例20: t1394Cmdr_PowerNTSTATUSt1394Cmdr_Power( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ){ NTSTATUS ntStatus = STATUS_SUCCESS; PIO_STACK_LOCATION IrpSp; PDEVICE_EXTENSION deviceExtension; POWER_STATE State; KIRQL Irql; ENTER("t1394Cmdr_Power"); deviceExtension = DeviceObject->DeviceExtension; IrpSp = IoGetCurrentIrpStackLocation(Irp); State = IrpSp->Parameters.Power.State; TRACE(TL_TRACE, ("Power.Type = 0x%x/n", IrpSp->Parameters.Power.Type)); TRACE(TL_TRACE, ("Power.State.SystemState = 0x%x/n", State.SystemState)); TRACE(TL_TRACE, ("Power.State.DeviceState = 0x%x/n", State.DeviceState)); switch (IrpSp->MinorFunction) { case IRP_MN_SET_POWER: TRACE(TL_TRACE, ("IRP_MN_SET_POWER/n")); switch (IrpSp->Parameters.Power.Type) { case SystemPowerState: TRACE(TL_TRACE, ("SystemPowerState/n")); // Send the IRP down PoStartNextPowerIrp(Irp); IoCopyCurrentIrpStackLocationToNext(Irp); IoSetCompletionRoutine(Irp, (PIO_COMPLETION_ROUTINE) t1394Cmdr_SystemSetPowerIrpCompletion, NULL, TRUE, TRUE, TRUE); ntStatus = PoCallDriver(deviceExtension->StackDeviceObject, Irp); break; case DevicePowerState: TRACE(TL_TRACE, ("DevicePowerState/n")); TRACE(TL_TRACE, ("Current device state = 0x%x, new device state = 0x%x/n", deviceExtension->CurrentDevicePowerState, State.DeviceState)); PoStartNextPowerIrp(Irp); IoCopyCurrentIrpStackLocationToNext(Irp); ntStatus = PoCallDriver(deviceExtension->StackDeviceObject, Irp); break; // DevicePowerState default: break; } break; // IRP_MN_SET_POWER case IRP_MN_QUERY_POWER: TRACE(TL_TRACE, ("IRP_MN_QUERY_POWER/n")); PoStartNextPowerIrp(Irp); IoSkipCurrentIrpStackLocation(Irp); ntStatus = PoCallDriver(deviceExtension->StackDeviceObject, Irp); break; // IRP_MN_QUERY_POWER default: TRACE(TL_TRACE, ("Default = 0x%x/n", IrpSp->MinorFunction)); PoStartNextPowerIrp(Irp); IoSkipCurrentIrpStackLocation(Irp); ntStatus = PoCallDriver(deviceExtension->StackDeviceObject, Irp); break; // default } // switch EXIT("t1394Cmdr_Power", ntStatus); return(ntStatus);} // t1394Cmdr_Power
开发者ID:iamchucky,项目名称:tdloc,代码行数:84,
示例21: mainint main(int argc, char *argv[]){ BN_GENCB _cb; DH *a; DH *b = NULL; char buf[12]; unsigned char *abuf = NULL, *bbuf = NULL; int i, alen, blen, aout, bout, ret = 1; BIO *out; CRYPTO_malloc_debug_init(); CRYPTO_dbg_set_options(V_CRYPTO_MDEBUG_ALL); CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);# ifdef OPENSSL_SYS_WIN32 CRYPTO_malloc_init();# endif RAND_seed(rnd_seed, sizeof rnd_seed); out = BIO_new(BIO_s_file()); if (out == NULL) EXIT(1); BIO_set_fp(out, stdout, BIO_NOCLOSE); BN_GENCB_set(&_cb, &cb, out); if (((a = DH_new()) == NULL) || !DH_generate_parameters_ex(a, 64, DH_GENERATOR_5, &_cb)) goto err; if (!DH_check(a, &i)) goto err; if (i & DH_CHECK_P_NOT_PRIME) BIO_puts(out, "p value is not prime/n"); if (i & DH_CHECK_P_NOT_SAFE_PRIME) BIO_puts(out, "p value is not a safe prime/n"); if (i & DH_UNABLE_TO_CHECK_GENERATOR) BIO_puts(out, "unable to check the generator value/n"); if (i & DH_NOT_SUITABLE_GENERATOR) BIO_puts(out, "the g value is not a generator/n"); BIO_puts(out, "/np ="); BN_print(out, a->p); BIO_puts(out, "/ng ="); BN_print(out, a->g); BIO_puts(out, "/n"); b = DH_new(); if (b == NULL) goto err; b->p = BN_dup(a->p); b->g = BN_dup(a->g); if ((b->p == NULL) || (b->g == NULL)) goto err; /* Set a to run with normal modexp and b to use constant time */ a->flags &= ~DH_FLAG_NO_EXP_CONSTTIME; b->flags |= DH_FLAG_NO_EXP_CONSTTIME; if (!DH_generate_key(a)) goto err; BIO_puts(out, "pri 1="); BN_print(out, a->priv_key); BIO_puts(out, "/npub 1="); BN_print(out, a->pub_key); BIO_puts(out, "/n"); if (!DH_generate_key(b)) goto err; BIO_puts(out, "pri 2="); BN_print(out, b->priv_key); BIO_puts(out, "/npub 2="); BN_print(out, b->pub_key); BIO_puts(out, "/n"); alen = DH_size(a); abuf = (unsigned char *)OPENSSL_malloc(alen); aout = DH_compute_key(abuf, b->pub_key, a); BIO_puts(out, "key1 ="); for (i = 0; i < aout; i++) { sprintf(buf, "%02X", abuf[i]); BIO_puts(out, buf); } BIO_puts(out, "/n"); blen = DH_size(b); bbuf = (unsigned char *)OPENSSL_malloc(blen); bout = DH_compute_key(bbuf, a->pub_key, b); BIO_puts(out, "key2 ="); for (i = 0; i < bout; i++) { sprintf(buf, "%02X", bbuf[i]); BIO_puts(out, buf); } BIO_puts(out, "/n"); if ((aout < 4) || (bout != aout) || (memcmp(abuf, bbuf, aout) != 0)) { fprintf(stderr, "Error in DH routines/n");//.........这里部分代码省略.........
开发者ID:mz02005,项目名称:CScript,代码行数:101,
示例22: main//.........这里部分代码省略......... arg.count=0; if (bio_err == NULL) if ((bio_err=BIO_new(BIO_s_file())) != NULL) BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT); if (getenv("OPENSSL_DEBUG_MEMORY") != NULL) /* if not defined, use compiled-in library defaults */ { if (!(0 == strcmp(getenv("OPENSSL_DEBUG_MEMORY"), "off"))) { CRYPTO_malloc_debug_init(); CRYPTO_set_mem_debug_options(V_CRYPTO_MDEBUG_ALL); } else { /* OPENSSL_DEBUG_MEMORY=off */ CRYPTO_set_mem_debug_functions(0, 0, 0, 0, 0); } } CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);#if 0 if (getenv("OPENSSL_DEBUG_LOCKING") != NULL)#endif { CRYPTO_set_locking_callback(lock_dbg_cb); } if(getenv("OPENSSL_FIPS")) {#ifdef OPENSSL_FIPS if (!FIPS_mode_set(1)) { ERR_load_crypto_strings(); ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE)); EXIT(1); }#else fprintf(stderr, "FIPS mode not supported./n"); EXIT(1);#endif } apps_startup(); /* Lets load up our environment a little */ p=getenv("OPENSSL_CONF"); if (p == NULL) p=getenv("SSLEAY_CONF"); if (p == NULL) p=to_free=make_config_name(); default_config_file=p; config=NCONF_new(NULL); i=NCONF_load(config,p,&errline); if (i == 0) { if (ERR_GET_REASON(ERR_peek_last_error()) == CONF_R_NO_SUCH_FILE) {#if 0 /* ANDROID */ BIO_printf(bio_err, "WARNING: can't open config file: %s/n",p);#endif ERR_clear_error(); NCONF_free(config); config = NULL;
开发者ID:venkatarajasekhar,项目名称:Qt,代码行数:67,
示例23: main//.........这里部分代码省略......... goto test6; } if (!HMAC_Final(&ctx, buf, &len)) { printf("Error finalising data (test 5)/n"); err++; goto test6; } p = pt(buf, len); if (strcmp(p, (const char *)test[4].digest) != 0) { printf("Error calculating interim HMAC on test 5/n"); printf("got %s instead of %s/n", p, test[4].digest); err++; goto test6; } if (HMAC_Init_ex(&ctx, NULL, 0, EVP_sha256(), NULL)) { printf("Should disallow changing MD without a new key (test 5)/n"); err++; goto test6; } if (!HMAC_Init_ex(&ctx, test[4].key, test[4].key_len, EVP_sha256(), NULL)) { printf("Failed to reinitialise HMAC (test 5)/n"); err++; goto test6; } if (!HMAC_Update(&ctx, test[5].data, test[5].data_len)) { printf("Error updating HMAC with data (sha256) (test 5)/n"); err++; goto test6; } if (!HMAC_Final(&ctx, buf, &len)) { printf("Error finalising data (sha256) (test 5)/n"); err++; goto test6; } p = pt(buf, len); if (strcmp(p, (const char *)test[5].digest) != 0) { printf("Error calculating 2nd interim HMAC on test 5/n"); printf("got %s instead of %s/n", p, test[5].digest); err++; goto test6; } if (!HMAC_Init_ex(&ctx, test[6].key, test[6].key_len, NULL, NULL)) { printf("Failed to reinitialise HMAC with key (test 5)/n"); err++; goto test6; } if (!HMAC_Update(&ctx, test[6].data, test[6].data_len)) { printf("Error updating HMAC with data (new key) (test 5)/n"); err++; goto test6; } if (!HMAC_Final(&ctx, buf, &len)) { printf("Error finalising data (new key) (test 5)/n"); err++; goto test6; } p = pt(buf, len); if (strcmp(p, (const char *)test[6].digest) != 0) { printf("error calculating HMAC on test 5/n"); printf("got %s instead of %s/n", p, test[6].digest); err++; } else { printf("test 5 ok/n"); }test6: HMAC_CTX_cleanup(&ctx); HMAC_CTX_init(&ctx); if (!HMAC_Init_ex(&ctx, test[7].key, test[7].key_len, EVP_sha1(), NULL)) { printf("Failed to initialise HMAC (test 6)/n"); err++; goto end; } if (!HMAC_Update(&ctx, test[7].data, test[7].data_len)) { printf("Error updating HMAC with data (test 6)/n"); err++; goto end; } if (!HMAC_CTX_copy(&ctx2, &ctx)) { printf("Failed to copy HMAC_CTX (test 6)/n"); err++; goto end; } if (!HMAC_Final(&ctx2, buf, &len)) { printf("Error finalising data (test 6)/n"); err++; goto end; } p = pt(buf, len); if (strcmp(p, (const char *)test[7].digest) != 0) { printf("Error calculating HMAC on test 6/n"); printf("got %s instead of %s/n", p, test[7].digest); err++; } else { printf("test 6 ok/n"); }end: HMAC_CTX_cleanup(&ctx); EXIT(err); return (0);}
开发者ID:IIJ-NetBSD,项目名称:netbsd-src,代码行数:101,
示例24: ENTERCallbackPipeline::~CallbackPipeline() { ENTER(); EXIT();}
开发者ID:AntonioMA,项目名称:UVCCamera,代码行数:5,
示例25: sys__msg_recv/*! * Receive message from queue (global or from own thread message queue) */int sys__msg_recv ( int src_type, void *src, msg_t *msg, int type, size_t size, uint flags ){ kthread_t *kthr; kthrmsg_qs *thrmsg; kgmsg_q *kgmsgq; kmsg_q *kmsgq; msg_q *msgq; kmsg_t *kmsg; ASSERT_ERRNO_AND_EXIT ( src && msg, E_INVALID_HANDLE ); ASSERT_ERRNO_AND_EXIT ( src_type == MSG_THREAD || src_type == MSG_QUEUE, E_INVALID_TYPE ); if ( src_type == MSG_THREAD ) { kthr = k_get_active_thread (); thrmsg = k_get_thrmsg ( kthr ); kmsgq = &thrmsg->msgq; } else { /* src_type == MSG_QUEUE */ msgq = src; kgmsgq = msgq->handle; ASSERT_ERRNO_AND_EXIT ( kgmsgq && kgmsgq->id == msgq->id, E_INVALID_HANDLE ); kmsgq = &kgmsgq->mq; } /* get first message from queue */ kmsg = list_get ( &kmsgq->msgs, FIRST ); if ( type != 0 ) /* type != 0 => search for first message 'type' */ while ( kmsg && kmsg->msg.type != type ) kmsg = list_get_next ( &kmsg->list ); if ( kmsg ) /* have message */ { if ( size < kmsg->msg.size ) { msg->size = 0; EXIT ( E_TOO_BIG ); } msg->type = kmsg->msg.type; msg->size = kmsg->msg.size; memcpy ( msg->data, kmsg->msg.data, msg->size ); kmsg = list_remove ( &kmsgq->msgs, FIRST, &kmsg->list ); ASSERT ( kmsg ); kfree ( kmsg ); EXIT ( SUCCESS ); } else { /* queue empty! */ if ( !( flags & IPC_WAIT ) ) EXIT ( E_EMPTY ); SET_ERRNO ( E_RETRY ); /* block thread */ k_enqueue_thread ( NULL, &kmsgq->thrq ); k_schedule_threads (); RETURN ( E_RETRY ); }}
开发者ID:AdamRLukaitis,项目名称:oszur11-operating-system-examples,代码行数:69,
示例26: main//.........这里部分代码省略......... { TEST(); ASSERT(diminuto_shaper_bursttolerance(2, 3, 7, 5) == 23); ASSERT(diminuto_shaper_bursttolerance(2, 0, 7, 5) == 20); ASSERT(diminuto_shaper_bursttolerance(0, 0, 2, 5) == 8); ASSERT(diminuto_shaper_bursttolerance(7, 3, 7, 5) == 3); ASSERT(diminuto_shaper_bursttolerance(2, 3, 7, 1) == 3); ASSERT(diminuto_shaper_bursttolerance(2, 3, 7, 0) == 3); STATUS(); } { static const size_t PEAK = 2048; static const diminuto_ticks_t TOLERANCE = 0; static const size_t SUSTAINED = 1024; static const size_t BURST = 512; static const size_t OPERATIONS = 1000000; diminuto_shaper_t shaper; diminuto_shaper_t * sp; size_t size = 0; diminuto_ticks_t now = 0; diminuto_ticks_t delay; size_t iops; int admissable; uint64_t total = 0; diminuto_ticks_t duration = 0; double peak = 0.0; double sustained; double rate; diminuto_ticks_t frequency; diminuto_ticks_t peakincrement; diminuto_ticks_t jittertolerance; diminuto_ticks_t sustainedincrement; diminuto_ticks_t bursttolerance; /**/ frequency = diminuto_frequency(); /**/ peakincrement = diminuto_throttle_interarrivaltime(PEAK, 1, frequency); jittertolerance = diminuto_throttle_jittertolerance(peakincrement, BURST) + TOLERANCE; sustainedincrement = diminuto_throttle_interarrivaltime(SUSTAINED, 1, frequency); bursttolerance = diminuto_shaper_bursttolerance(peakincrement, jittertolerance, sustainedincrement, BURST); /**/ sp = diminuto_shaper_init(&shaper, peakincrement, 0 /* jittertolerance */, sustainedincrement, bursttolerance, now); ASSERT(sp == &shaper); diminuto_shaper_log(sp); srand(diminuto_time_clock()); /**/ for (iops = 0; iops < OPERATIONS; ++iops) { delay = diminuto_shaper_request(sp, now); ASSERT(delay >= 0); now += delay; duration += delay; if (iops <= 0) { /* Do nothing. */ } else if (delay <= 0) { /* Do nothing. */ } else { rate = size; rate *= frequency; rate /= delay; if (rate > peak) { peak = rate; } } delay = diminuto_shaper_request(sp, now); ASSERT(delay == 0); size = blocksize(BURST); ASSERT(size > 0); ASSERT(size <= BURST); total += size; admissable = !diminuto_shaper_commitn(sp, size); ASSERT(admissable); } /**/ delay = diminuto_shaper_getexpected(sp); ASSERT(delay >= 0); now += delay; duration += delay; if (delay > 0) { rate = size; rate *= frequency; rate /= delay; if (rate > peak) { peak = rate; } } diminuto_shaper_update(sp, now); /**/ ASSERT(total > 0); ASSERT(duration > frequency); diminuto_shaper_log(sp); sustained = total; sustained *= frequency; sustained /= duration; DIMINUTO_LOG_DEBUG("operations=%zu total=%llubytes average=%llubytes duration=%lldseconds peak=%zubytes/second measured=%lfbytes/second sustained=%zubytes/second measured=%lfdbytes/second/n", iops, total, total / iops, duration / diminuto_frequency(), PEAK, peak, SUSTAINED, sustained); ASSERT(fabs(sustained - SUSTAINED) < (SUSTAINED / 200) /* 0.5% */); ADVISE(fabs(peak - PEAK) < (PEAK / 200) /* 0.5% */); } EXIT();}
开发者ID:coverclock,项目名称:com-diag-diminuto,代码行数:101,
示例27: process_request//.........这里部分代码省略......... } else if (strncmp(httpd->recvbuf, "POST ", 5) == 0) { httpd->method = ISC_HTTPD_METHODPOST; p = httpd->recvbuf + 5; } else { return (ISC_R_RANGE); } /* * From now on, p is the start of our buffer. */ /* * Extract the URL. */ s = p; while (LENGTHOK(s) && BUFLENOK(s) && (*s != '/n' && *s != '/r' && *s != '/0' && *s != ' ')) s++; if (!LENGTHOK(s)) return (ISC_R_NOTFOUND); if (!BUFLENOK(s)) return (ISC_R_NOMEMORY); *s = 0; /* * Make the URL relative. */ if ((strncmp(p, "http:/", 6) == 0) || (strncmp(p, "https:/", 7) == 0)) { /* Skip first / */ while (*p != '/' && *p != 0) p++; if (*p == 0) return (ISC_R_RANGE); p++; /* Skip second / */ while (*p != '/' && *p != 0) p++; if (*p == 0) return (ISC_R_RANGE); p++; /* Find third / */ while (*p != '/' && *p != 0) p++; if (*p == 0) { p--; *p = '/'; } } httpd->url = p; p = s + delim; s = p; /* * Now, see if there is a ? mark in the URL. If so, this is * part of the query string, and we will split it from the URL. */ httpd->querystring = strchr(httpd->url, '?'); if (httpd->querystring != NULL) { *(httpd->querystring) = 0; httpd->querystring++; } /* * Extract the HTTP/1.X protocol. We will bounce on anything but * HTTP/1.1 for now. */ while (LENGTHOK(s) && BUFLENOK(s) && (*s != '/n' && *s != '/r' && *s != '/0')) s++; if (!LENGTHOK(s)) return (ISC_R_NOTFOUND); if (!BUFLENOK(s)) return (ISC_R_NOMEMORY); *s = 0; if ((strncmp(p, "HTTP/1.0", 8) != 0) && (strncmp(p, "HTTP/1.1", 8) != 0)) return (ISC_R_RANGE); httpd->protocol = p; p = s + 1; s = p; if (strstr(s, "Connection: close") != NULL) httpd->flags |= HTTPD_CLOSE; if (strstr(s, "Host: ") != NULL) httpd->flags |= HTTPD_FOUNDHOST; /* * Standards compliance hooks here. */ if (strcmp(httpd->protocol, "HTTP/1.1") == 0 && ((httpd->flags & HTTPD_FOUNDHOST) == 0)) return (ISC_R_RANGE); EXIT("request"); return (ISC_R_SUCCESS);}
开发者ID:ajinkya93,项目名称:netbsd-src,代码行数:101,
示例28: kmdf1394_SetAddressDataNTSTATUSkmdf1394_SetAddressData ( IN WDFDEVICE Device, IN WDFREQUEST Request, IN PSET_ADDRESS_DATA SetAddrData)/*++Routine Description: Set Address Range routine.Arguments: Device - the current WDFDEVICE Object. Request - the current request. SetAddrData - the Data buffer from usermode to be worked on.Return Value: VOID--*/{ NTSTATUS ntStatus = STATUS_SUCCESS; PDEVICE_EXTENSION deviceExtension = GetDeviceContext(Device); PASYNC_ADDRESS_DATA AsyncAddressData = NULL; PLIST_ENTRY listHead, thisEntry; UNREFERENCED_PARAMETER(Request); ENTER("kmdf1394_SetAddressData"); // // have to find our struct... // WdfSpinLockAcquire(deviceExtension->AsyncSpinLock); listHead = &deviceExtension->AsyncAddressData; for(thisEntry = listHead->Flink; thisEntry != listHead; AsyncAddressData = NULL, thisEntry = thisEntry->Flink) { AsyncAddressData = CONTAINING_RECORD( thisEntry, ASYNC_ADDRESS_DATA, AsyncAddressList); if (AsyncAddressData->hAddressRange == SetAddrData->hAddressRange) { PULONG pBuffer; // // found it, let's copy over the contents from data... // pBuffer = / (PULONG)((ULONG_PTR)AsyncAddressData->Buffer + / SetAddrData->ulOffset); TRACE(TL_TRACE, ("pBuffer = 0x%x/n", pBuffer)); TRACE(TL_TRACE, ("Data = 0x%x/n", SetAddrData->Data)); if(pBuffer && SetAddrData->Data) { RtlCopyMemory(pBuffer, SetAddrData->Data, SetAddrData->nLength); } break; } } WdfSpinLockRelease(deviceExtension->AsyncSpinLock); // // never found an entry... // if (!AsyncAddressData) { ntStatus = STATUS_INVALID_PARAMETER; } EXIT("kmdf1394_SetAddressData", ntStatus); return ntStatus;} // kmdf1394_SetAddressData
开发者ID:HiXiaoMing,项目名称:Win_Dev_Driver_Code,代码行数:82,
注:本文中的EXIT函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ EXIT_CRITICAL_SECTION函数代码示例 C++ EXFAT_SB函数代码示例 |