History log of /src/sys/external/bsd/common/include/asm/
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base perseant-exfatfs-base-20240630 perseant-exfatfs-base thorpej-ifq-base thorpej-altq-separation-base
1.21 25-Feb-2023 riastradh

linux asm/barrier.h: Fix !MULTIPROCESSOR build.


1.20 24-Feb-2023 riastradh

drm: Eliminate __HAVE_ATOMIC_AS_MEMBAR conditionals.

Discussed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2023/02/23/msg028729.html


Revision tags: netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.19 19-Jul-2022 riastradh

branches: 1.19.4;
linux: Add alpha definitions of mb/wmb/rmb too for fun.

Who wants to plug an amdgpu into their alpha?


1.18 19-Jul-2022 riastradh

linux: Clarify error message in asm/barrier.h. Not just for drm.


1.17 19-Jul-2022 riastradh

linux: Add mips definitions for mb, wmb, rmb.


1.16 19-Jul-2022 riastradh

linux: Use dsb(sy/st/ld) from arm/cpufunc.h for mb/wmb/rmb.

Works on more Arm CPU types this way. From skrll.


1.15 17-Jul-2022 riastradh

drm: Fix missing barrier definitions on arm.

The definition will work on armv7; don't think we have any drmkms
drivers on armv<7.


1.14 17-Jul-2022 riastradh

drm: Comment *mb() vs smp_*mb() and omit default for *mb().

In general membar_*() is _not_ enough for *mb(), because membar_*()
is only for CPU/CPU synchronization on normal memory, and *mb()
requires machine-dependent I/O logic. Leave it as an `#error' case
if the architecture isn't listed here. But membar_*() is OK for
smp_*().

Fill in powerpc and sparc while here, as examples of what the
now-removed defaults failed to do. If you want to use drm on a mips
or alpha system yer gonna hafta fill this in yourself.


1.13 09-Apr-2022 riastradh

linux: Convert various API shims to use membar_release/acquire.


1.12 27-Dec-2021 riastradh

linux: Define mb/wmb/rmb as mfence/sfence/lfence on i386 too.

Not the same as membar_*; drm uses mb to order special instructions
like clflush which require mfence for ordering.


1.11 19-Dec-2021 riastradh

linux: For uniprocessor, define smp_*mb as __insn_barrier.

Otherwise ordering might not be guaranteed in the event of
preemption.

XXX pullup


1.10 19-Dec-2021 riastradh

linux: Eliminate read_barrier_depends, smp_read_barrier_depends.

These no longer exist in Linux; instead, Linux now uses READ_ONCE.


1.9 19-Dec-2021 riastradh

linux: Define mb/wmb/rmb for x86.

These are _not_ SMP barriers; on Linux they specifically mean
mfence/sfence/lfence. Although membar_sync and mb agree, and
membar_consumer and rmb agree, membar_producer and wmb _do not_ agree
on x86 -- Linux's wmb is specifically sfence, which is important only
for unusual memory types, whereas our membar_producer is limited to
ordinary memory.


1.8 19-Dec-2021 riastradh

Use adequate memory barrier for load-acquire semantics.

It is unfortunate that we chose the name membar_enter to have the
wrong semantics for this.


1.7 19-Dec-2021 riastradh

Move smp_mb_before/after_atomic from linux/atomic.h to asm/barrier.h.


1.6 19-Dec-2021 riastradh

Side-load linux/compiler.h in asm/barrier.h.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
1.5 16-Oct-2020 jmcneill

Fix mb/wmb/rmb on aarch64 to use dsb instead of dmb.


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906
1.4 28-Aug-2018 riastradh

For module build assume multiprocessor.


Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202
1.3 11-Sep-2017 maya

branches: 1.3.2; 1.3.4; 1.3.6;
keep dsb in vchiq code.

dsb refers to an arm instruction, so it won't be used on MI code.


1.2 11-Sep-2017 maya

add dsb macro from vchiq


1.1 11-Sep-2017 maya

Move barrier to common so it can be shared with vchiq


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.4 19-Dec-2021 riastradh

linux: Make WARN_ONCE actually happen only once.


1.3 19-Dec-2021 riastradh

linux: Move BUILD_BUG_* to common linux/build_bug.h.


1.2 19-Dec-2021 riastradh

Make BUILD_BUG_ON_INVALID work on bit-field expressions.


1.1 19-Dec-2021 riastradh

Move linux/bug.h and asm/bug.h to common.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
1.2 19-Dec-2021 riastradh

Define Linux byte order macros __BIG_ENDIAN/__LITTLE_ENDIAN.


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
1.1 16-Feb-2020 riastradh

branches: 1.1.2; 1.1.6;
Missed a drm2 -> common move.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3
1.1 14-Feb-2020 riastradh

branches: 1.1.2; 1.1.6;
Fix undoing of -Wpointer-arith workaround.


Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base
1.1 25-Oct-2022 riastradh

linux asm/vmware.h: Fill this in with hypercall asm.

Not sure if it's necessary to support vmcall or vmmcall -- if so,
need to deal with binary patching inline asm, ugh.