Clean ups, and removed warnings. Some definitions moved to more generic headers
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23813 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -27,7 +27,6 @@
|
|||||||
|
|
||||||
#define BT_SURVIVE_WITHOUT_HCI
|
#define BT_SURVIVE_WITHOUT_HCI
|
||||||
#define BT_SURVIVE_WITHOUT_NET_BUFFERS
|
#define BT_SURVIVE_WITHOUT_NET_BUFFERS
|
||||||
//#define BT_IOCTLS_PASS_SIZE
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -18,8 +18,9 @@
|
|||||||
#include <net/net_buffer.h>
|
#include <net/net_buffer.h>
|
||||||
#include "snet_buffer.h"
|
#include "snet_buffer.h"
|
||||||
|
|
||||||
#include <bluetooth_util.h>
|
#include <bluetooth/bluetooth_util.h>
|
||||||
#include <btHCI.h>
|
#include <bluetooth/HCI/btHCI.h>
|
||||||
|
#include <bluetooth/HCI/btHCI_module.h>
|
||||||
|
|
||||||
#define BT_DEBUG_THIS_MODULE
|
#define BT_DEBUG_THIS_MODULE
|
||||||
#include <btDebug.h>
|
#include <btDebug.h>
|
||||||
@@ -34,7 +35,7 @@ int32 api_version = B_CUR_DRIVER_API_VERSION;
|
|||||||
|
|
||||||
/* Modules */
|
/* Modules */
|
||||||
static char* usb_name = B_USB_MODULE_NAME;
|
static char* usb_name = B_USB_MODULE_NAME;
|
||||||
static char* hci_name = B_BT_HCI_MODULE_NAME;
|
static char* hci_name = BT_HCI_MODULE_NAME;
|
||||||
|
|
||||||
usb_module_info *usb = NULL;
|
usb_module_info *usb = NULL;
|
||||||
bt_hci_module_info *hci = NULL;
|
bt_hci_module_info *hci = NULL;
|
||||||
@@ -149,7 +150,6 @@ exit:
|
|||||||
static void
|
static void
|
||||||
kill_device(bt_usb_dev* dev)
|
kill_device(bt_usb_dev* dev)
|
||||||
{
|
{
|
||||||
uint16 i;
|
|
||||||
debugf("remove_device(%p)\n", dev);
|
debugf("remove_device(%p)\n", dev);
|
||||||
|
|
||||||
delete_sem(dev->lock);
|
delete_sem(dev->lock);
|
||||||
@@ -217,9 +217,9 @@ device_added(const usb_device* dev, void** cookie)
|
|||||||
|
|
||||||
status_t err = B_ERROR;
|
status_t err = B_ERROR;
|
||||||
bt_usb_dev* new_bt_dev = spawn_device(dev);
|
bt_usb_dev* new_bt_dev = spawn_device(dev);
|
||||||
int e, i;
|
int e;
|
||||||
|
|
||||||
debugf("device_added(%ld, %p)\n", dev, new_bt_dev);
|
debugf("device_added(%p, %p)\n", dev, new_bt_dev);
|
||||||
|
|
||||||
if (new_bt_dev == NULL) {
|
if (new_bt_dev == NULL) {
|
||||||
flowf("Couldn't allocate device record.\n");
|
flowf("Couldn't allocate device record.\n");
|
||||||
@@ -339,7 +339,7 @@ bail:
|
|||||||
kill_device(new_bt_dev);
|
kill_device(new_bt_dev);
|
||||||
bail_no_mem:
|
bail_no_mem:
|
||||||
*cookie = NULL;
|
*cookie = NULL;
|
||||||
done:
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -361,7 +361,7 @@ device_removed(void* cookie)
|
|||||||
// TODO: Consider some other place
|
// TODO: Consider some other place
|
||||||
// TX
|
// TX
|
||||||
for (i = 0; i < BT_DRIVER_TXCOVERAGE; i++) {
|
for (i = 0; i < BT_DRIVER_TXCOVERAGE; i++) {
|
||||||
if (i = BT_COMMAND)
|
if (i == BT_COMMAND)
|
||||||
while ((item = list_remove_head_item(&bdev->nbuffersTx[i])) != NULL) {
|
while ((item = list_remove_head_item(&bdev->nbuffersTx[i])) != NULL) {
|
||||||
snb_free(item);
|
snb_free(item);
|
||||||
}
|
}
|
||||||
@@ -514,7 +514,7 @@ device_close(void *cookie)
|
|||||||
if (bdev == NULL)
|
if (bdev == NULL)
|
||||||
panic("bad cookie");
|
panic("bad cookie");
|
||||||
|
|
||||||
debugf("device_close() called on %s\n", DEVICE_PATH, bdev->hdev );
|
debugf("device_close() called on %ld\n", bdev->hdev );
|
||||||
|
|
||||||
|
|
||||||
if (!TEST_AND_CLEAR(&bdev->state, RUNNING) ) {
|
if (!TEST_AND_CLEAR(&bdev->state, RUNNING) ) {
|
||||||
@@ -581,13 +581,13 @@ static status_t
|
|||||||
device_control(void *cookie, uint32 msg, void *params, size_t size)
|
device_control(void *cookie, uint32 msg, void *params, size_t size)
|
||||||
{
|
{
|
||||||
status_t err = B_ERROR;
|
status_t err = B_ERROR;
|
||||||
bt_usb_dev* dev = (bt_usb_dev*)cookie;
|
bt_usb_dev* bdev = (bt_usb_dev*)cookie;
|
||||||
snet_buffer* snbuf;
|
snet_buffer* snbuf;
|
||||||
TOUCH(size);
|
TOUCH(size);
|
||||||
|
|
||||||
debugf("ioctl() opcode %ld size %ld.\n", msg, size);
|
debugf("ioctl() opcode %ld size %ld.\n", msg, size);
|
||||||
|
|
||||||
if (dev == NULL) {
|
if (bdev == NULL) {
|
||||||
flowf("Bad cookie\n");
|
flowf("Bad cookie\n");
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
}
|
}
|
||||||
@@ -597,7 +597,7 @@ device_control(void *cookie, uint32 msg, void *params, size_t size)
|
|||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
acquire_sem(dev->lock);
|
acquire_sem(bdev->lock);
|
||||||
|
|
||||||
switch (msg) {
|
switch (msg) {
|
||||||
case ISSUE_BT_COMMAND:
|
case ISSUE_BT_COMMAND:
|
||||||
@@ -616,12 +616,12 @@ device_control(void *cookie, uint32 msg, void *params, size_t size)
|
|||||||
snbuf = snb_create(size);
|
snbuf = snb_create(size);
|
||||||
snb_put(snbuf, params, size);
|
snb_put(snbuf, params, size);
|
||||||
|
|
||||||
err = send_command(dev->hdev, snbuf);
|
err = submit_tx_command(bdev, snbuf);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ISSUE_STATICS:
|
case GET_STATICS:
|
||||||
memcpy(params, &dev->stat, sizeof(bt_hci_statistics));
|
memcpy(params, &bdev->stat, sizeof(bt_hci_statistics));
|
||||||
err = B_OK;
|
err = B_OK;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -631,7 +631,7 @@ device_control(void *cookie, uint32 msg, void *params, size_t size)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
release_sem(dev->lock);
|
release_sem(bdev->lock);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -640,7 +640,7 @@ device_control(void *cookie, uint32 msg, void *params, size_t size)
|
|||||||
static status_t
|
static status_t
|
||||||
device_read(void *cookie, off_t pos, void *buf, size_t *count)
|
device_read(void *cookie, off_t pos, void *buf, size_t *count)
|
||||||
{
|
{
|
||||||
debugf("Reading... pos = %ld || count = %ld\n", pos, *count);
|
debugf("Reading... count = %ld\n", *count);
|
||||||
|
|
||||||
*count = 0;
|
*count = 0;
|
||||||
return B_OK;
|
return B_OK;
|
||||||
|
|||||||
@@ -12,7 +12,8 @@
|
|||||||
#include <USB.h>
|
#include <USB.h>
|
||||||
|
|
||||||
#include <util/list.h>
|
#include <util/list.h>
|
||||||
#include <btHCI.h>
|
#include <bluetooth/HCI/btHCI.h>
|
||||||
|
#include <bluetooth/HCI/btHCI_module.h>
|
||||||
|
|
||||||
#include <net/net_buffer.h>
|
#include <net/net_buffer.h>
|
||||||
|
|
||||||
@@ -37,9 +38,9 @@
|
|||||||
// Expecting nobody is gonna have 16 USB-BT dongles connected in their system
|
// Expecting nobody is gonna have 16 USB-BT dongles connected in their system
|
||||||
#define MAX_BT_GENERIC_USB_DEVICES 16
|
#define MAX_BT_GENERIC_USB_DEVICES 16
|
||||||
|
|
||||||
extern usb_module_info *usb;
|
extern usb_module_info* usb;
|
||||||
extern bt_hci_module_info *hci;
|
extern bt_hci_module_info* hci;
|
||||||
extern struct net_buffer_module_info *nb;
|
extern struct net_buffer_module_info* nb;
|
||||||
|
|
||||||
#define MAX_COMMAND_WINDOW 1
|
#define MAX_COMMAND_WINDOW 1
|
||||||
#define MAX_ACL_OUT_WINDOW 4
|
#define MAX_ACL_OUT_WINDOW 4
|
||||||
|
|||||||
@@ -10,38 +10,52 @@
|
|||||||
#include "h2upper.h"
|
#include "h2upper.h"
|
||||||
#include "h2util.h"
|
#include "h2util.h"
|
||||||
|
|
||||||
#include <btHCI.h>
|
#include <bluetooth/HCI/btHCI.h>
|
||||||
#include <btHCI_event.h>
|
#include <bluetooth/HCI/btHCI_event.h>
|
||||||
#include <btHCI_acl.h>
|
#include <bluetooth/HCI/btHCI_acl.h>
|
||||||
|
|
||||||
#include <ByteOrder.h>
|
#include <ByteOrder.h>
|
||||||
|
|
||||||
#define BT_DEBUG_THIS_MODULE
|
#include <string.h>
|
||||||
#include "btDebug.h"
|
|
||||||
|
|
||||||
#if 0
|
#define BT_DEBUG_THIS_MODULE
|
||||||
#pragma mark --- RX Complete ---
|
#include <btDebug.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* Forward declaration */
|
||||||
|
|
||||||
|
#ifndef HAIKU_TARGET_PLATFORM_HAIKU
|
||||||
|
void acl_tx_complete(void* cookie, uint32 status, void* data, uint32 actual_len);
|
||||||
|
void acl_rx_complete(void* cookie, uint32 status, void* data, uint32 actual_len);
|
||||||
|
void command_complete(void* cookie, uint32 status, void* data, uint32 actual_len);
|
||||||
|
void event_complete(void* cookie, uint32 status, void* data, uint32 actual_len);
|
||||||
|
#else
|
||||||
|
/* TODO: propagate this definitions */
|
||||||
|
void acl_tx_complete(void* cookie, status_t status, void* data, size_t actual_len);
|
||||||
|
void acl_rx_complete(void* cookie, status_t status, void* data, size_t actual_len);
|
||||||
|
void command_complete(void* cookie, status_t status, void* data, size_t actual_len);
|
||||||
|
void event_complete(void* cookie, status_t status, void* data, size_t actual_len);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
status_t
|
static status_t
|
||||||
assembly_rx(bt_usb_dev* bdev, bt_packet_t type, void *data, int count)
|
assembly_rx(bt_usb_dev* bdev, bt_packet_t type, void *data, int count)
|
||||||
{
|
{
|
||||||
|
|
||||||
net_buffer* nbuf;
|
net_buffer* nbuf = NULL;
|
||||||
snet_buffer* snbuf;
|
snet_buffer* snbuf = NULL;
|
||||||
|
|
||||||
size_t currentPacketLen;
|
size_t currentPacketLen = 0;
|
||||||
size_t expectedPacketLen;
|
size_t expectedPacketLen = 0;
|
||||||
|
|
||||||
bdev->stat.bytesRX += count;
|
bdev->stat.bytesRX += count;
|
||||||
|
|
||||||
while (count) {
|
if (type == BT_EVENT)
|
||||||
|
snbuf = bdev->eventRx;
|
||||||
|
else
|
||||||
|
nbuf = bdev->nbufferRx[type];
|
||||||
|
|
||||||
if (type == BT_EVENT)
|
while (count) {
|
||||||
snbuf = bdev->eventRx;
|
|
||||||
else
|
|
||||||
nbuf = bdev->nbufferRx[type];
|
|
||||||
|
|
||||||
debugf("count %d %p %p\n",count, nbuf, nb);
|
debugf("count %d %p %p\n",count, nbuf, nb);
|
||||||
|
|
||||||
@@ -141,11 +155,19 @@ assembly_rx(bt_usb_dev* bdev, bt_packet_t type, void *data, int count)
|
|||||||
/* in case in the pipe there is info about the next buffer ... */
|
/* in case in the pipe there is info about the next buffer ... */
|
||||||
count -= currentPacketLen;
|
count -= currentPacketLen;
|
||||||
data += currentPacketLen;
|
data += currentPacketLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
#pragma mark --- RX Complete ---
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
event_complete(void* cookie, uint32 status, void* data, uint32 actual_len)
|
event_complete(void* cookie, status_t status, void* data, size_t actual_len)
|
||||||
{
|
{
|
||||||
|
|
||||||
bt_usb_dev* bdev = cookie;
|
bt_usb_dev* bdev = cookie;
|
||||||
@@ -180,7 +202,7 @@ resubmit:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
acl_rx_complete(void* cookie, uint32 status, void* data, uint32 actual_len)
|
acl_rx_complete(void* cookie, status_t status, void* data, size_t actual_len)
|
||||||
{
|
{
|
||||||
bt_usb_dev* bdev = cookie;
|
bt_usb_dev* bdev = cookie;
|
||||||
status_t err;
|
status_t err;
|
||||||
@@ -200,12 +222,12 @@ resubmit:
|
|||||||
|
|
||||||
err = usb->queue_bulk(bdev->bulk_in_ep->handle, data,
|
err = usb->queue_bulk(bdev->bulk_in_ep->handle, data,
|
||||||
max(HCI_MAX_FRAME_SIZE,bdev->max_packet_size_bulk_in),
|
max(HCI_MAX_FRAME_SIZE,bdev->max_packet_size_bulk_in),
|
||||||
acl_rx_complete, bdev);
|
acl_rx_complete, (void*) bdev);
|
||||||
|
|
||||||
if (err != B_OK ) {
|
if (err != B_OK ) {
|
||||||
reuse_room(&bdev->aclRoom, data);
|
reuse_room(&bdev->aclRoom, data);
|
||||||
bdev->stat.rejectedRX++;
|
bdev->stat.rejectedRX++;
|
||||||
debugf("RX acl resubmittion failed %s\n",strerror(err));
|
debugf("RX acl resubmittion failed %s\n", strerror(err));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bdev->stat.acceptedRX++;
|
bdev->stat.acceptedRX++;
|
||||||
@@ -228,14 +250,14 @@ submit_rx_event(bt_usb_dev* bdev)
|
|||||||
|
|
||||||
err = usb->queue_interrupt(bdev->intr_in_ep->handle,
|
err = usb->queue_interrupt(bdev->intr_in_ep->handle,
|
||||||
buf, size ,
|
buf, size ,
|
||||||
event_complete, bdev);
|
event_complete, (void*) bdev);
|
||||||
if (err != B_OK ) {
|
if (err != B_OK ) {
|
||||||
reuse_room(&bdev->eventRoom, buf);
|
reuse_room(&bdev->eventRoom, buf);
|
||||||
bdev->stat.rejectedRX++;
|
bdev->stat.rejectedRX++;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bdev->stat.acceptedRX++;
|
bdev->stat.acceptedRX++;
|
||||||
debugf("Accepted RX Event\n",bdev->stat.acceptedRX);
|
debugf("Accepted RX Event %d\n", bdev->stat.acceptedRX);
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
@@ -282,14 +304,18 @@ submit_rx_sco(bt_usb_dev* bdev)
|
|||||||
#pragma mark --- TX Complete ---
|
#pragma mark --- TX Complete ---
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAIKU
|
||||||
void
|
void
|
||||||
command_complete(void* cookie, uint32 status, void* data, uint32 actual_len)
|
command_complete(void* cookie, status_t status, void* data, size_t actual_len)
|
||||||
|
#else
|
||||||
|
void
|
||||||
|
command_complete(void* cookie, uint32 status, void* data, size_t actual_len)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
snet_buffer* snbuf = (snet_buffer*) cookie;
|
snet_buffer* snbuf = (snet_buffer*) cookie;
|
||||||
bt_usb_dev* bdev = snb_cookie(snbuf);
|
bt_usb_dev* bdev = snb_cookie(snbuf);
|
||||||
status_t err;
|
|
||||||
|
|
||||||
debugf("%d %02x:%02x:%02x:\n", actual_len, ((uint8*)data)[0],((uint8*)data)[1],((uint8*)data)[2]);
|
debugf("%ld %02x:%02x:%02x:\n", actual_len, ((uint8*)data)[0],((uint8*)data)[1],((uint8*)data)[2]);
|
||||||
|
|
||||||
if (status != B_OK) {
|
if (status != B_OK) {
|
||||||
|
|
||||||
@@ -310,13 +336,18 @@ command_complete(void* cookie, uint32 status, void* data, uint32 actual_len)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
aclTxComplete(void* cookie, uint32 status, void* data, uint32 actual_len)
|
#ifndef HAIKU_TARGET_PLATFORM_HAIKU
|
||||||
|
acl_tx_complete(void* cookie, uint32 status, void* data, uint32 actual_len)
|
||||||
|
#else
|
||||||
|
acl_tx_complete(void* cookie, status_t status, void* data, size_t actual_len)
|
||||||
|
#endif
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
net_buffer* nbuf = (net_buffer*) cookie;
|
net_buffer* nbuf = (net_buffer*) cookie;
|
||||||
bt_usb_dev* bdev = GET_DEVICE(nbuf);
|
bt_usb_dev* bdev = GET_DEVICE(nbuf);
|
||||||
status_t err;
|
|
||||||
|
|
||||||
if (status != B_OK) {
|
if (status != B_OK) {
|
||||||
|
|
||||||
@@ -357,7 +388,7 @@ submit_tx_command(bt_usb_dev* bdev, snet_buffer* snbuf)
|
|||||||
err = usb->queue_request(bdev->dev, bRequestType, bRequest,
|
err = usb->queue_request(bdev->dev, bRequestType, bRequest,
|
||||||
value, wIndex, wLength,
|
value, wIndex, wLength,
|
||||||
snb_get(snbuf), wLength //???
|
snb_get(snbuf), wLength //???
|
||||||
,command_complete, snbuf);
|
,command_complete, (void*) snbuf);
|
||||||
|
|
||||||
if (err != B_OK ) {
|
if (err != B_OK ) {
|
||||||
bdev->stat.rejectedTX++;
|
bdev->stat.rejectedTX++;
|
||||||
@@ -379,7 +410,7 @@ submit_tx_acl(bt_usb_dev* bdev, net_buffer* nbuf)
|
|||||||
|
|
||||||
err = usb->queue_bulk(bdev->bulk_out_ep->handle,
|
err = usb->queue_bulk(bdev->bulk_out_ep->handle,
|
||||||
nb_get_whole_buffer(nbuf), nbuf->size,
|
nb_get_whole_buffer(nbuf), nbuf->size,
|
||||||
aclTxComplete, nbuf);
|
acl_tx_complete, (void*) nbuf);
|
||||||
|
|
||||||
if (err != B_OK ) {
|
if (err != B_OK ) {
|
||||||
bdev->stat.rejectedTX++;
|
bdev->stat.rejectedTX++;
|
||||||
|
|||||||
@@ -5,16 +5,19 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include <bluetooth/bluetooth.h>
|
||||||
|
#include <bluetooth/HCI/btHCI_transport.h>
|
||||||
|
|
||||||
#include "h2upper.h"
|
#include "h2upper.h"
|
||||||
#include "h2transactions.h"
|
#include "h2transactions.h"
|
||||||
|
#include "snet_buffer.h"
|
||||||
|
|
||||||
#define BT_DEBUG_THIS_MODULE
|
#define BT_DEBUG_THIS_MODULE
|
||||||
#include "btDebug.h"
|
#include <btDebug.h>
|
||||||
|
|
||||||
#include <btHCITransport.h>
|
|
||||||
#include <bluetooth.h>
|
|
||||||
|
|
||||||
#include "snet_buffer.h"
|
|
||||||
|
|
||||||
/* TODO: split for commands and comunication(ACL&SCO) */
|
/* TODO: split for commands and comunication(ACL&SCO) */
|
||||||
void
|
void
|
||||||
@@ -84,7 +87,7 @@ status_t
|
|||||||
post_packet_up(bt_usb_dev* bdev, bt_packet_t type, void* buf)
|
post_packet_up(bt_usb_dev* bdev, bt_packet_t type, void* buf)
|
||||||
{
|
{
|
||||||
|
|
||||||
status_t err;
|
status_t err = B_OK;
|
||||||
port_id port;
|
port_id port;
|
||||||
|
|
||||||
if (hci == NULL) {
|
if (hci == NULL) {
|
||||||
@@ -92,20 +95,19 @@ post_packet_up(bt_usb_dev* bdev, bt_packet_t type, void* buf)
|
|||||||
err = B_ERROR;
|
err = B_ERROR;
|
||||||
|
|
||||||
// ERROR but we will try to send if its a event!
|
// ERROR but we will try to send if its a event!
|
||||||
if (type != BT_EVENT) {
|
if (type == BT_EVENT) {
|
||||||
err = B_ERROR;
|
|
||||||
} else {
|
snet_buffer* snbuf = (snet_buffer*) buf;
|
||||||
snet_buffer* snbuf = (snet_buffer*)buf;
|
|
||||||
|
|
||||||
flowf("HCI not present, Posting to userland\n");
|
flowf("HCI not present, Posting to userland\n");
|
||||||
port = find_port(BT_USERLAND_PORT_NAME);
|
port = find_port(BT_USERLAND_PORT_NAME);
|
||||||
if (port != B_NAME_NOT_FOUND) {
|
if (port != B_NAME_NOT_FOUND) {
|
||||||
|
|
||||||
|
|
||||||
err = write_port_etc(port, PACK_HEADER_PORT(bdev->num,type),
|
err = write_port_etc(port, PACK_PORTCODE(type,bdev->hdev, -1),
|
||||||
snb_get(snbuf), snb_size(snbuf), B_TIMEOUT, 1*1000*1000);
|
snb_get(snbuf), snb_size(snbuf), B_TIMEOUT, 1*1000*1000);
|
||||||
if (err != B_OK)
|
if (err != B_OK)
|
||||||
debugf("Error posting userland %s\n",strerror(err));
|
debugf("Error posting userland %s\n", strerror(err));
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -12,10 +12,9 @@
|
|||||||
|
|
||||||
#include "h2generic.h"
|
#include "h2generic.h"
|
||||||
|
|
||||||
#define PACK_HEADER_PORT(x,y) (x<<24|y<<16)
|
|
||||||
|
|
||||||
status_t post_packet_up(bt_usb_dev* bdev, bt_packet_t type, void* buf);
|
status_t post_packet_up(bt_usb_dev* bdev, bt_packet_t type, void* buf);
|
||||||
status_t send_packet(hci_id hid, bt_packet_t type, net_buffer* nbuf);
|
status_t send_packet(hci_id hid, bt_packet_t type, net_buffer* nbuf);
|
||||||
|
status_t send_command(hci_id hid, snet_buffer* snbuf);
|
||||||
|
|
||||||
void sched_tx_processing(bt_usb_dev* bdev);
|
void sched_tx_processing(bt_usb_dev* bdev);
|
||||||
|
|
||||||
|
|||||||
@@ -5,22 +5,23 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <malloc.h>
|
||||||
|
|
||||||
#include "h2upper.h"
|
#include "h2upper.h"
|
||||||
#include "h2util.h"
|
#include "h2util.h"
|
||||||
#include "h2transactions.h"
|
#include "h2transactions.h"
|
||||||
|
|
||||||
#define BT_DEBUG_THIS_MODULE
|
#include <bluetooth/HCI/btHCI_acl.h>
|
||||||
#include "btDebug.h"
|
#include <bluetooth/HCI/btHCI_command.h>
|
||||||
|
#include <bluetooth/HCI/btHCI_event.h>
|
||||||
|
|
||||||
|
#define BT_DEBUG_THIS_MODULE
|
||||||
|
#include <btDebug.h>
|
||||||
|
|
||||||
#include <btHCITransport.h>
|
|
||||||
#include <btHCI_acl.h>
|
|
||||||
#include <btHCI_command.h>
|
|
||||||
#include <btHCI_event.h>
|
|
||||||
|
|
||||||
void*
|
void*
|
||||||
nb_get_whole_buffer(net_buffer* nbuf)
|
nb_get_whole_buffer(net_buffer* nbuf)
|
||||||
{
|
{
|
||||||
|
|
||||||
void* conPointer;
|
void* conPointer;
|
||||||
status_t err;
|
status_t err;
|
||||||
|
|
||||||
@@ -52,7 +53,7 @@ nb_get_whole_buffer(net_buffer* nbuf)
|
|||||||
return conPointer;
|
return conPointer;
|
||||||
|
|
||||||
free:
|
free:
|
||||||
free(nbuf->COOKIEFIELD);
|
free((void*) nbuf->COOKIEFIELD);
|
||||||
fail:
|
fail:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -99,9 +100,11 @@ get_expected_size(net_buffer* nbuf)
|
|||||||
return header->elen;
|
return header->elen;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
#include "h2generic.h"
|
#include "h2generic.h"
|
||||||
|
|
||||||
/* net buffer utils for ACL, to be reviwed */
|
/* net buffer utils for ACL, to be reviewed */
|
||||||
#define DEVICEFIELD type
|
#define DEVICEFIELD type
|
||||||
#define SET_DEVICE(nbuf,hid) (nbuf->DEVICEFIELD=(nbuf->DEVICEFIELD&0xFFF0)|(hid&0xF))
|
#define SET_DEVICE(nbuf,hid) (nbuf->DEVICEFIELD=(nbuf->DEVICEFIELD&0xFFF0)|(hid&0xF))
|
||||||
#define GET_DEVICE(nbuf) fetch_device(NULL,(nbuf->DEVICEFIELD&0x0F))
|
#define GET_DEVICE(nbuf) fetch_device(NULL,(nbuf->DEVICEFIELD&0x0F))
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
|
|
||||||
#include "snet_buffer.h"
|
#include "snet_buffer.h"
|
||||||
|
|
||||||
|
#include <malloc.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
struct snet_buffer {
|
struct snet_buffer {
|
||||||
struct list_link link;
|
struct list_link link;
|
||||||
|
|||||||
Reference in New Issue
Block a user