mirror of
https://github.com/apache/nuttx.git
synced 2026-06-05 07:12:54 +08:00
This comment adds (1) basic support for AF_BLUETOOTH sockets. The logic compiles but is still incomplete. Support for Bluetooth is general is still dependent on CONFIG_EXPERMIMENTAL because it is not yet ready for used.
Squashed commit of the following:
wireless/bluetooth: Some small changes that gets to a clean compile by just eliminating some incorrect implementations (still with a lot of warnings. The logic is still incomplete but now not so lethal.
wireless/bluetooth: Restructuring: Connection interfaces should internal to wireless/bluetooth. include/nuttx/wireless/bt_conn.h removed and merged with wireless/bluetooth/bt_conn.h. Several fix to get closer to bt_netdev.c compiling. Need to design some not interfaces and use some existing interfaces to send and receiv packets.
wireless/bluetooth: Some organization with some network device compile errors fixed. Still not even close to compiling.
net/bluetooth: Fix numerous compile issues; Still open design issues with regard to the interface with the Bluetooth stack.
wireless/bluetooth: Create bt_netdev.c with a crude copy of mac802154_netdev.c. Does not not even compile yet.
include/nuttx/net: Add bluetooth.h. Content is not yet correct.
net/netpackets: Add bluetooth.h. Update net/bluetooth to use new socket address definition.
net/bluetooth: Some fixes for initial build.
net/bluetooth: Add initial support for Bluetooth sockets. The initial cut is just the a clone of the IEEE 802.15.4 socket support with name changes.
net/ieee802154: Fix some typos noted when cloning to create net/bluetooth.
This commit is contained in:
+6
-3
@@ -74,7 +74,8 @@
|
||||
* TCP_NEWDATA IN: Set to indicate that the peer has sent us new data.
|
||||
* UDP_NEWDATA OUT: Cleared (only) by the socket layer logic to indicate
|
||||
* PKT_NEWDATA that the new data was consumed, suppressing further
|
||||
* IEEE802154_NEWDATA attempts to process the new data.
|
||||
* BLUETOOTH_NEWDATA attempts to process the new data.
|
||||
* IEEE802154_NEWDATA
|
||||
*
|
||||
* TCP_SNDACK IN: Not used; always zero
|
||||
* OUT: Set by the socket layer if the new data was consumed
|
||||
@@ -87,8 +88,8 @@
|
||||
* TCP_POLL IN: Used for polling the socket layer. This is provided
|
||||
* UDP_POLL periodically from the drivers to support (1) timed
|
||||
* PKT_POLL operations, and (2) to check if the socket layer has
|
||||
* IEEE802154_POLL data that it wants to send. These are socket oriented
|
||||
* callbacks where the context depends on the specific
|
||||
* BLUETOOTH_POLL data that it wants to send. These are socket oriented
|
||||
* IEEE802154_POLL callbacks where the context depends on the specific
|
||||
* set
|
||||
* OUT: Not used
|
||||
*
|
||||
@@ -177,6 +178,7 @@
|
||||
#define TCP_ACKDATA (1 << 0)
|
||||
#define TCP_NEWDATA (1 << 1)
|
||||
#define UDP_NEWDATA TCP_NEWDATA
|
||||
#define BLUETOOTH_NEWDATA TCP_NEWDATA
|
||||
#define IEEE802154_NEWDATA TCP_NEWDATA
|
||||
#define PKT_NEWDATA TCP_NEWDATA
|
||||
#define WPAN_NEWDATA TCP_NEWDATA
|
||||
@@ -186,6 +188,7 @@
|
||||
#define TCP_POLL (1 << 4)
|
||||
#define UDP_POLL TCP_POLL
|
||||
#define PKT_POLL TCP_POLL
|
||||
#define BLUETOOTH_POLL TCP_POLL
|
||||
#define IEEE802154_POLL TCP_POLL
|
||||
#define WPAN_POLL TCP_POLL
|
||||
#define TCP_BACKLOG (1 << 5)
|
||||
|
||||
+48
-1
@@ -1,7 +1,8 @@
|
||||
/****************************************************************************
|
||||
* net/devif/devif_poll.c
|
||||
*
|
||||
* Copyright (C) 2007-2010, 2012, 2014, 2016-2017 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2007-2010, 2012, 2014, 2016-2018 Gregory Nutt. All rights
|
||||
* reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -53,6 +54,7 @@
|
||||
#include "tcp/tcp.h"
|
||||
#include "udp/udp.h"
|
||||
#include "pkt/pkt.h"
|
||||
#include "bluetooth/bluetooth.h"
|
||||
#include "ieee802154/ieee802154.h"
|
||||
#include "icmp/icmp.h"
|
||||
#include "icmpv6/icmpv6.h"
|
||||
@@ -238,6 +240,42 @@ static int devif_poll_pkt_connections(FAR struct net_driver_s *dev,
|
||||
}
|
||||
#endif /* CONFIG_NET_PKT */
|
||||
|
||||
/****************************************************************************
|
||||
* Name: devif_poll_bluetooth_connections
|
||||
*
|
||||
* Description:
|
||||
* Poll all packet connections for available packets to send.
|
||||
*
|
||||
* Assumptions:
|
||||
* This function is called from the MAC device driver with the network
|
||||
* locked.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_NET_BLUETOOTH
|
||||
static int devif_poll_bluetooth_connections(FAR struct net_driver_s *dev,
|
||||
devif_poll_callback_t callback)
|
||||
{
|
||||
FAR struct bluetooth_conn_s *bluetooth_conn = NULL;
|
||||
int bstop = 0;
|
||||
|
||||
/* Traverse all of the allocated packet connections and perform the poll action */
|
||||
|
||||
while (!bstop && (bluetooth_conn = bluetooth_conn_next(bluetooth_conn)))
|
||||
{
|
||||
/* Perform the packet TX poll */
|
||||
|
||||
bluetooth_poll(dev, bluetooth_conn);
|
||||
|
||||
/* Call back into the driver */
|
||||
|
||||
bstop = callback(dev);
|
||||
}
|
||||
|
||||
return bstop;
|
||||
}
|
||||
#endif /* CONFIG_NET_BLUETOOTH */
|
||||
|
||||
/****************************************************************************
|
||||
* Name: devif_poll_ieee802154_connections
|
||||
*
|
||||
@@ -561,6 +599,15 @@ int devif_poll(FAR struct net_driver_s *dev, devif_poll_callback_t callback)
|
||||
|
||||
if (!bstop)
|
||||
#endif
|
||||
#ifdef CONFIG_NET_BLUETOOTH
|
||||
{
|
||||
/* Check for pending PF_BLUETOOTH socket transfer */
|
||||
|
||||
bstop = devif_poll_bluetooth_connections(dev, callback);
|
||||
}
|
||||
|
||||
if (!bstop)
|
||||
#endif
|
||||
#ifdef CONFIG_NET_IEEE802154
|
||||
{
|
||||
/* Check for pending PF_IEEE802154 socket transfer */
|
||||
|
||||
Reference in New Issue
Block a user