$NetBSD: patch-ai,v 1.1.1.1 2006/07/25 16:28:48 salo Exp $

lots of compatibility changes for NetBSD

--- parser/l2cap.c.orig	2003-09-13 01:38:11.000000000 +0200
+++ parser/l2cap.c
@@ -25,13 +25,16 @@
  */
 
 #include <sys/types.h>
+#include <sys/time.h>
 #include <sys/endian.h>
-#include <netgraph/bluetooth/include/ng_hci.h>
-#include <netgraph/bluetooth/include/ng_l2cap.h>
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
 
+#include <netbt/bluetooth.h>
+#include <netbt/hci.h>
+#include <netbt/l2cap.h>
+
 #include "parser.h"
 
 typedef struct {
@@ -123,7 +126,7 @@ static uint16_t get_psm(int in, uint16_t
 
 static void command_rej(int level, struct frame *frm)
 {
-	ng_l2cap_cmd_rej_cp *h = frm->ptr;
+	l2cap_cmd_rej_cp *h = (void *)frm->ptr;
 
 	printf("Command rej: reason %d\n", 
 			le16toh(h->reason));
@@ -131,7 +134,7 @@ static void command_rej(int level, struc
 
 static void conn_req(int level, struct frame *frm)
 {
-	ng_l2cap_con_req_cp *h = frm->ptr;
+	l2cap_con_req_cp *h = (void *)frm->ptr;
 
 	add_cid(frm->in, le16toh(h->scid), le16toh(h->psm));
 
@@ -144,7 +147,7 @@ static void conn_req(int level, struct f
 
 static void conn_rsp(int level, struct frame *frm)
 {
-	ng_l2cap_con_rsp_cp *h = frm->ptr;
+	l2cap_con_rsp_cp *h = (void *)frm->ptr;
 	uint16_t psm;
 
 	if ((psm = get_psm(!frm->in, le16toh(h->scid))))
@@ -177,16 +180,16 @@ static void conf_opt(int level, void *pt
 {
 	p_indent(level, 0);
 	while (len > 0) {
-		ng_l2cap_cfg_opt_t *h = ptr;
-	
-		ptr += sizeof(*h) + h->length;
+		l2cap_cfg_opt_t *h = ptr;
+
+		ptr = (void *)( (u_int8_t *)ptr + sizeof(l2cap_cfg_opt_t) + h->length);
 		len -= sizeof(*h) + h->length;
 		
 		switch (h->type) {
-		case NG_L2CAP_OPT_MTU:
+		case L2CAP_OPT_MTU:
 			printf("MTU %d ", conf_opt_val((uint8_t *)(h + 1), h->length));
 			break;
-		case NG_L2CAP_OPT_FLUSH_TIMO:
+		case L2CAP_OPT_FLUSH_TIMO:
 			printf("FlushTO %d ", conf_opt_val((uint8_t *)(h + 1), h->length));
 			break;
 		default:
@@ -197,9 +200,9 @@ static void conf_opt(int level, void *pt
 	printf("\n");
 }
 
-static void conf_req(int level, ng_l2cap_cmd_hdr_t *cmd, struct frame *frm)
+static void conf_req(int level, l2cap_cmd_hdr_t *cmd, struct frame *frm)
 {
-	ng_l2cap_cfg_req_cp *h = frm->ptr;
+	l2cap_cfg_req_cp *h = (void *)frm->ptr;
 	int clen = le16toh(cmd->length) - sizeof(*h);
 
 	if (p_filter(FILT_L2CAP))
@@ -211,9 +214,9 @@ static void conf_req(int level, ng_l2cap
 		conf_opt(level, (void *)(h + 1), clen);
 }
 
-static void conf_rsp(int level, ng_l2cap_cmd_hdr_t *cmd, struct frame *frm)
+static void conf_rsp(int level, l2cap_cmd_hdr_t *cmd, struct frame *frm)
 {
-	ng_l2cap_cfg_rsp_cp *h = frm->ptr;
+	l2cap_cfg_rsp_cp *h = (void *)frm->ptr;
 	int clen = le16toh(cmd->length) - sizeof(*h);
 
 	if (p_filter(FILT_L2CAP))
@@ -227,7 +230,7 @@ static void conf_rsp(int level, ng_l2cap
 
 static void disconn_req(int level, struct frame *frm)
 {
-	ng_l2cap_discon_req_cp *h = frm->ptr;
+	l2cap_discon_req_cp *h = (void *)frm->ptr;
 
 	if (p_filter(FILT_L2CAP))
 		return;
@@ -238,7 +241,7 @@ static void disconn_req(int level, struc
 
 static void disconn_rsp(int level, struct frame *frm)
 {
-	ng_l2cap_discon_rsp_cp *h = frm->ptr;
+	l2cap_discon_rsp_cp *h = (void *)frm->ptr;
 	del_cid(frm->in, le16toh(h->dcid), le16toh(h->scid));
 
 	if (p_filter(FILT_L2CAP))
@@ -248,7 +251,7 @@ static void disconn_rsp(int level, struc
 			le16toh(h->dcid), le16toh(h->scid));
 }
 
-static void echo_req(int level, ng_l2cap_cmd_hdr_t *cmd, struct frame *frm)
+static void echo_req(int level, l2cap_cmd_hdr_t *cmd, struct frame *frm)
 {
 	if (p_filter(FILT_L2CAP))
 		return;
@@ -258,7 +261,7 @@ static void echo_req(int level, ng_l2cap
 	raw_dump(level, frm);
 }
 
-static void echo_rsp(int level, ng_l2cap_cmd_hdr_t *cmd, struct frame *frm)
+static void echo_rsp(int level, l2cap_cmd_hdr_t *cmd, struct frame *frm)
 {
 	if (p_filter(FILT_L2CAP))
 		return;
@@ -268,7 +271,7 @@ static void echo_rsp(int level, ng_l2cap
 	raw_dump(level, frm);
 }
 
-static void info_req(int level, ng_l2cap_cmd_hdr_t *cmd, struct frame *frm)
+static void info_req(int level, l2cap_cmd_hdr_t *cmd, struct frame *frm)
 {
 	if (p_filter(FILT_L2CAP))
 		return;
@@ -278,7 +281,7 @@ static void info_req(int level, ng_l2cap
 	raw_dump(level, frm);
 }
 
-static void info_rsp(int level, ng_l2cap_cmd_hdr_t *cmd, struct frame *frm)
+static void info_rsp(int level, l2cap_cmd_hdr_t *cmd, struct frame *frm)
 {
 	if (p_filter(FILT_L2CAP))
 		return;
@@ -290,7 +293,7 @@ static void info_rsp(int level, ng_l2cap
 
 static void l2cap_parse(int level, struct frame *frm)
 {
-	ng_l2cap_hdr_t *hdr = (void *)frm->ptr;
+	l2cap_hdr_t *hdr = (void *)frm->ptr;
 	uint16_t dlen = le16toh(hdr->length);
 	uint16_t cid  = le16toh(hdr->dcid);
 	uint16_t psm;
@@ -301,71 +304,71 @@ static void l2cap_parse(int level, struc
 	if (cid == 0x1) {
 		/* Signaling channel */
 
-		while (frm->len >= sizeof(ng_l2cap_cmd_hdr_t)) {
-			ng_l2cap_cmd_hdr_t *hdr = frm->ptr;
+		while (frm->len >= sizeof(l2cap_cmd_hdr_t)) {
+			l2cap_cmd_hdr_t *hdr0 = (void *)frm->ptr;
 
-			frm->ptr += sizeof(*hdr);
-			frm->len -= sizeof(*hdr);
+			frm->ptr += sizeof(*hdr0);
+			frm->len -= sizeof(*hdr0);
 
 			if (!p_filter(FILT_L2CAP)) {
 				p_indent(level, frm);
 				printf("L2CAP(s): ");
 			}
 
-			switch (hdr->code) {
-			case NG_L2CAP_CMD_REJ:
+			switch (hdr0->code) {
+			case L2CAP_COMMAND_REJ:
 				command_rej(level, frm);
 				break;
 			
-			case NG_L2CAP_CON_REQ:
+			case L2CAP_CONNECT_REQ:
 				conn_req(level, frm);
 				break;
 	
-			case NG_L2CAP_CON_RSP:
+			case L2CAP_CONNECT_RSP:
 				conn_rsp(level, frm);
 				break;
 
-			case NG_L2CAP_CFG_REQ:
-				conf_req(level, hdr, frm);		
+			case L2CAP_CONFIG_REQ:
+				conf_req(level, hdr0, frm);		
 				break;
 
-			case NG_L2CAP_CFG_RSP:
-				conf_rsp(level, hdr, frm);
+			case L2CAP_CONFIG_RSP:
+				conf_rsp(level, hdr0, frm);
 				break;
 
-			case NG_L2CAP_DISCON_REQ:
+			case L2CAP_DISCONNECT_REQ:
 				disconn_req(level, frm);
 				break;
 
-			case NG_L2CAP_DISCON_RSP:
+			case L2CAP_DISCONNECT_RSP:
 				disconn_rsp(level, frm);
 				break;
 	
-			case NG_L2CAP_ECHO_REQ:
-				echo_req(level, hdr, frm);
+			case L2CAP_ECHO_REQ:
+				echo_req(level, hdr0, frm);
 				break;
 
-			case NG_L2CAP_ECHO_RSP:
-				echo_rsp(level, hdr, frm);	
+			case L2CAP_ECHO_RSP:
+				echo_rsp(level, hdr0, frm);	
 				break;
 
-			case NG_L2CAP_INFO_REQ:
-				info_req(level, hdr, frm);
+			case L2CAP_INFO_REQ:
+				info_req(level, hdr0, frm);
 				break;
 
-			case NG_L2CAP_INFO_RSP:
-				info_rsp(level, hdr, frm);
+			case L2CAP_INFO_RSP:
+				info_rsp(level, hdr0, frm);
 				break;
 
 			default:
 				if (p_filter(FILT_L2CAP))
 					break;
 				printf("code 0x%2.2x ident %d len %d\n", 
-					hdr->code, hdr->ident, le16toh(hdr->length));
+					hdr0->code, hdr0->ident, le16toh(hdr0->length));
 				raw_dump(level, frm);
 			}
-			frm->ptr += le16toh(hdr->length);
-			frm->len -= le16toh(hdr->length);
+			frm->ptr += le16toh(hdr0->length);
+			frm->len -= le16toh(hdr0->length);
 		}
 	} else if (cid == 0x2) {
 		/* Connectionless channel */
@@ -381,16 +384,16 @@ static void l2cap_parse(int level, struc
 		raw_dump(level, frm);
 	} else {
 		/* Connection oriented channel */
-		uint16_t psm = get_psm(!frm->in, cid);
+		uint16_t psm0 = get_psm(!frm->in, cid);
 	
 		if (!p_filter(FILT_L2CAP)) {
 			p_indent(level, frm);
 			printf("L2CAP(d): cid 0x%x len %d [psm %d]\n", 
-				cid, dlen, psm);
+				cid, dlen, psm0);
 			level++;
 		}
 
-		switch (psm) {
+		switch (psm0) {
 		case 0x01:
 			if (!p_filter(FILT_SDP))
 				sdp_dump(level+1, frm);
@@ -440,11 +443,11 @@ static void l2cap_parse(int level, struc
 void l2cap_dump(int level, struct frame *frm)
 {
 	struct frame *fr;
-	ng_l2cap_hdr_t *hdr;
+	l2cap_hdr_t *hdr;
 	uint16_t dlen;
 
-	if (frm->flags & NG_HCI_PACKET_START) {
-		hdr  = frm->ptr;
+	if (frm->flags & HCI_PACKET_START) {
+		hdr  = (void *)frm->ptr;
 		dlen = le16toh(hdr->length);
 
 		if (frm->len == (dlen + sizeof(*hdr))) {
