/haiku/src/add-ons/kernel/network/protocols/l2cap/ |
H A D | L2capEndpointManager.h | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | L2capEndpointManager.cpp | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | l2cap_signal.h | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | l2cap_internal.h | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | l2cap_command.h | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | Jamfile | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | l2cap_command.cpp | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | L2capEndpoint.h | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | l2cap_signal.cpp | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | l2cap.cpp | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | L2capEndpoint.cpp | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
/haiku/src/tests/kits/bluetooth/l2capClient/ |
H A D | l2capClient.cpp | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
/haiku/headers/private/bluetooth/ |
H A D | l2cap.h | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | btCoreData.h | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
/haiku/src/add-ons/kernel/bluetooth/hci/ |
H A D | acl.cpp | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
/haiku/src/add-ons/kernel/bluetooth/btCoreData/ |
H A D | ConnectionInterface.h | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | ConnectionInterface.cpp | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | BTCoreData.cpp | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
H A D | Jamfile | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
/haiku/headers/os/bluetooth/HCI/ |
H A D | btHCI_transport.h | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|
/haiku/build/jam/images/definitions/ |
H A D | regular | bb83316a5811a550c4f850d07fa8e328e7ac0a94 Fri Apr 26 20:22:39 UTC 2024 Augustin Cavalier <waddlesplash@gmail.com> L2CAP: Major refactor of the whole component.
(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants and structures. Now conforms to general Haiku naming conventions rather than BSD ones. Some more constants added/removed based on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData". Channels are now managed by L2capEndpoints, and "frames" are now just plain net_buffers without surrounding structures. This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the l2cap_receive function rather than another data structure. A fake interface address is used to communicate connection information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions. Everything related to channel/endpoint management is now done in L2capEndpoint, while buffer reception is handled directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint and HciConnection. There's still problems with lifetime management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage the endpoints, rather than having a single (unsafe) linked-list.
And plenty of other refactorings and cleanups besides. There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major overhaul, and should be merged into a single "bluetooth" bus_manager. They also shouldn't be passing around pointers to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most notably around timeouts (especially command timeouts) and parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections (on the PSM for SDP) get all the way to the latter half of the Configuration step before hanging.
|