• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/fs/ecryptfs/

Lines Matching refs:bs

103 #define INC_BIT(bs) if((++bs->bit)>7){bs->cur++;bs->bit=0;}
104 #define INC_BITS(bs,b) if((bs->bit+=b)>7){bs->cur+=bs->bit>>3;bs->bit&=7;}
105 #define BYTE_ALIGN(bs) if(bs->bit){bs->cur++;bs->bit=0;}
106 #define CHECK_BOUND(bs,n) if(bs->cur+(n)>bs->end)return(H323_ERROR_BOUND)
107 static unsigned get_len(bitstr_t * bs);
108 static unsigned get_bit(bitstr_t * bs);
109 static unsigned get_bits(bitstr_t * bs, unsigned b);
110 static unsigned get_bitmap(bitstr_t * bs, unsigned b);
111 static unsigned get_uint(bitstr_t * bs, int b);
114 static int decode_nul(bitstr_t * bs, field_t * f, char *base, int level);
115 static int decode_bool(bitstr_t * bs, field_t * f, char *base, int level);
116 static int decode_oid(bitstr_t * bs, field_t * f, char *base, int level);
117 static int decode_int(bitstr_t * bs, field_t * f, char *base, int level);
118 static int decode_enum(bitstr_t * bs, field_t * f, char *base, int level);
119 static int decode_bitstr(bitstr_t * bs, field_t * f, char *base, int level);
120 static int decode_numstr(bitstr_t * bs, field_t * f, char *base, int level);
121 static int decode_octstr(bitstr_t * bs, field_t * f, char *base, int level);
122 static int decode_bmpstr(bitstr_t * bs, field_t * f, char *base, int level);
123 static int decode_seq(bitstr_t * bs, field_t * f, char *base, int level);
124 static int decode_seqof(bitstr_t * bs, field_t * f, char *base, int level);
125 static int decode_choice(bitstr_t * bs, field_t * f, char *base, int level);
152 /* Assume bs is aligned && v < 16384 */
153 unsigned get_len(bitstr_t * bs)
157 v = *bs->cur++;
162 v += *bs->cur++;
169 unsigned get_bit(bitstr_t * bs)
171 unsigned b = (*bs->cur) & (0x80 >> bs->bit);
173 INC_BIT(bs);
180 unsigned get_bits(bitstr_t * bs, unsigned b)
184 v = (*bs->cur) & (0xffU >> bs->bit);
185 l = b + bs->bit;
189 bs->bit = l;
191 bs->cur++;
192 bs->bit = 0;
196 v += *(++bs->cur);
198 bs->bit = l - 8;
206 unsigned get_bitmap(bitstr_t * bs, unsigned b)
213 l = bs->bit + b;
216 v = (unsigned) (*bs->cur) << (bs->bit + 24);
217 bs->bit = l;
219 v = (unsigned) (*bs->cur++) << (bs->bit + 24);
220 bs->bit = 0;
224 v |= (unsigned) (*bs->cur++) << shift;
227 v |= (unsigned) (*bs->cur) << shift;
228 v <<= bs->bit;
230 v <<= bs->bit;
231 v |= (*bs->cur) >> (8 - bs->bit);
234 bs->bit = l & 0x7;
243 * Assume bs is aligned and sizeof(unsigned int) == 4
245 unsigned get_uint(bitstr_t * bs, int b)
251 v |= *bs->cur++;
254 v |= *bs->cur++;
257 v |= *bs->cur++;
260 v |= *bs->cur++;
267 int decode_nul(bitstr_t * bs, field_t * f, char *base, int level)
275 int decode_bool(bitstr_t * bs, field_t * f, char *base, int level)
279 INC_BIT(bs);
281 CHECK_BOUND(bs, 0);
286 int decode_oid(bitstr_t * bs, field_t * f, char *base, int level)
292 BYTE_ALIGN(bs);
293 CHECK_BOUND(bs, 1);
294 len = *bs->cur++;
295 bs->cur += len;
297 CHECK_BOUND(bs, 0);
302 int decode_int(bitstr_t * bs, field_t * f, char *base, int level)
310 BYTE_ALIGN(bs);
311 bs->cur++;
314 BYTE_ALIGN(bs);
315 bs->cur += 2;
318 len = get_bits(bs, 2) + 1;
319 BYTE_ALIGN(bs);
321 unsigned v = get_uint(bs, len) + f->lb;
325 bs->cur += len;
328 BYTE_ALIGN(bs);
329 CHECK_BOUND(bs, 2);
330 len = get_len(bs);
331 bs->cur += len;
334 INC_BITS(bs, f->sz);
340 CHECK_BOUND(bs, 0);
345 int decode_enum(bitstr_t * bs, field_t * f, char *base, int level)
349 if ((f->attr & EXT) && get_bit(bs)) {
350 INC_BITS(bs, 7);
352 INC_BITS(bs, f->sz);
355 CHECK_BOUND(bs, 0);
360 int decode_bitstr(bitstr_t * bs, field_t * f, char *base, int level)
366 BYTE_ALIGN(bs);
372 CHECK_BOUND(bs, 2);
373 len = (*bs->cur++) << 8;
374 len += (*bs->cur++) + f->lb;
377 CHECK_BOUND(bs, 2);
378 len = get_len(bs);
385 bs->cur += len >> 3;
386 bs->bit = len & 7;
388 CHECK_BOUND(bs, 0);
393 int decode_numstr(bitstr_t * bs, field_t * f, char *base, int level)
400 len = get_bits(bs, f->sz) + f->lb;
402 BYTE_ALIGN(bs);
403 INC_BITS(bs, (len << 2));
405 CHECK_BOUND(bs, 0);
410 int decode_octstr(bitstr_t * bs, field_t * f, char *base, int level)
419 BYTE_ALIGN(bs);
424 bs->cur[0], bs->cur[1],
425 bs->cur[2], bs->cur[3],
426 bs->cur[4] * 256 + bs->cur[5]));
428 bs->cur - bs->buf;
434 BYTE_ALIGN(bs);
435 CHECK_BOUND(bs, 1);
436 len = (*bs->cur++) + f->lb;
439 BYTE_ALIGN(bs);
440 CHECK_BOUND(bs, 2);
441 len = get_len(bs) + f->lb;
444 len = get_bits(bs, f->sz) + f->lb;
445 BYTE_ALIGN(bs);
449 bs->cur += len;
453 CHECK_BOUND(bs, 0);
458 int decode_bmpstr(bitstr_t * bs, field_t * f, char *base, int level)
466 BYTE_ALIGN(bs);
467 CHECK_BOUND(bs, 1);
468 len = (*bs->cur++) + f->lb;
471 len = get_bits(bs, f->sz) + f->lb;
472 BYTE_ALIGN(bs);
476 bs->cur += len << 1;
478 CHECK_BOUND(bs, 0);
483 int decode_seq(bitstr_t * bs, field_t * f, char *base, int level)
496 ext = (f->attr & EXT) ? get_bit(bs) : 0;
499 bmp = get_bitmap(bs, f->sz);
518 CHECK_BOUND(bs, 2);
519 len = get_len(bs);
520 CHECK_BOUND(bs, len);
524 bs->cur += len;
527 beg = bs->cur;
530 if ((err = (Decoders[son->type]) (bs, son, base,
535 bs->cur = beg + len;
536 bs->bit = 0;
537 } else if ((err = (Decoders[son->type]) (bs, son, base,
548 bmp2_len = get_bits(bs, 7) + 1;
549 CHECK_BOUND(bs, (bmp2_len + 7) >> 3);
550 bmp2 = get_bitmap(bs, bmp2_len);
554 BYTE_ALIGN(bs);
569 CHECK_BOUND(bs, 2);
570 len = get_len(bs);
571 CHECK_BOUND(bs, len);
572 bs->cur += len;
576 CHECK_BOUND(bs, 2);
577 len = get_len(bs);
578 CHECK_BOUND(bs, len);
582 bs->cur += len;
585 beg = bs->cur;
587 if ((err = (Decoders[son->type]) (bs, son, base,
592 bs->cur = beg + len;
593 bs->bit = 0;
599 int decode_seqof(bitstr_t * bs, field_t * f, char *base, int level)
614 BYTE_ALIGN(bs);
615 CHECK_BOUND(bs, 1);
616 count = *bs->cur++;
619 BYTE_ALIGN(bs);
620 CHECK_BOUND(bs, 2);
621 count = *bs->cur++;
623 count = *bs->cur++;
626 BYTE_ALIGN(bs);
627 CHECK_BOUND(bs, 2);
628 count = get_len(bs);
631 count = get_bits(bs, f->sz);
649 BYTE_ALIGN(bs);
650 len = get_len(bs);
651 CHECK_BOUND(bs, len);
655 bs->cur += len;
658 beg = bs->cur;
660 if ((err = (Decoders[son->type]) (bs, son,
668 bs->cur = beg + len;
669 bs->bit = 0;
671 if ((err = (Decoders[son->type]) (bs, son,
688 int decode_choice(bitstr_t * bs, field_t * f, char *base, int level)
701 if ((f->attr & EXT) && get_bit(bs)) {
703 type = get_bits(bs, 7) + f->lb;
706 type = get_bits(bs, f->sz);
717 BYTE_ALIGN(bs);
718 len = get_len(bs);
719 CHECK_BOUND(bs, len);
720 bs->cur += len;
732 BYTE_ALIGN(bs);
733 len = get_len(bs);
734 CHECK_BOUND(bs, len);
738 bs->cur += len;
741 beg = bs->cur;
743 if ((err = (Decoders[son->type]) (bs, son, base, level + 1)) <
747 bs->cur = beg + len;
748 bs->bit = 0;
749 } else if ((err = (Decoders[son->type]) (bs, son, base, level + 1)) <
763 bitstr_t bs;
765 bs.buf = bs.beg = bs.cur = buf;
766 bs.end = buf + sz;
767 bs.bit = 0;
769 return decode_choice(&bs, &ras_message, (char *) ras, 0);
780 bitstr_t bs;
782 bs.buf = buf;
783 bs.beg = bs.cur = beg;
784 bs.end = beg + sz;
785 bs.bit = 0;
787 return decode_seq(&bs, &h323_userinformation, (char *) uuie, 0);
799 bitstr_t bs;
801 bs.buf = bs.beg = bs.cur = buf;
802 bs.end = buf + sz;
803 bs.bit = 0;
805 return decode_choice(&bs, &multimediasystemcontrolmessage,