Home | History | Annotate | Download | only in parser
      1 /*
      2  *
      3  *  BlueZ - Bluetooth protocol stack for Linux
      4  *
      5  *  Copyright (C) 2004-2011  Marcel Holtmann <marcel (at) holtmann.org>
      6  *
      7  *
      8  *  This program is free software; you can redistribute it and/or modify
      9  *  it under the terms of the GNU General Public License as published by
     10  *  the Free Software Foundation; either version 2 of the License, or
     11  *  (at your option) any later version.
     12  *
     13  *  This program is distributed in the hope that it will be useful,
     14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16  *  GNU General Public License for more details.
     17  *
     18  *  You should have received a copy of the GNU General Public License
     19  *  along with this program; if not, write to the Free Software
     20  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
     21  *
     22  */
     23 
     24 #ifdef HAVE_CONFIG_H
     25 #include <config.h>
     26 #endif
     27 
     28 #include <stdio.h>
     29 #include <errno.h>
     30 #include <unistd.h>
     31 #include <stdlib.h>
     32 #include <string.h>
     33 
     34 #include <sys/types.h>
     35 #include <netinet/in.h>
     36 
     37 #include <bluetooth/bluetooth.h>
     38 #include <bluetooth/hci.h>
     39 
     40 #include "parser.h"
     41 
     42 #define BPA_U8(frm)  (get_u8(frm))
     43 #define BPA_U16(frm) (btohs(htons(get_u16(frm))))
     44 #define BPA_U32(frm) (btohl(htonl(get_u32(frm))))
     45 
     46 void bpa_dump(int level, struct frame *frm)
     47 {
     48 	uint8_t id, status, channel;
     49 	uint16_t num, len;
     50 	uint32_t time;
     51 
     52 	id = get_u8(frm);
     53 	num = get_u16(frm);
     54 	len = BPA_U16(frm);
     55 
     56 	status  = get_u8(frm);
     57 	time    = get_u32(frm);
     58 	channel = get_u8(frm);
     59 
     60 	p_indent(level, frm);
     61 	printf("BPA: id %d num %d status 0x%02x time %d channel %d\n",
     62 		id, num, status, time, channel);
     63 
     64 	raw_dump(level, frm);
     65 }
     66