History log of /haiku/headers/os/bluetooth/HCI/btHCI_transport.h
Revision Date Author Comments
# bb83316a 26-Apr-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.


# 62f5ba00 01-Apr-2010 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

- Read Local features al LocalDevice constructor
- keep record in UL and KL side



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36027 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9760dcae 17-Jan-2010 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

- Move bluetooth net_device module to a independent module HCI, remake API interfaces
- Move functionality for assembling ACL/events packets of the driver to this module
- Move h2generic driver to c++ (not style)
- Pass checkstyle.py to all commited files.
Fixes:
- Wrong condition for finishing l2cap packet segmentation.
- Place NetBuffersPrependers in a inner scope to avoid Sycing twice in destructor.
- Avoid keeping trace of l2cap responses of any other kind of thread.
- Do not free net_buffers of for Frame containers.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35117 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a1163de8 13-Jun-2009 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

- Long events were locking the bluetooth server, as events can be more than 256 counting with the header.
- Add debug more information in H2 driver and Command Status event
- Change name of port for posting events(former was too long)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31036 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 07e4b460 14-Oct-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Add flow specificacion command. Add port names being used among the Stack.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28106 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8bd74919 05-Aug-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Commit the file i forgot yesterday (ioctl change and cleanups)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26831 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6ac63f93 04-Aug-2008 François Revol <revol@free.fr>

- fix warning
- fix build (weird ioctl name)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26811 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 001662ae 02-Aug-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

A bit more styling on main headers

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26743 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26e7ba56 31-Jul-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

More Stylistic changes

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26705 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f9aa9c2 31-Jul-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Patch by Fredrik Ekdahl. Fix tabs and whitespaces, this set of files were conflicting

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26702 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ded32592 31-Jul-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Patch by Fredrik Ekdahl. Fix tabs and whitespaces

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26701 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d04eb939 09-Jul-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

-Move the launching of the Local Device to an IOCTL from the open hook to be more compatible with the net_stack
-Implement Launch method in the accesors regarding previous comment
-Fix KDL at removing device



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26345 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ade530ec 02-Jul-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Fix EOL

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26231 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc892ed4 05-Mar-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Remove prefixes and adapt the JSR82 api a bit more to the Be style

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24251 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d816d816 20-Feb-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Lesson learned, dont use system IOCTL codes

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24038 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c9502bbe 06-Feb-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Added macros to parse port code, cointaining the event

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23897 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b06bf23f 01-Feb-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Add 'public' headers in order all stuff actually compiles

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23816 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 62f5ba006a08b0df30631375878effaf67ae5dbc 01-Apr-2010 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

- Read Local features al LocalDevice constructor
- keep record in UL and KL side



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36027 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9760dcae2038d47442f4658c2575844c6cf92c40 17-Jan-2010 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

- Move bluetooth net_device module to a independent module HCI, remake API interfaces
- Move functionality for assembling ACL/events packets of the driver to this module
- Move h2generic driver to c++ (not style)
- Pass checkstyle.py to all commited files.
Fixes:
- Wrong condition for finishing l2cap packet segmentation.
- Place NetBuffersPrependers in a inner scope to avoid Sycing twice in destructor.
- Avoid keeping trace of l2cap responses of any other kind of thread.
- Do not free net_buffers of for Frame containers.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35117 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a1163de83ea633463a79de234b8742ee106531b2 13-Jun-2009 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

- Long events were locking the bluetooth server, as events can be more than 256 counting with the header.
- Add debug more information in H2 driver and Command Status event
- Change name of port for posting events(former was too long)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31036 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 07e4b460cea1a22a1f9aa25781976123d20a3652 14-Oct-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Add flow specificacion command. Add port names being used among the Stack.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28106 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8bd7491914395c4203ee938303a4c5fa672579a0 05-Aug-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Commit the file i forgot yesterday (ioctl change and cleanups)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26831 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6ac63f933fe2a8f83b555731e0ea8d1416f13097 04-Aug-2008 François Revol <revol@free.fr>

- fix warning
- fix build (weird ioctl name)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26811 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 001662ae04b1e220cfc87453b03a050938040d6f 02-Aug-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

A bit more styling on main headers

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26743 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26e7ba5602988f4b56d4742a6f5b6a24e917c901 31-Jul-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

More Stylistic changes

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26705 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f9aa9c24516433bd249ba5ef59548148d335f8d 31-Jul-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Patch by Fredrik Ekdahl. Fix tabs and whitespaces, this set of files were conflicting

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26702 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ded325925749bfc575ae5af8b28cb5f43d5f8705 31-Jul-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Patch by Fredrik Ekdahl. Fix tabs and whitespaces

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26701 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d04eb939af076fdf8632bde41960d10bbd2e76c1 09-Jul-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

-Move the launching of the Local Device to an IOCTL from the open hook to be more compatible with the net_stack
-Implement Launch method in the accesors regarding previous comment
-Fix KDL at removing device



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26345 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ade530ec1dc9fc9b973a1c5cb43ddd9f260b95f5 02-Jul-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Fix EOL

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26231 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fc892ed42926283eb1cf94406533c6b0d37b1fbb 05-Mar-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Remove prefixes and adapt the JSR82 api a bit more to the Be style

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24251 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d816d8168232e96317356b7e057b2af88d852883 20-Feb-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Lesson learned, dont use system IOCTL codes

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24038 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c9502bbe71f71ec9074b25254f2436ecb7af3bab 06-Feb-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Added macros to parse port code, cointaining the event

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23897 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b06bf23fb5ec2f75d352560887cf4d9ab76d8996 01-Feb-2008 Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com>

Add 'public' headers in order all stuff actually compiles

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23816 a95241bf-73f2-0310-859d-f6bbb57e9c96