Warner Losh
95ee2897e9
sys: Remove $FreeBSD$: two-line .h pattern
...
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
2023-08-16 11:54:11 -06:00
Jean-Sébastien Pédron
e79a57d4ec
linuxkpi: Add cmpxchg64() in <asm/atomic.h>
...
Differential Revision: https://reviews.freebsd.org/D36966
2022-12-01 14:59:16 +01:00
Ed Maste
9f6097d6a6
linuxkpi: retire now-unused MIPS support
...
Reviewed by: bz, manu
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37023
2022-10-17 16:31:20 -04:00
Emmanuel Vadot
39da3678b1
linuxkpi: Add try_cmpxchg and atomic_try_cmpxchg
...
Needed by drm-kmod
Obtain from: drm-kmod
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D36015
2022-08-08 15:22:35 +02:00
Emmanuel Vadot
6be89cc88d
linuxkpi: atomic: Add atomic_fetch_inc
...
Reviewed by: hselasky
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D35936
2022-08-08 15:22:34 +02:00
Vladimir Kondratyev
307f78f3ed
LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards
...
MFC after: 1 week
Reviewed by: bz, emaste, hselasky, manu
Differential Revision: https://reviews.freebsd.org/D33562
2022-01-10 22:49:38 +03:00
Mateusz Guzik
1a18003240
compat: clean up empty lines in .c and .h files
2020-09-01 21:24:33 +00:00
Hans Petter Selasky
b9bf16adfb
Implement the atomic fetch add unless functions for the LinuxKPI.
...
MFC after: 1 week
Sponsored by: Mellanox Technologies
2020-04-20 16:21:37 +00:00
Hans Petter Selasky
ca487c1888
Remove no longer needed ifdefs in the LinuxKPI, after r341787.
...
Differential Revision: https://reviews.freebsd.org/D18450
Reviewed by: kib@
MFC after: 3 days
Sponsored by: Mellanox Technologies
2018-12-10 13:41:33 +00:00
Hans Petter Selasky
6402bc3d1e
Use atomic_fcmpset_XXX() instead of atomic_cmpset_XXX() when possible
...
in the LinuxKPI.
Suggested by: mjg @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2018-08-09 09:39:32 +00:00
Marius Strobl
e545f5a8a3
Update the list of architectures having atomic_fcmpset_{8,16,64}(9) and
...
atomic_swap_{64,int}(9) respectively as of r337433.
2018-08-07 18:59:02 +00:00
Hans Petter Selasky
a76c73aadc
Don't refer to non-existing atomic functions, even though not compiled,
...
in the LinuxKPI.
Found by: rpolka @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2018-08-01 19:10:46 +00:00
Hans Petter Selasky
17e2a84e9a
Rewrite code using atomic_fcmpset_int() in the LinuxKPI.
...
Suggested by: mjg@
MFC after: 1 week
Sponsored by: Mellanox Technologies
Sponsored by: Limelight Networks
2018-06-06 15:31:47 +00:00
Hans Petter Selasky
23dcf4359e
Implement the atomic_dec_if_positive() function in the LinuxKPI.
...
Submitted by: Johannes Lundberg <johalun0@gmail.com>
MFC after: 1 week
Sponsored by: Mellanox Technologies
Sponsored by: Limelight Networks
2018-06-06 13:59:51 +00:00
Hans Petter Selasky
8f294983e9
Optimise xchg() to use atomic_swap_32() and atomic_swap_64().
...
Suggested by: kib@
MFC after: 1 week
Sponsored by: Mellanox Technologies
2018-02-18 18:46:56 +00:00
Hans Petter Selasky
644680491e
Fix implementation of xchg() function macro in the LinuxKPI.
...
The exchange operation must be atomic.
MFC after: 1 week
Sponsored by: Mellanox Technologies
2018-02-18 17:37:23 +00:00
Hans Petter Selasky
af4010be77
Compile fix for GCC in the LinuxKPI.
...
Older versions of GCC don't allow flexible array members in a union.
Use a zero length array instead.
MFC after: 1 week
Reported by: jbeich@
Sponsored by: Mellanox Technologies
2018-02-17 08:12:35 +00:00
Hans Petter Selasky
2a7c2b914f
Allow the cmpxchg() macro in the LinuxKPI to work on pointers without
...
generating compiler warnings, -Wint-conversion .
Requested by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies
2018-02-16 15:20:21 +00:00
Hans Petter Selasky
62bae5d421
The LinuxKPI atomics do not have acquire nor release semantics unless
...
specified. Fix code to use READ_ONCE() and WRITE_ONCE() where appropriate.
Suggested by: kib @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2017-09-18 13:37:14 +00:00
Justin Hibbits
287e7a861a
Add more #ifdef arch checks to the linuxkpi
...
arm, mips, and powerpc all implement pmap_mapdev_attr() and pmap_unmapdev(),
so add those archs to the checks. powerpc also includes the atomic_swap_*()
functions, so add that to the supported list as well. Not tested except by
compiling powerpc.
Reviewed by: markj
2017-06-07 18:08:11 +00:00
Hans Petter Selasky
8293738e64
Function macros are preferred in the LinuxKPI.
...
MFC after: 1 week
Sponsored by: Mellanox Technologies
2017-03-23 13:28:16 +00:00
Mark Johnston
e5fe3ae2b4
Extend cmpxchg() to support 8- and 16-bit values, and add xchg().
...
These are needed to support updated revisions of the DRM code.
Reviewed by: hselasky (previous version)
MFC after: 2 weeks
2017-03-22 17:33:57 +00:00
Hans Petter Selasky
622f2291e8
Implement more LinuxKPI atomic functions and macros.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2017-02-16 12:56:10 +00:00
Hans Petter Selasky
28a04a26b2
Allow passing a constant atomic_t to atomic_read().
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2017-02-16 12:20:57 +00:00
Hans Petter Selasky
8457719578
Add more atomic LinuxKPI functions.
...
Obtained from: kmacy @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-05-11 07:58:43 +00:00
Hans Petter Selasky
fe68f570d4
Update and add various macros to the LinuxKPI and resolve a macro
...
redefinition issue in the cxgb driver.
MFC after: 1 week
Sponsored by: Mellanox Technologies
Reviewed by: np @
2016-01-26 15:26:35 +00:00
Hans Petter Selasky
29cbb3bef2
LinuxKPI atomic fixes:
...
- Fix implementation of atomic_add_unless(). The atomic_cmpset_int()
function returns a boolean and not the previous value of the atomic
variable.
- The atomic counters should be signed according to Linux.
- Some minor cosmetics and styling while at it.
Reviewed by: alfred @
MFC after: 1 week
Sponsored by: Mellanox Technologies
2016-01-21 17:52:55 +00:00
Hans Petter Selasky
8d59ecb214
Finish process of moving the LinuxKPI module into the default kernel build.
...
- Move all files related to the LinuxKPI into sys/compat/linuxkpi and
its subfolders.
- Update sys/conf/files and some Makefiles to use new file locations.
- Added description of COMPAT_LINUXKPI to sys/conf/NOTES which in turn
adds the LinuxKPI to all LINT builds.
- The LinuxKPI can be added to the kernel by setting the
COMPAT_LINUXKPI option. The OFED kernel option no longer builds the
LinuxKPI into the kernel. This was done to keep the build rules for
the LinuxKPI in sys/conf/files simple.
- Extend the LinuxKPI module to include support for USB by moving the
Linux USB compat from usb.ko to linuxkpi.ko.
- Bump the FreeBSD_version.
- A universe kernel build has been done.
Reviewed by: np @ (cxgb and cxgbe related changes only)
Sponsored by: Mellanox Technologies
2015-10-29 08:28:39 +00:00