mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-25 16:43:28 +00:00
add casts for btstack_memory gets, use getter/setter for enumerated flags to allow compilation with C++
This commit is contained in:
parent
bc64ca6239
commit
28ca2b4607
@ -428,7 +428,6 @@
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "project" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
|
17
src/hci.c
17
src/hci.c
@ -82,7 +82,7 @@ hci_connection_t * connection_for_handle(hci_con_handle_t con_handle){
|
||||
}
|
||||
|
||||
static void hci_connection_timeout_handler(timer_source_t *timer){
|
||||
hci_connection_t * connection = linked_item_get_user(&timer->item);
|
||||
hci_connection_t * connection = (hci_connection_t *) linked_item_get_user(&timer->item);
|
||||
#ifdef HAVE_TIME
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv, NULL);
|
||||
@ -116,7 +116,7 @@ static void hci_connection_timestamp(hci_connection_t *connection){
|
||||
* @return connection OR NULL, if no memory left
|
||||
*/
|
||||
static hci_connection_t * create_connection_for_addr(bd_addr_t addr){
|
||||
hci_connection_t * conn = btstack_memory_hci_connection_get();
|
||||
hci_connection_t * conn = (hci_connection_t *) btstack_memory_hci_connection_get();
|
||||
if (!conn) return NULL;
|
||||
BD_ADDR_COPY(conn->address, addr);
|
||||
conn->con_handle = 0xffff;
|
||||
@ -146,6 +146,15 @@ static hci_connection_t * connection_for_address(bd_addr_t address){
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline static void connectionSetAuthenticationFlags(hci_connection_t * conn, hci_authentication_flags_t flags){
|
||||
conn->authentication_flags = (hci_authentication_flags_t)(conn->authentication_flags | flags);
|
||||
}
|
||||
|
||||
inline static void connectionClearAuthenticationFlags(hci_connection_t * conn, hci_authentication_flags_t flags){
|
||||
conn->authentication_flags = (hci_authentication_flags_t)(conn->authentication_flags & ~flags);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* add authentication flags and reset timer
|
||||
*/
|
||||
@ -154,7 +163,7 @@ static void hci_add_connection_flags_for_flipped_bd_addr(uint8_t *bd_addr, hci_a
|
||||
bt_flip_addr(addr, *(bd_addr_t *) bd_addr);
|
||||
hci_connection_t * conn = connection_for_address(addr);
|
||||
if (conn) {
|
||||
conn->authentication_flags |= flags;
|
||||
connectionSetAuthenticationFlags(conn, flags);
|
||||
hci_connection_timestamp(conn);
|
||||
}
|
||||
}
|
||||
@ -1052,7 +1061,7 @@ void hci_run(){
|
||||
} else {
|
||||
hci_send_cmd(&hci_link_key_request_negative_reply, connection->address);
|
||||
}
|
||||
connection->authentication_flags &= ~HANDLE_LINK_KEY_REQUEST;
|
||||
connectionClearAuthenticationFlags(connection, HANDLE_LINK_KEY_REQUEST);
|
||||
}
|
||||
}
|
||||
|
||||
|
33
src/l2cap.c
33
src/l2cap.c
@ -297,6 +297,15 @@ int l2cap_send_internal(uint16_t local_cid, uint8_t *data, uint16_t len){
|
||||
return l2cap_send_prepared(local_cid, len);
|
||||
}
|
||||
|
||||
static inline void channelStateVarSetFlag(l2cap_channel_t *channel, L2CAP_CHANNEL_STATE_VAR flag){
|
||||
channel->state_var = (L2CAP_CHANNEL_STATE_VAR) (channel->state_var | flag);
|
||||
}
|
||||
|
||||
static inline void channelStateVarClearFlag(l2cap_channel_t *channel, L2CAP_CHANNEL_STATE_VAR flag){
|
||||
channel->state_var = (L2CAP_CHANNEL_STATE_VAR) (channel->state_var & ~flag);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// MARK: L2CAP_RUN
|
||||
// process outstanding signaling tasks
|
||||
@ -374,7 +383,7 @@ void l2cap_run(void){
|
||||
|
||||
case L2CAP_STATE_WILL_SEND_CONNECTION_RESPONSE_ACCEPT:
|
||||
channel->state = L2CAP_STATE_CONFIG;
|
||||
channel->state_var |= L2CAP_CHANNEL_STATE_VAR_SEND_CONF_REQ;
|
||||
channelStateVarSetFlag(channel, L2CAP_CHANNEL_STATE_VAR_SEND_CONF_REQ);
|
||||
l2cap_send_signaling_packet(channel->handle, CONNECTION_RESPONSE, channel->remote_sig_id, channel->local_cid, channel->remote_cid, 0, 0);
|
||||
break;
|
||||
|
||||
@ -387,13 +396,13 @@ void l2cap_run(void){
|
||||
|
||||
case L2CAP_STATE_CONFIG:
|
||||
if (channel->state_var & L2CAP_CHANNEL_STATE_VAR_SEND_CONF_RSP){
|
||||
channel->state_var &= ~L2CAP_CHANNEL_STATE_VAR_SEND_CONF_RSP;
|
||||
channel->state_var |= L2CAP_CHANNEL_STATE_VAR_SENT_CONF_RSP;
|
||||
channelStateVarClearFlag(channel, L2CAP_CHANNEL_STATE_VAR_SEND_CONF_RSP);
|
||||
channelStateVarSetFlag(channel, L2CAP_CHANNEL_STATE_VAR_SENT_CONF_RSP);
|
||||
l2cap_send_signaling_packet(channel->handle, CONFIGURE_RESPONSE, channel->remote_sig_id, channel->remote_cid, 0, 0, 0, NULL);
|
||||
}
|
||||
else if (channel->state_var & L2CAP_CHANNEL_STATE_VAR_SEND_CONF_REQ){
|
||||
channel->state_var &= ~L2CAP_CHANNEL_STATE_VAR_SEND_CONF_REQ;
|
||||
channel->state_var |= L2CAP_CHANNEL_STATE_VAR_SENT_CONF_REQ;
|
||||
channelStateVarClearFlag(channel, L2CAP_CHANNEL_STATE_VAR_SEND_CONF_REQ);
|
||||
channelStateVarSetFlag(channel, L2CAP_CHANNEL_STATE_VAR_SENT_CONF_REQ);
|
||||
channel->local_sig_id = l2cap_next_sig_id();
|
||||
config_options[0] = 1; // MTU
|
||||
config_options[1] = 2; // len param
|
||||
@ -432,7 +441,7 @@ void l2cap_create_channel_internal(void * connection, btstack_packet_handler_t p
|
||||
bd_addr_t address, uint16_t psm, uint16_t mtu){
|
||||
|
||||
// alloc structure
|
||||
l2cap_channel_t * chan = btstack_memory_l2cap_channel_get();
|
||||
l2cap_channel_t * chan = (l2cap_channel_t*) btstack_memory_l2cap_channel_get();
|
||||
if (!chan) {
|
||||
// emit error event
|
||||
l2cap_channel_t dummy_channel;
|
||||
@ -641,7 +650,7 @@ static void l2cap_handle_connection_request(hci_con_handle_t handle, uint8_t sig
|
||||
}
|
||||
// alloc structure
|
||||
// log_info("l2cap_handle_connection_request register channel\n");
|
||||
l2cap_channel_t * channel = btstack_memory_l2cap_channel_get();
|
||||
l2cap_channel_t * channel = (l2cap_channel_t*) btstack_memory_l2cap_channel_get();
|
||||
if (!channel){
|
||||
// 0x0004 No resources available
|
||||
l2cap_register_signaling_response(handle, CONNECTION_REQUEST, sig_id, 0x0004);
|
||||
@ -765,7 +774,7 @@ void l2cap_signaling_handler_channel(l2cap_channel_t *channel, uint8_t *command)
|
||||
// successful connection
|
||||
channel->remote_cid = READ_BT_16(command, L2CAP_SIGNALING_COMMAND_DATA_OFFSET);
|
||||
channel->state = L2CAP_STATE_CONFIG;
|
||||
channel->state_var |= L2CAP_CHANNEL_STATE_VAR_SEND_CONF_REQ;
|
||||
channelStateVarSetFlag(channel, L2CAP_CHANNEL_STATE_VAR_SEND_CONF_REQ);
|
||||
break;
|
||||
case 1:
|
||||
// connection pending. get some coffee
|
||||
@ -798,12 +807,12 @@ void l2cap_signaling_handler_channel(l2cap_channel_t *channel, uint8_t *command)
|
||||
case L2CAP_STATE_CONFIG:
|
||||
switch (code) {
|
||||
case CONFIGURE_REQUEST:
|
||||
channel->state_var |= L2CAP_CHANNEL_STATE_VAR_RCVD_CONF_REQ;
|
||||
channel->state_var |= L2CAP_CHANNEL_STATE_VAR_SEND_CONF_RSP;
|
||||
channelStateVarSetFlag(channel, L2CAP_CHANNEL_STATE_VAR_RCVD_CONF_REQ);
|
||||
channelStateVarSetFlag(channel, L2CAP_CHANNEL_STATE_VAR_SEND_CONF_RSP);
|
||||
l2cap_signaling_handle_configure_request(channel, command);
|
||||
break;
|
||||
case CONFIGURE_RESPONSE:
|
||||
channel->state_var |= L2CAP_CHANNEL_STATE_VAR_RCVD_CONF_RSP;
|
||||
channelStateVarSetFlag(channel, L2CAP_CHANNEL_STATE_VAR_RCVD_CONF_RSP);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -982,7 +991,7 @@ void l2cap_register_service_internal(void *connection, btstack_packet_handler_t
|
||||
|
||||
// alloc structure
|
||||
// TODO: emit error event
|
||||
service = btstack_memory_l2cap_service_get();
|
||||
service = (l2cap_service_t *) btstack_memory_l2cap_service_get();
|
||||
if (!service) {
|
||||
log_error("l2cap_register_service_internal: no memory for l2cap_service_t\n");
|
||||
l2cap_emit_service_registered(connection, BTSTACK_MEMORY_ALLOC_FAILED, psm);
|
||||
|
@ -5,7 +5,6 @@ LD_LIBRARIES = -L$(CPPUTEST_HOME)/lib -lCppUTest -lCppUTestExt
|
||||
|
||||
VPATH=../src
|
||||
|
||||
DEPS = remote_device_db_memory.h
|
||||
OBJ = memory_pool.o remote_device_db_memory_test.o remote_device_db_memory.o btstack_memory.o linked_list.o
|
||||
|
||||
remote-memory: $(OBJ)
|
||||
|
Loading…
x
Reference in New Issue
Block a user