History log of /haiku/src/libs/compat/freebsd_network/mutex.c
Revision Date Author Comments
# 03c3e208 24-Jun-2023 Niels Sascha Reedijk <niels.reedijk@gmail.com>

freebsd_compat: fix GCC warning

The C++ standard in rule 3.3.7[basic.scope.class] determines how the compiler
should handle cases where a member shares the name of a type. It is up to the
compiler whether this requires a diagnostic warning. GCC 13 emits a warning
(changes-meaning). This fixes the issuing of this warning.

Change-Id: I9c58c0dd6298055959154f78d47ad9088e8225dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6651
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# d6e2a315 24-Feb-2022 Augustin Cavalier <waddlesplash@gmail.com>

freebsd_network: Mutex handling cleanup.

* Add support for mtx_assert.
* Move MTX_SPIN handling to dedicated functions like FreeBSD does.

Tested with ipro1000 and realtekwifi.


# 8e12c92f 24-Mar-2020 waddlesplash <waddlesplash@gmail.com>

freebsd_network: Implement mtx_destroy for spinlocks.

Somehow, I missed this when implementing MTX_SPIN in the first place,
and it went largely unnoticed because MTX_SPIN is rarely used and
apparently even more rarely destroyed.

Should fix #15749.


# 8267c193 29-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

freebsd_network: Lots of additions and modifications for iflib.


# dba28784 24-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

freebsd11_network -> freebsd_network.

FreeBSD 12 has no major changes to the ifnet KPIs that constitute a
source compatibility break, save a single one related to locking
which doesn't really apply to us, and so we don't need to create
a "freebsd12_network" directory to work through the upgrades.


# 4280f862 18-Jan-2013 Jerome Duval <jerome.duval@gmail.com>

Fixed style issues, as pointed by Axel


# bf4355a4 10-Jan-2013 Jerome Duval <jerome.duval@gmail.com>

freebsd network compat layer: fix for hrev45146

* MTX_DEF is the default type: it shouldn't be tested against but used
as the default type.


# 4f5a4183 10-Jan-2013 Jerome Duval <jerome.duval@gmail.com>

freebsd network compat layer: a mutex type is actually a bitmap

* should fix #9368


# f0993145 30-Jul-2012 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Use a rw_lock instead of a mutex.

This however doesn't seem to improve performance here.
Need to investigate lock contention I think.


# e7c3a8ff 19-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

Fixed a few regressions that were introduced during the last months:
* device_attach() must not load the network stack. Besides being completely
unbalanced, this was also one reason why the stack could not be unloaded
anymore. Instead, it's now done in compat_open(), as before.
* This also fixes network booting from FreeBSD drivers - the stack apparently
could not be initialized that early.
* Replaced the previous network stack based callout implementation with one
that mostly copies its functionality, but has no dependencies. Furthermore,
it runs at a higher priority (the one of the network timer should also be
revisited, though).
* Fixed mtx_owned() to work without KDEBUG as well. It's not a good idea to
introduce code that behaves completely different based on debug settings.
* Minor cleanup.


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


# 14627e08 22-Oct-2009 Colin Günther <coling@gmx.de>

* reordering of headerfile inclusion to comply to FreeBSD 8
ordering.
this makes porting driver (especially wifi ones) more
convinient
* based on FreeBSD svn revision 196691

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


# b0f5179a 28-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Changed recursive_lock to use a mutex instead of a semaphore.
* Adjusted code using recursive locks respectively. The initialization
cannot fail anymore, and it is possible to use recursive locks in the
early boot process (even uninitialized, if in BSS), which simplifies
things a little.


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


# 0c615a01 01-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed old mutex implementation and renamed cutex to mutex.
* Trivial adjustments of code using mutexes. Mostly removing the
mutex_init() return value check.
* Added mutex_lock_threads_locked(), which is called with the threads
spinlock being held. The spinlock is released while waiting, of
course. This function is useful in cases where the existence of the
mutex object is ensured by holding the threads spinlock.
* Changed the two instances in the VFS code where an IO context of
another team needs to be locked to use mutex_lock_threads_locked().
Before it required a semaphore-based mutex implementation.


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


# 244a4d1f 04-May-2007 Hugo Santos <hugosantos@nowhere.fake>

freebsd compat. layer: we now init the several sub-parts through init_hardware, as well as allocate the available device_ts.


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


# 6d043beb 03-May-2007 Hugo Santos <hugosantos@nowhere.fake>

freebsd compat. layer: added mii placeholders, callout implementation.


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


# 522fc5d8 02-May-2007 Hugo Santos <hugosantos@nowhere.fake>

freebsd compat. layer, a few more methods.


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


# 4280f862ecceb60e1932d747ca9a45610795c7f4 18-Jan-2013 Jerome Duval <jerome.duval@gmail.com>

Fixed style issues, as pointed by Axel


# bf4355a48e5a91c42f0bd7cdaa3d242d1d9f27c3 10-Jan-2013 Jerome Duval <jerome.duval@gmail.com>

freebsd network compat layer: fix for hrev45146

* MTX_DEF is the default type: it shouldn't be tested against but used
as the default type.


# 4f5a4183de6cb47826c135c333375e60ca1434c8 10-Jan-2013 Jerome Duval <jerome.duval@gmail.com>

freebsd network compat layer: a mutex type is actually a bitmap

* should fix #9368


# f099314535596f3d1119302d6921087c9bcd2946 30-Jul-2012 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Use a rw_lock instead of a mutex.

This however doesn't seem to improve performance here.
Need to investigate lock contention I think.


# e7c3a8ffd7434cff9662772e1fd12d336b2073ec 19-Jul-2010 Axel Dörfler <axeld@pinc-software.de>

Fixed a few regressions that were introduced during the last months:
* device_attach() must not load the network stack. Besides being completely
unbalanced, this was also one reason why the stack could not be unloaded
anymore. Instead, it's now done in compat_open(), as before.
* This also fixes network booting from FreeBSD drivers - the stack apparently
could not be initialized that early.
* Replaced the previous network stack based callout implementation with one
that mostly copies its functionality, but has no dependencies. Furthermore,
it runs at a higher priority (the one of the network timer should also be
revisited, though).
* Fixed mtx_owned() to work without KDEBUG as well. It's not a good idea to
introduce code that behaves completely different based on debug settings.
* Minor cleanup.


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


# 14627e087b920676d05d45cec5f28688744e1fdb 22-Oct-2009 Colin Günther <coling@gmx.de>

* reordering of headerfile inclusion to comply to FreeBSD 8
ordering.
this makes porting driver (especially wifi ones) more
convinient
* based on FreeBSD svn revision 196691

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


# b0f5179aa51eb680cdeea656a8b11fdbc6b56d63 28-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Changed recursive_lock to use a mutex instead of a semaphore.
* Adjusted code using recursive locks respectively. The initialization
cannot fail anymore, and it is possible to use recursive locks in the
early boot process (even uninitialized, if in BSS), which simplifies
things a little.


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


# 0c615a01ae49634aaf59fbe35b3d55b3bb8890df 01-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed old mutex implementation and renamed cutex to mutex.
* Trivial adjustments of code using mutexes. Mostly removing the
mutex_init() return value check.
* Added mutex_lock_threads_locked(), which is called with the threads
spinlock being held. The spinlock is released while waiting, of
course. This function is useful in cases where the existence of the
mutex object is ensured by holding the threads spinlock.
* Changed the two instances in the VFS code where an IO context of
another team needs to be locked to use mutex_lock_threads_locked().
Before it required a semaphore-based mutex implementation.


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


# 244a4d1fa347dfe4c8247cea76393219eb79a8e0 04-May-2007 Hugo Santos <hugosantos@nowhere.fake>

freebsd compat. layer: we now init the several sub-parts through init_hardware, as well as allocate the available device_ts.


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


# 6d043beb03c572d3fd2f6995c83e13516913790a 03-May-2007 Hugo Santos <hugosantos@nowhere.fake>

freebsd compat. layer: added mii placeholders, callout implementation.


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


# 522fc5d8456aecd1f82fca13df7cd5249c9b3096 02-May-2007 Hugo Santos <hugosantos@nowhere.fake>

freebsd compat. layer, a few more methods.


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