这篇教程C++ GET2函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GET2函数的典型用法代码示例。如果您正苦于以下问题:C++ GET2函数的具体用法?C++ GET2怎么用?C++ GET2使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GET2函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: GET2char *parse_mesocyclone (char *buf, NIDS_mesocyclone *c) { c->x_start = GET2(buf); c->y_start = GET2(buf + 2); c->radius = GET2(buf + 4); return buf + 6;}
开发者ID:winkey,项目名称:libNIDS,代码行数:7,
示例2: GET2char *parse_raster_header(char *buf, NIDS_raster *r) { int i; char *p; r->op_flags1 = GET2(buf); r->op_flags2 = GET2(buf + 2); r->x_start = GET2(buf + 4); r->y_start = GET2(buf + 6); r->x_scale_int = GET2(buf + 8); r->x_scale_fract = GET2(buf + 10); r->y_scale_int = GET2(buf + 12); r->y_scale_fract = GET2(buf + 14); r->num_rows = GET2(buf + 16); r->packing = GET2(buf + 18); if (!(r->rows = malloc(r->num_rows * sizeof(NIDS_raster_row)))) ERROR("parse_radial_header"); p = buf + 20; for (i = 0 ; i < r->num_rows ; i++) { p = parse_raster_row(p, r->rows + i); } return p;}
开发者ID:winkey,项目名称:libNIDS,代码行数:26,
示例3: get_first_setstatic intget_first_set(const pcre16 *code, PCRE_SPTR16 stringname, int *ovector)#endif{const REAL_PCRE *re = (const REAL_PCRE *)code;int entrysize;pcre_uchar *entry;#ifdef COMPILE_PCRE8char *first, *last;#elsePCRE_UCHAR16 *first, *last;#endif#ifdef COMPILE_PCRE8if ((re->options & PCRE_DUPNAMES) == 0 && (re->flags & PCRE_JCHANGED) == 0) return pcre_get_stringnumber(code, stringname);entrysize = pcre_get_stringtable_entries(code, stringname, &first, &last);#elseif ((re->options & PCRE_DUPNAMES) == 0 && (re->flags & PCRE_JCHANGED) == 0) return pcre16_get_stringnumber(code, stringname);entrysize = pcre16_get_stringtable_entries(code, stringname, &first, &last);#endifif (entrysize <= 0) return entrysize;for (entry = (pcre_uchar *)first; entry <= (pcre_uchar *)last; entry += entrysize) { int n = GET2(entry, 0); if (ovector[n*2] >= 0) return n; }return GET2(entry, 0);}
开发者ID:3rdpaw,项目名称:MdCharm,代码行数:30,
示例4: GET2char *parse_linked_vector(char *buf, NIDS_vector *v, int x_start, int y_start) { v->x_start = x_start; v->y_start = y_start; v->x_end = GET2(buf); v->y_end = GET2(buf + 2); return buf + 4;}
开发者ID:winkey,项目名称:libNIDS,代码行数:9,
示例5: GET2char *parse_hail (char *buf, NIDS_hail *h) { h->x_start = GET2(buf); h->y_start = GET2(buf + 2); h->prob = GET2(buf + 4); h->severe = GET2(buf + 6); h->max_size = GET2(buf + 8); return buf + 10;}
开发者ID:winkey,项目名称:libNIDS,代码行数:10,
示例6: zft_ftape_extract_file_marksvoid zft_ftape_extract_file_marks(__u8* address){ int i; TRACE_FUN(ft_t_any); zft_eof_map = NULL; if (ft_format_code == fmt_var || ft_format_code == fmt_big) { __u8* end; __u8* start = ftape_find_end_of_bsm_list(address); zft_nr_eof_marks = 0; if (start) { start += 3; /* skip end of list mark */ end = find_end_of_eof_list(start, address + FT_SEGMENT_SIZE); if (end && end - start <= FT_FSL_SIZE) { zft_nr_eof_marks = ((end - start) / sizeof(eof_mark_union)); zft_eof_map = (eof_mark_union *)start; } else { TRACE(ft_t_err, "EOF Mark List is too long or damaged!"); } } else { TRACE(ft_t_err, "Bad Sector List is too long or damaged !"); } } else { zft_eof_map = (eof_mark_union *)&address[FT_FSL]; zft_nr_eof_marks = GET2(address, FT_FSL_CNT); } TRACE(ft_t_noise, "number of file marks: %d", zft_nr_eof_marks); if (ftape_fmt_version == 1) { TRACE(ft_t_info, "swapping version 1 fields"); /* version 1 format uses swapped sector and segment * fields, correct that ! */ for (i = 0; i < zft_nr_eof_marks; ++i) { __u16 tmp = GET2(&zft_eof_map[i].mark.segment,0); PUT2(&zft_eof_map[i].mark.segment, 0, GET2(&zft_eof_map[i].mark.date,0)); PUT2(&zft_eof_map[i].mark.date, 0, tmp); } } for (i = 0; i < zft_nr_eof_marks; ++i) { TRACE(ft_t_noise, "eof mark: %5d/%2d", GET2(&zft_eof_map[i].mark.segment, 0), GET2(&zft_eof_map[i].mark.date,0)); } TRACE_EXIT;}
开发者ID:jameshilliard,项目名称:actiontec_opensrc_mi424wr-rev-e-f_fw-20-10-7-5,代码行数:51,
示例7: step4static void step4(int *ix, int *mdist, mat_t mstar, mat_t nmstar, mat_t mprime, col_t ccol, col_t crow, int nrows, int ncols, int dmin, int row, int col){ int n, rstar, cstar, primeRow, primeCol; /* generate temporary copy of mstar */ memcpy(nmstar, mstar, sizeof(mat_t)); /* star current zero */ SET2(nmstar, row, col); /* find starred zero in current column */ cstar = col; for (rstar = 0; rstar < nrows; rstar++) if (GET2(mstar, rstar, cstar)) break; while (rstar < nrows) { /* unstar the starred zero */ CLEAR2(nmstar, rstar, cstar); /* find primed zero in current row */ primeRow = rstar; for (primeCol = 0; primeCol < ncols; primeCol++) if (GET2(mprime, primeRow, primeCol)) break; /* star the primed zero */ SET2(nmstar, primeRow, primeCol); /* find starred zero in current column */ cstar = primeCol; for (rstar = 0; rstar < nrows; rstar++) if (GET2(mstar, rstar, cstar)) break; } /* use temporary copy as new mstar */ /* delete all primes, uncover all rows */ memcpy(mstar, nmstar, sizeof(mat_t)); memset(mprime, 0, sizeof(mat_t)); memset(crow, 0, sizeof(col_t)); /* move to step 2a */ step2a(ix, mdist, mstar, nmstar, mprime, ccol, crow, nrows, ncols, dmin);}
开发者ID:scottferg,项目名称:xorg-multitouch,代码行数:49,
示例8: ctltransstatic longctltrans(Ep *ep, uchar *req, long n){ Hostchan *hc; Epio *epio; Block *b; uchar *data; int datalen; epio = ep->aux; if(epio->cb != nil){ freeb(epio->cb); epio->cb = nil; } if(n < Rsetuplen) error(Ebadlen); if(req[Rtype] & Rd2h){ datalen = GET2(req+Rcount); if(datalen <= 0 || datalen > Maxctllen) error(Ebadlen); /* XXX cache madness */ epio->cb = b = allocb(ROUND(datalen, ep->maxpkt) + CACHELINESZ); b->wp = (uchar*)ROUND((uintptr)b->wp, CACHELINESZ); //epio->cb = b = allocb(ROUND(datalen, ep->maxpkt)); //assert(((uintptr)b->wp & (BLOCKALIGN-1)) == 0); memset(b->wp, 0x55, b->lim - b->wp); cachedwbinvse(b->wp, b->lim - b->wp); data = b->wp; }else{ b = nil; datalen = n - Rsetuplen; data = req + Rsetuplen; } hc = chanalloc(ep); if(waserror()){ chanrelease(ep, hc); if(strcmp(up->env->errstr, Estalled) == 0) return 0; nexterror(); } chansetup(hc, ep); chanio(ep, hc, Epout, SETUP, req, Rsetuplen); if(req[Rtype] & Rd2h){ if(ep->dev->hub <= 1){ ep->toggle[Read] = DATA1; b->wp += multitrans(ep, hc, Read, data, datalen); }else b->wp += chanio(ep, hc, Epin, DATA1, data, datalen); chanio(ep, hc, Epout, DATA1, nil, 0); n = Rsetuplen; }else{ if(datalen > 0) chanio(ep, hc, Epout, DATA1, data, datalen); chanio(ep, hc, Epin, DATA1, nil, 0); n = Rsetuplen + datalen; } chanrelease(ep, hc); poperror(); return n;}
开发者ID:Mekapaedia,项目名称:inferno-rpi,代码行数:60,
示例9: pcre32_get_stringnumberPCRE_EXP_DEFN int PCRE_CALL_CONVENTIONpcre32_get_stringnumber(const pcre32 *code, PCRE_SPTR32 stringname)#endif{int rc;int entrysize;int top, bot;pcre_uchar *nametable;#ifdef COMPILE_PCRE8if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMECOUNT, &top)) != 0) return rc;if (top <= 0) return PCRE_ERROR_NOSUBSTRING;if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMEENTRYSIZE, &entrysize)) != 0) return rc;if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMETABLE, &nametable)) != 0) return rc;#endif#ifdef COMPILE_PCRE16if ((rc = pcre16_fullinfo(code, NULL, PCRE_INFO_NAMECOUNT, &top)) != 0) return rc;if (top <= 0) return PCRE_ERROR_NOSUBSTRING;if ((rc = pcre16_fullinfo(code, NULL, PCRE_INFO_NAMEENTRYSIZE, &entrysize)) != 0) return rc;if ((rc = pcre16_fullinfo(code, NULL, PCRE_INFO_NAMETABLE, &nametable)) != 0) return rc;#endif#ifdef COMPILE_PCRE32if ((rc = pcre32_fullinfo(code, NULL, PCRE_INFO_NAMECOUNT, &top)) != 0) return rc;if (top <= 0) return PCRE_ERROR_NOSUBSTRING;if ((rc = pcre32_fullinfo(code, NULL, PCRE_INFO_NAMEENTRYSIZE, &entrysize)) != 0) return rc;if ((rc = pcre32_fullinfo(code, NULL, PCRE_INFO_NAMETABLE, &nametable)) != 0) return rc;#endifbot = 0;while (top > bot) { int mid = (top + bot) / 2; pcre_uchar *entry = nametable + entrysize*mid; int c = STRCMP_UC_UC((pcre_uchar *)stringname, (pcre_uchar *)(entry + IMM2_SIZE)); if (c == 0) return GET2(entry, 0); if (c > 0) bot = mid + 1; else top = mid; }return PCRE_ERROR_NOSUBSTRING;}
开发者ID:RobertAcksel,项目名称:poco,代码行数:53,
示例10: buildixvectorstatic void buildixvector(int *ix, mat_t mstar, int nrows, int ncols){ int row, col; for (row = 0; row < nrows; row++) { for (col = 0; col < ncols; col++) { if (GET2(mstar, row, col)) { ix[row] = col; break; } } }}
开发者ID:scottferg,项目名称:xorg-multitouch,代码行数:12,
示例11: getrxctlstatic intgetrxctl(Dev *d){ uchar buf[2]; int r; memset(buf, 0, sizeof(buf)); if(asixget(d, Crrxctl, buf, sizeof(buf)) < 0) return -1; r = GET2(buf); deprint(2, "%s: rxctl %#x/n", argv0, r); return r;}
开发者ID:99years,项目名称:plan9,代码行数:13,
示例12: GET2void ProxyConfPrivate::readProxyData(){ /* Read the proxy settings from /system/proxy* */ GET2(http_proxy, host, String); GET2(http_port, port, Int); GET2(ignore_hosts, ignore_hosts, List); GET(mode, String); GET(autoconfig_url, String); GET(secure_host, String); GET(secure_port, Int); GET(ftp_host, String); GET(ftp_port, Int); GET(socks_host, String); GET(socks_port, Int); GET(rtsp_host, String); GET(rtsp_port, Int); if (http_proxy.isEmpty()) use_http_host = false; else use_http_host = true;}
开发者ID:cdaffara,项目名称:symbiandump-mw3,代码行数:23,
示例13: checkhubstatus/* * This may be used to detect overcurrent on the hub */static voidcheckhubstatus(Hub *h){ uint8_t buf[4]; int sts; if(h->isroot) /* not for root hubs */ return; if(usbcmd(h->dev, Rd2h|Rclass|Rdev, Rgetstatus, 0, 0, buf, 4) < 0){ dprint(2, "%s: get hub status: %r/n", h->dev->dir); return; } sts = GET2(buf); dprint(2, "hub %s: status %#x/n", h->dev->dir, sts);}
开发者ID:elbing,项目名称:harvey,代码行数:18,
示例14: step3static void step3(int *ix, int *mdist, mat_t mstar, mat_t nmstar, mat_t mprime, col_t ccol, col_t crow, int nrows, int ncols, int dmin){ int zerosFound; int row, col, cstar; zerosFound = 1; while (zerosFound) { zerosFound = 0; for (col = 0; col < ncols; col++) { if (GET1(ccol, col)) continue; for (row = 0; row < nrows; row++) { if (mdist[row + nrows * col] != 0) continue; if (GET1(crow, row)) continue; /* prime zero */ SET2(mprime, row, col); /* find starred zero in current row */ for (cstar = 0; cstar < ncols; cstar++) if (GET2(mstar, row, cstar)) break; if (cstar == ncols) { /* no starred zero */ /* move to step 4 */ step4(ix, mdist, mstar, nmstar, mprime, ccol, crow, nrows, ncols, dmin, row, col); return; } else { SET1(crow, row); CLEAR1(ccol, cstar); zerosFound = 1; break; } } } } /* move to step 5 */ step5(ix, mdist, mstar, nmstar, mprime, ccol, crow, nrows, ncols, dmin);}
开发者ID:scottferg,项目名称:xorg-multitouch,代码行数:48,
示例15: miireadstatic intmiiread(Dev *d, int phy, int reg){ int r; uchar v[2]; r = Rd2h|Rvendor|Rdev; if(usbcmd(d, r, Crmii, phy, reg, v, 2) < 0){ dprint(2, "%s: miiwrite: %r/n", argv0); return -1; } r = GET2(v); if(r == 0xFFFF) return -1; return r;}
开发者ID:99years,项目名称:plan9,代码行数:16,
示例16: eepromreadstatic inteepromread(Dev *d, int i){ int r; int ec; uchar buf[2]; r = Rd2h|Rvendor|Rdev; ec = usbcmd(d, r, Creeprom, i, 0, buf, sizeof(buf)); if(ec < 0) deprint(2, "%s: eepromread %d: %r/n", argv0, i); ec = GET2(buf); deprint(2, "%s: eeprom %#x = %#x/n", argv0, i, ec); if(ec == 0xFFFF) ec = -1; return ec;}
开发者ID:99years,项目名称:plan9,代码行数:17,
示例17: GET2char *parse_etvs_header(char *buf, NIDS_etvss *p) { int i; char *ptr; p->length = GET2(buf); p->num_points = p->length / 4; if (!(p->points = malloc(p->num_points * sizeof(NIDS_point)))) ERROR("parse_etvs_header"); ptr = buf + 2; for (i = 0 ; i < p->num_points ; i++) { ptr = parse_point(ptr, p->points + i); } return ptr;}
开发者ID:winkey,项目名称:libNIDS,代码行数:18,
示例18: pcre2_substring_nametable_scanPCRE2_EXP_DEFN int PCRE2_CALL_CONVENTIONpcre2_substring_nametable_scan(const pcre2_code *code, PCRE2_SPTR stringname, PCRE2_SPTR *firstptr, PCRE2_SPTR *lastptr){uint16_t bot = 0;uint16_t top = code->name_count;uint16_t entrysize = code->name_entry_size;PCRE2_SPTR nametable = (PCRE2_SPTR)((char *)code + sizeof(pcre2_real_code));while (top > bot) { uint16_t mid = (top + bot) / 2; PCRE2_SPTR entry = nametable + entrysize*mid; int c = PRIV(strcmp)(stringname, entry + IMM2_SIZE); if (c == 0) { PCRE2_SPTR first; PCRE2_SPTR last; PCRE2_SPTR lastentry; lastentry = nametable + entrysize * (code->name_count - 1); first = last = entry; while (first > nametable) { if (PRIV(strcmp)(stringname, (first - entrysize + IMM2_SIZE)) != 0) break; first -= entrysize; } while (last < lastentry) { if (PRIV(strcmp)(stringname, (last + entrysize + IMM2_SIZE)) != 0) break; last += entrysize; } if (firstptr == NULL) return (first == last)? (int)GET2(entry, 0) : PCRE2_ERROR_NOUNIQUESUBSTRING; *firstptr = first; *lastptr = last; return entrysize; } if (c > 0) bot = mid + 1; else top = mid; }return PCRE2_ERROR_NOSUBSTRING;}
开发者ID:xnsystems,项目名称:kpcre,代码行数:42,
示例19: local_sieveint local_sieve(int a, int b) { int sqr = (int) sqrt(b), gap = b - a; int *mark2 = (int *) calloc(MAXN, sizeof(int)); for (int i = 0; i < Pt && P[i] <= sqr; i++) { unsigned p = P[i], base = a / p * p; while (base < a) base += p; if (base == p) base += p; for (unsigned j = base; j <= b; j += p) SET2(j - a); } if (a == 1) SET2(0); int ret = 0; for (int i = 0; i <= gap; i++) { if (!GET2(i)) ret++; } free(mark2); return ret;}
开发者ID:JohnXinhua,项目名称:UVa,代码行数:20,
示例20: mkstrstatic char*mkstr(uchar *b, int n){ Rune r; char *us; char *s; char *e; if(n <= 2 || (n & 1) != 0) return strdup("none"); n = (n - 2)/2; b += 2; us = s = emallocz(n*UTFmax+1, 0); e = s + n*UTFmax+1; for(; --n >= 0; b += 2){ r = GET2(b); s = seprint(s, e, "%C", r); } return us;}
开发者ID:vrthra,项目名称:9front-tmp,代码行数:20,
示例21: portstatusstatic intportstatus(Hub *h, int p){ Dev *d; uint8_t buf[4]; int t; int sts; int dbg; dbg = usbdebug; if(dbg != 0 && dbg < 4) usbdebug = 1; /* do not be too chatty */ d = h->dev; t = Rd2h|Rclass|Rother; if(usbcmd(d, t, Rgetstatus, 0, p, buf, sizeof(buf)) < 0) sts = -1; else sts = GET2(buf); usbdebug = dbg; return sts;}
开发者ID:elbing,项目名称:harvey,代码行数:21,
示例22: step2astatic void step2a(int *ix, int *mdist, mat_t mstar, mat_t nmstar, mat_t mprime, col_t ccol, col_t crow, int nrows, int ncols, int dmin){ int col, row; /* cover every column containing a starred zero */ for (col = 0; col < ncols; col++) { for (row = 0; row < nrows; row++) { if (!GET2(mstar, row, col)) continue; SET1(ccol, col); break; } } /* move to step 3 */ step2b(ix, mdist, mstar, nmstar, mprime, ccol, crow, nrows, ncols, dmin);}
开发者ID:scottferg,项目名称:xorg-multitouch,代码行数:21,
示例23: smscinitintsmscinit(Dev *d){ if(!doreset(d, Hwcfg, Lrst) || !doreset(d, Pmctrl, Phyrst)) return -1; if(!setmac) if(eepromr(d, MACoffset, macaddr, 6) < 0) return -1; wr(d, Addrl, GET4(macaddr)); wr(d, Addrh, GET2(macaddr+4)); if(Doburst){ wr(d, Hwcfg, (rr(d,Hwcfg)&~Rxdoff)|Bir|Mef|Bce); wr(d, Burstcap, Hsburst); }else{ wr(d, Hwcfg, (rr(d,Hwcfg)&~(Rxdoff|Mef|Bce))|Bir); wr(d, Burstcap, 0); } wr(d, Bulkdelay, Defbulkdly); wr(d, Intsts, ~0); wr(d, Ledgpio, Ledspd|Ledlnk|Ledfdx); wr(d, Flow, 0); wr(d, Afccfg, Afcdefault); wr(d, Vlan1, Ethp8021q); wr(d, Coecr, rr(d,Coecr)&~(Txcoe|Rxcoe)); /* TODO could offload checksums? */ wr(d, Hashh, 0); wr(d, Hashl, 0); wr(d, Maccr, rr(d,Maccr)&~(Prms|Mcpas|Hpfilt)); phyinit(d); wr(d, Intepctl, rr(d, Intepctl)|Phyint); wr(d, Maccr, rr(d, Maccr)|Txen|Rxen); wr(d, Txcfg, Txon); eptransmit = smsctransmit; epreceive = smscreceive; return 0;}
开发者ID:grobe0ba,项目名称:plan9front,代码行数:39,
示例24: pcre2_substring_copy_bynamePCRE2_EXP_DEFN int PCRE2_CALL_CONVENTIONpcre2_substring_copy_byname(pcre2_match_data *match_data, PCRE2_SPTR stringname, PCRE2_UCHAR *buffer, PCRE2_SIZE *sizeptr){PCRE2_SPTR first, last, entry;int failrc, entrysize;if (match_data->matchedby == PCRE2_MATCHEDBY_DFA_INTERPRETER) return PCRE2_ERROR_DFA_UFUNC;entrysize = pcre2_substring_nametable_scan(match_data->code, stringname, &first, &last);if (entrysize < 0) return entrysize;failrc = PCRE2_ERROR_UNAVAILABLE;for (entry = first; entry <= last; entry += entrysize) { uint32_t n = GET2(entry, 0); if (n < match_data->oveccount) { if (match_data->ovector[n*2] != PCRE2_UNSET) return pcre2_substring_copy_bynumber(match_data, n, buffer, sizeptr); failrc = PCRE2_ERROR_UNSET; } }return failrc;}
开发者ID:xnsystems,项目名称:kpcre,代码行数:24,
示例25: store_routestatic voidstore_route(struct rt_msghdr *rtm){ u_int i; struct natm_route *r; char *cp; struct sockaddr *sa; struct sockaddr_in *sain; struct sockaddr_dl *sdl; struct diagif *aif; u_int n; r = malloc(sizeof(*r)); if (r == NULL) err(1, "allocate route"); r->flags = rtm->rtm_flags; cp = (char *)(rtm + 1); for (i = 1; i != 0; i <<= 1) { if (rtm->rtm_addrs & i) { sa = (struct sockaddr *)cp; cp += roundup(sa->sa_len, sizeof(long)); switch (i) { case RTA_DST: if (sa->sa_family != AF_INET) { warnx("RTA_DST not AF_INET %u", sa->sa_family); goto fail; } sain = (struct sockaddr_in *)(void *)sa; if (sain->sin_len < 4) r->host.s_addr = INADDR_ANY; else r->host = sain->sin_addr; break; case RTA_GATEWAY: if (sa->sa_family != AF_LINK) { warnx("RTA_GATEWAY not AF_LINK"); goto fail; } sdl = (struct sockaddr_dl *)(void *)sa; TAILQ_FOREACH(aif, &diagif_list, link) if (strlen(aif->ifname) == sdl->sdl_nlen && strncmp(aif->ifname, sdl->sdl_data, sdl->sdl_nlen) == 0) break; if (aif == NULL) { warnx("interface '%.*s' not found", sdl->sdl_nlen, sdl->sdl_data); goto fail; } r->aif = aif; /* parse ATM stuff */#define GET3() (((sdl->sdl_data[n] & 0xff) << 16) | / ((sdl->sdl_data[n + 1] & 0xff) << 8) | / ((sdl->sdl_data[n + 2] & 0xff) << 0))#define GET2() (((sdl->sdl_data[n] & 0xff) << 8) | / ((sdl->sdl_data[n + 1] & 0xff) << 0))#define GET1() (((sdl->sdl_data[n] & 0xff) << 0)) n = sdl->sdl_nlen; if (sdl->sdl_alen < 4) { warnx("RTA_GATEWAY alen too short"); goto fail; } r->llcsnap = GET1() & ATM_PH_LLCSNAP; n++; r->vpi = GET1(); n++; r->vci = GET2(); n += 2; if (sdl->sdl_alen == 4) { /* old address */ r->traffic = ATMIO_TRAFFIC_UBR; r->pcr = 0; break; } /* new address */ r->traffic = GET1(); n++; switch (r->traffic) { case ATMIO_TRAFFIC_UBR: if (sdl->sdl_alen >= 5 + 3) { r->pcr = GET3(); n += 3; } else r->pcr = 0; break; case ATMIO_TRAFFIC_CBR: if (sdl->sdl_alen < 5 + 3) { warnx("CBR address too short"); goto fail; } r->pcr = GET3();//.........这里部分代码省略.........
开发者ID:MattDooner,项目名称:freebsd-west,代码行数:101,
示例26: set_start_bits//.........这里部分代码省略......... /* All bits are set. */ if ((tcode[1 + LINK_SIZE] & XCL_MAP) == 0 && (tcode[1 + LINK_SIZE] & XCL_NOT) != 0) return SSB_FAIL;#endif /* Fall through */ case OP_NCLASS:#if defined SUPPORT_UTF && defined COMPILE_PCRE8 if (utf) { start_bits[24] |= 0xf0; /* Bits for 0xc4 - 0xc8 */ memset(start_bits+25, 0xff, 7); /* Bits for 0xc9 - 0xff */ }#endif#if defined COMPILE_PCRE16 || defined COMPILE_PCRE32 SET_BIT(0xFF); /* For characters > 255 */#endif /* Fall through */ case OP_CLASS: { pcre_uint8 *map;#if defined SUPPORT_UTF || !defined COMPILE_PCRE8 map = NULL; if (*tcode == OP_XCLASS) { if ((tcode[1 + LINK_SIZE] & XCL_MAP) != 0) map = (pcre_uint8 *)(tcode + 1 + LINK_SIZE + 1); tcode += GET(tcode, 1); } else#endif { tcode++; map = (pcre_uint8 *)tcode; tcode += 32 / sizeof(pcre_uchar); } /* In UTF-8 mode, the bits in a bit map correspond to character values, not to byte values. However, the bit map we are constructing is for byte values. So we have to do a conversion for characters whose value is > 127. In fact, there are only two possible starting bytes for characters in the range 128 - 255. */#if defined SUPPORT_UTF || !defined COMPILE_PCRE8 if (map != NULL)#endif {#if defined SUPPORT_UTF && defined COMPILE_PCRE8 if (utf) { for (c = 0; c < 16; c++) start_bits[c] |= map[c]; for (c = 128; c < 256; c++) { if ((map[c/8] & (1 << (c&7))) != 0) { int d = (c >> 6) | 0xc0; /* Set bit for this starter */ start_bits[d/8] |= (1 << (d&7)); /* and then skip on to the */ c = (c & 0xc0) + 0x40 - 1; /* next relevant character. */ } } } else#endif { /* In non-UTF-8 mode, the two bit maps are completely compatible. */ for (c = 0; c < 32; c++) start_bits[c] |= map[c]; } } /* Advance past the bit map, and act on what follows. For a zero minimum repeat, continue; otherwise stop processing. */ switch (*tcode) { case OP_CRSTAR: case OP_CRMINSTAR: case OP_CRQUERY: case OP_CRMINQUERY: case OP_CRPOSSTAR: case OP_CRPOSQUERY: tcode++; break; case OP_CRRANGE: case OP_CRMINRANGE: case OP_CRPOSRANGE: if (GET2(tcode, 1) == 0) tcode += 1 + 2 * IMM2_SIZE; else try_next = FALSE; break; default: try_next = FALSE; break; } } break; /* End of bitmap class handling */ } /* End of switch */ } /* End of try_next loop */
开发者ID:RobertAcksel,项目名称:poco,代码行数:101,
注:本文中的GET2函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GET32函数代码示例 C++ GET函数代码示例 |