Fix #6373, second try

* make BDADDR_* macros refer to value types instead of addresses
* adjust all interfaces using bdaddr_t* to use (mostly const) refs instead,
  which IMHO makes the interface & code clearer
* that got rid of a couple of const incorrectness casts
* some cleanup along the way


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38265 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Oliver Tappe
2010-08-19 15:29:02 +00:00
parent e2fc6dba84
commit 269ebc04b9
14 changed files with 77 additions and 78 deletions
+17 -9
View File
@@ -5,6 +5,7 @@
#ifndef _BTCOREDATA_H
#define _BTCOREDATA_H
#include <module.h>
#include <lock.h>
#include <util/DoublyLinkedList.h>
@@ -18,8 +19,10 @@
#include <bluetooth/HCI/btHCI_transport.h>
#include <l2cap.h>
#define BT_CORE_DATA_MODULE_NAME "bluetooth/btCoreData/v1"
struct L2capChannel;
struct L2capFrame;
struct L2capEndpoint;
@@ -29,6 +32,7 @@ typedef enum _connection_status {
HCI_CONN_OPEN,
} connection_status;
#ifdef __cplusplus
struct HciConnection : DoublyLinkedListLinkImpl<HciConnection> {
@@ -138,12 +142,12 @@ struct bluetooth_core_data_module_info {
status_t (*PostEvent)(bluetooth_device* ndev, void* event,
size_t size);
struct HciConnection* (*AddConnection)(uint16 handle, int type,
bdaddr_t* dst, hci_id hid);
const bdaddr_t& dst, hci_id hid);
// status_t (*RemoveConnection)(bdaddr_t destination, hci_id hid);
status_t (*RemoveConnection)(uint16 handle, hci_id hid);
hci_id (*RouteConnection)(const bdaddr_t* destination);
hci_id (*RouteConnection)(const bdaddr_t& destination);
void (*SetAclBuffer)(struct HciConnection* conn,
net_buffer* nbuf);
@@ -155,8 +159,8 @@ struct bluetooth_core_data_module_info {
bool (*AclOverFlowed)(struct HciConnection* conn);
struct HciConnection* (*ConnectionByHandle)(uint16 handle, hci_id hid);
struct HciConnection* (*ConnectionByDestination)(const bdaddr_t* destination,
hci_id hid);
struct HciConnection* (*ConnectionByDestination)(
const bdaddr_t& destination, hci_id hid);
struct L2capChannel* (*AddChannel)(struct HciConnection* conn,
uint16 psm);
@@ -169,20 +173,24 @@ struct bluetooth_core_data_module_info {
struct L2capFrame* (*SignalByIdent)(struct HciConnection* conn,
uint8 ident);
status_t (*TimeoutSignal)(struct L2capFrame* frame, uint32 timeo);
status_t (*TimeoutSignal)(struct L2capFrame* frame,
uint32 timeo);
status_t (*UnTimeoutSignal)(struct L2capFrame* frame);
struct L2capFrame* (*SpawnFrame)(struct HciConnection* conn,
struct L2capChannel* channel, net_buffer* buffer, frame_type frame);
struct L2capChannel* channel,
net_buffer* buffer, frame_type frame);
struct L2capFrame* (*SpawnSignal)(struct HciConnection* conn,
struct L2capChannel* channel, net_buffer* buffer,
uint8 ident, uint8 code);
struct L2capChannel* channel,
net_buffer* buffer, uint8 ident, uint8 code);
status_t (*AcknowledgeSignal)(struct L2capFrame* frame);
status_t (*QueueSignal)(struct L2capFrame* frame);
};
inline bool ExistConnectionByDestination(bdaddr_t* destination, hci_id hid);
inline bool ExistConnectionByDestination(const bdaddr_t& destination,
hci_id hid);
inline bool ExistConnectionByHandle(uint16 handle, hci_id hid);
#endif // _BTCOREDATA_H