forked from apache/nuttx
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This comment adds (1) basic support for AF_BLUETOOTH sockets. The log…
…ic 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.
- Loading branch information
1 parent
fd068f1
commit 0c007be
Showing
43 changed files
with
5,836 additions
and
610 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
/**************************************************************************** | ||
* include/netpacket/bluetooth.h | ||
* | ||
* Copyright (C) 2018 Gregory Nutt. All rights reserved. | ||
* Author: Gregory Nutt <gnutt@nuttx.org> | ||
* | ||
* Redistribution and use in source and binary forms, with or without | ||
* modification, are permitted provided that the following conditions | ||
* are met: | ||
* | ||
* 1. Redistributions of source code must retain the above copyright | ||
* notice, this list of conditions and the following disclaimer. | ||
* 2. Redistributions in binary form must reproduce the above copyright | ||
* notice, this list of conditions and the following disclaimer in | ||
* the documentation and/or other materials provided with the | ||
* distribution. | ||
* 3. Neither the name NuttX nor the names of its contributors may be | ||
* used to endorse or promote products derived from this software | ||
* without specific prior written permission. | ||
* | ||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | ||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | ||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS | ||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | ||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN | ||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
* POSSIBILITY OF SUCH DAMAGE. | ||
* | ||
****************************************************************************/ | ||
|
||
#ifndef __INCLUDE_NETPACKET_BLUETOOTH_H | ||
#define __INCLUDE_NETPACKET_BLUETOOTH_H | ||
|
||
/**************************************************************************** | ||
* Included Files | ||
****************************************************************************/ | ||
|
||
#include <sys/types.h> | ||
#include <stdint.h> | ||
|
||
#include <nuttx/wireless/bt_hci.h> | ||
|
||
/**************************************************************************** | ||
* Pre-processor Definitions | ||
****************************************************************************/ | ||
|
||
/* Well known addresses */ | ||
|
||
/**************************************************************************** | ||
* Public Type Definitions | ||
****************************************************************************/ | ||
|
||
/* See include/nuttx/wireless/bt_hci.h for address definitions. In | ||
* particular, type bt_addr_t | ||
*/ | ||
|
||
/* Socket address used with: | ||
* | ||
* bind() - Associates local address with socket | ||
* connect() - Associates a remote address with the socket (for send()) | ||
* sendto() - Send to specified remote address | ||
* recvfrom()- Receive from indicated remote address. | ||
* | ||
* The 'rc' in the naming derives from RFCCOMM as used in Linux. The | ||
* resemblances are superficial beyond that, however. | ||
*/ | ||
|
||
struct sockaddr_rc_s | ||
{ | ||
sa_family_t rc_family; | ||
bt_addr_t rc_bdaddr; | ||
uint8_t rc_channel; | ||
}; | ||
|
||
/**************************************************************************** | ||
* Public Function Prototypes | ||
****************************************************************************/ | ||
|
||
#endif /* __INCLUDE_NETPACKET_BLUETOOTH_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
/**************************************************************************** | ||
* include/nuttx/net/bluetooth.h | ||
* | ||
* Copyright (C) 2018 Gregory Nutt. All rights reserved. | ||
* Author: Gregory Nutt <gnutt@nuttx.org> | ||
* | ||
* Redistribution and use in source and binary forms, with or without | ||
* modification, are permitted provided that the following conditions | ||
* are met: | ||
* | ||
* 1. Redistributions of source code must retain the above copyright | ||
* notice, this list of conditions and the following disclaimer. | ||
* 2. Redistributions in binary form must reproduce the above copyright | ||
* notice, this list of conditions and the following disclaimer in | ||
* the documentation and/or other materials provided with the | ||
* distribution. | ||
* 3. Neither the name NuttX nor the names of its contributors may be | ||
* used to endorse or promote products derived from this software | ||
* without specific prior written permission. | ||
* | ||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | ||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | ||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS | ||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | ||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN | ||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
* POSSIBILITY OF SUCH DAMAGE. | ||
* | ||
****************************************************************************/ | ||
|
||
#ifndef __INCLUDE_NUTTX_NET_BLUETOOTH_H | ||
#define __INCLUDE_NUTTX_NET_BLUETOOTH_H | ||
|
||
/**************************************************************************** | ||
* Public Function Prototypes | ||
****************************************************************************/ | ||
|
||
#include <nuttx/wireless/bt_hci.h> | ||
|
||
/**************************************************************************** | ||
* Public Function Prototypes | ||
****************************************************************************/ | ||
|
||
/* REVISIT: Is there any header on the Bluetooth data as received by the | ||
* network stack? | ||
*/ | ||
|
||
#warning REVISIT | ||
|
||
#define BLUETOOTH_HDRLEN 0 | ||
#define BLUETOOTH_ADDRSIZE 6 | ||
#define BLUETOOTH_ADDRCOPY(d,s) memcpy((d),(s),BLUETOOTH_ADDRSIZE) | ||
#define BLUETOOTH_ADDRCMP(a,b) (memcmp((a),(b),BLUETOOTH_ADDRSIZE) == 0) | ||
|
||
/**************************************************************************** | ||
* Public Types | ||
****************************************************************************/ | ||
|
||
/* This is the form of the meta-data that accompanies frames received from | ||
* the Bluetooth stack. | ||
*/ | ||
|
||
struct bluetooth_frame_meta_s | ||
{ | ||
bt_addr_t bm_raddr; /* Connected remote address */ | ||
uint8_t bm_channel; /* Connection channel */ | ||
}; | ||
|
||
/**************************************************************************** | ||
* Public Function Prototypes | ||
****************************************************************************/ | ||
|
||
/**************************************************************************** | ||
* Name: bluetooth_input | ||
* | ||
* Description: | ||
* Handle incoming Bluetooth input | ||
* | ||
* This function is called when the radio device driver has received an | ||
* frame from the network. The frame from the device driver must be | ||
* provided in by the IOB frame argument of the function call: | ||
* | ||
* - The frame data is in the IOB io_data[] buffer, | ||
* - The length of the frame is in the IOB io_len field, and | ||
* - The offset past and radio MAC header is provided in the io_offset | ||
* field. | ||
* | ||
* The frame argument may refer to a single frame (a list of length one) | ||
* or may it be the head of a list of multiple frames. | ||
* | ||
* - The io_flink field points to the next frame in the list (if enable) | ||
* - The last frame in the list will have io_flink == NULL. | ||
* | ||
* Input Parameters: | ||
* radio The radio network driver interface. | ||
* framelist - The head of an incoming list of frames. Normally this | ||
* would be a single frame. A list may be provided if | ||
* appropriate, however. | ||
* meta - Meta data characterizing the received frame. | ||
* | ||
* If there are multiple frames in the list, this metadata | ||
* must apply to all of the frames in the list. | ||
* | ||
* Returned Value: | ||
* OK The Bluetooth has been processed and can be deleted | ||
* ERROR Hold the Bluetooth and try again later. There is a listening | ||
* socket but no recv in place to catch the Bluetooth yet. | ||
* Useful when a packet arrives before a recv call is in place. | ||
* | ||
* Assumptions: | ||
* Called from the network diver with the network locked. | ||
* | ||
****************************************************************************/ | ||
|
||
struct radio_driver_s; /* Forward reference */ | ||
struct bluetooth_data_ind_s; /* Forward reference */ | ||
struct iob_s; /* Forward reference */ | ||
|
||
int bluetooth_input(FAR struct radio_driver_s *radio, | ||
FAR struct iob_s *framelist, | ||
FAR struct bluetooth_frame_meta_s *meta); | ||
|
||
#endif /* __INCLUDE_NUTTX_NET_BLUETOOTH_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.