Home | History | Annotate | Download | only in parser

Lines Matching refs:frm

245 static inline uint8_t parse_de_hdr(struct frame *frm, int *n)
247 uint8_t de_hdr = get_u8(frm);
255 *n = get_u8(frm); break;
257 *n = get_u16(frm); break;
259 *n = get_u32(frm); break;
261 *n = get_u64(frm); break;
269 static inline void print_int(uint8_t de_type, int level, int n, struct frame *frm, uint16_t *psm, uint8_t *channel)
287 val = get_u8(frm);
293 val = get_u16(frm);
299 val = get_u32(frm);
302 val = get_u64(frm);
305 get_u128(frm, &val, &val2);
313 frm->ptr += n;
314 frm->len -= n;
321 static inline void print_uuid(int n, struct frame *frm, uint16_t *psm, uint8_t *channel)
329 uuid = get_u16(frm);
333 uuid = get_u32(frm);
339 printf("%02x", ((unsigned char *) frm->ptr)[i]);
343 frm->ptr += 16;
344 frm->len -= 16;
348 frm->ptr += n;
349 frm->len -= n;
354 set_proto(frm->handle, *psm, 0, uuid);
359 set_proto(frm->handle, *psm, *channel, uuid);
368 static inline void print_string(int n, struct frame *frm, const char *name)
373 if (i == (n - 1) && ((char *) frm->ptr)[i] == '\0')
376 if (!isprint(((char *) frm->ptr)[i])) {
385 printf(" %02x", ((unsigned char *) frm->ptr)[i]);
389 printf("%c", ((char *) frm->ptr)[i]);
393 frm->ptr += n;
394 frm->len -= n;
397 static inline void print_de(int, struct frame *frm, int *split, uint16_t *psm, uint8_t *channel);
399 static inline void print_des(uint8_t de_type, int level, int n, struct frame *frm, int *split, uint16_t *psm, uint8_t *channel)
401 int len = frm->len;
402 while (len - (int) frm->len < n && (int) frm->len > 0)
403 print_de(level, frm, split, psm, channel);
406 static inline void print_de(int level, struct frame *frm, int *split, uint16_t *psm, uint8_t *channel)
409 uint8_t de_type = parse_de_hdr(frm, &n);
418 print_int(de_type, level, n, frm, psm, channel);
430 print_uuid(n, frm, psm, channel);
434 print_string(n, frm, de_type == SDP_DE_URL? "url": "str");
438 print_des(de_type, level, n, frm, split, psm, channel);
443 print_des(de_type, level, n, frm, split, psm, channel);
449 static inline void print_srv_srch_pat(int level, struct frame *frm)
453 p_indent(level, frm);
456 if (parse_de_hdr(frm, &n1) == SDP_DE_SEQ) {
457 len = frm->len;
458 while (len - (int) frm->len < n1 && (int) frm->len > 0) {
459 if (parse_de_hdr(frm, &n2) == SDP_DE_UUID) {
460 print_uuid(n2, frm, NULL, NULL);
463 raw_dump(level, frm);
469 raw_dump(level, frm);
473 static inline void print_attr_id_list(int level, struct frame *frm)
479 p_indent(level, frm);
482 if (parse_de_hdr(frm, &n1) == SDP_DE_SEQ) {
483 len = frm->len;
484 while (len - (int) frm->len < n1 && (int) frm->len > 0) {
486 if (parse_de_hdr(frm, &n2) == SDP_DE_UINT) {
490 frm);
497 attr_id_range = get_u32(frm);
505 raw_dump(level, frm);
511 raw_dump(level, frm);
515 static inline void print_attr_list(int level, struct frame *frm)
521 if (parse_de_hdr(frm, &n1) == SDP_DE_SEQ) {
522 len = frm->len;
523 while (len - (int) frm->len < n1 && (int) frm->len > 0) {
525 if (parse_de_hdr(frm, &n2) == SDP_DE_UINT && n2 == sizeof(attr_id)) {
527 attr_id = get_u16(frm);
539 print_de(level + 1, frm, split ? NULL: &split,
545 raw_dump(level, frm);
551 raw_dump(level, frm);
555 static inline void print_attr_lists(int level, struct frame *frm)
558 int count = frm->len;
560 if (parse_de_hdr(frm, &n) == SDP_DE_SEQ) {
561 while (count - (int) frm->len < n && (int) frm->len > 0) {
564 print_attr_list(level + 2, frm);
568 raw_dump(level, frm);
610 static int frame_add(struct frame *frm, int count)
617 if (frame_table[i].handle == frm->handle &&
618 frame_table[i].cid == frm->cid) {
638 memcpy(data + len, frm->ptr, count);
640 memcpy(data, frm->ptr, count);
649 fr->dev_id = frm->dev_id;
650 fr->in = frm->in;
651 fr->ts = frm->ts;
652 fr->handle = frm->handle;
653 fr->cid = frm->cid;
654 fr->num = frm->num;
655 fr->channel = frm->channel;
656 fr->pppdump_fd = frm->pppdump_fd;
657 fr->audio_fd = frm->audio_fd;
662 static struct frame *frame_get(struct frame *frm, int count)
666 pos = frame_add(frm, count);
668 return frm;
675 void sdp_dump(int level, struct frame *frm)
677 sdp_pdu_hdr *hdr = frm->ptr;
683 frm->ptr += SDP_PDU_HDR_SIZE;
684 frm->len -= SDP_PDU_HDR_SIZE;
686 p_indent(level, frm);
691 p_indent(level + 1, frm);
692 printf("code 0x%x info ", get_u16(frm));
693 if (frm->len > 0)
694 hex_dump(0, frm, frm->len);
701 print_srv_srch_pat(level + 1, frm);
704 p_indent(level + 1, frm);
705 printf("max %d\n", get_u16(frm));
708 print_cont_state(level + 1, frm->ptr);
713 total = get_u16(frm);
716 count = get_u16(frm);
717 p_indent(level + 1, frm);
726 p_indent(level + 1, frm);
729 printf(" 0x%x", get_u32(frm));
734 print_cont_state(level + 1, frm->ptr);
739 p_indent(level + 1, frm);
740 printf("handle 0x%x\n", get_u32(frm));
743 p_indent(level + 1, frm);
744 printf("max %d\n", get_u16(frm));
747 print_attr_id_list(level + 1, frm);
750 print_cont_state(level + 1, frm->ptr);
755 count = get_u16(frm);
756 p_indent(level + 1, frm);
760 cont = *(unsigned char *)(frm->ptr + count);
764 print_attr_list(level + 1, frame_get(frm, count));
766 frame_add(frm, count);
768 print_cont_state(level + 1, frm->ptr + count);
773 print_srv_srch_pat(level + 1, frm);
776 p_indent(level + 1, frm);
777 printf("max %d\n", get_u16(frm));
780 print_attr_id_list(level + 1, frm);
783 print_cont_state(level + 1, frm->ptr);
788 count = get_u16(frm);
789 p_indent(level + 1, frm);
793 cont = *(unsigned char *)(frm->ptr + count);
797 print_attr_lists(level + 1, frame_get(frm, count));
799 frame_add(frm, count);
801 print_cont_state(level + 1, frm->ptr + count);
805 raw_dump(level + 1, frm);