<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/arm/include/atomic.h, branch release/13.2.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F13.2.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F13.2.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2020-11-28T15:00:08Z</updated>
<entry>
<title>Remove now unused armv4 and not-INTRNG files.</title>
<updated>2020-11-28T15:00:08Z</updated>
<author>
<name>Michal Meloun</name>
<email>mmel@FreeBSD.org</email>
</author>
<published>2020-11-28T15:00:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b88b2751452a2c4d0361c0e51da11e9bf43dca97'/>
<id>urn:sha1:b88b2751452a2c4d0361c0e51da11e9bf43dca97</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Expand generic subword atomic primitives</title>
<updated>2020-03-25T23:12:43Z</updated>
<author>
<name>Conrad Meyer</name>
<email>cem@FreeBSD.org</email>
</author>
<published>2020-03-25T23:12:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ca0ec73c11a7bb9ed409466e514fa5c34b6c84b5'/>
<id>urn:sha1:ca0ec73c11a7bb9ed409466e514fa5c34b6c84b5</id>
<content type='text'>
The goal of this change is to make the atomic_load_acq_{8,16},
atomic_testandset{,_acq}_long, and atomic_testandclear_long primitives
available in MI-namespace.

The second goal is to get this draft out of my local tree, as anything that
requires a full tinderbox is a big burden out of tree.  MD specifics can be
refined individually afterwards.

The generic implementations may not be ideal for your architecture; feel
free to implement better versions.  If no subword_atomic definitions are
needed, the include can be removed from your arch's machine/atomic.h.
Generic definitions are guarded by defined macros of the same name.  To
avoid picking up conflicting generic definitions, some macro defines are
added to various MD machine/atomic.h to register an existing implementation.

Include _atomic_subword.h in arm and arm64 machine/atomic.h.

For some odd reason, KCSAN only generates some versions of primitives.
Generate the _acq variants of atomic_load.*_8, atomic_load.*_16, and
atomic_testandset.*_long.  There are other questionably disabled primitives,
but I didn't run into them, so I left them alone.  KCSAN is only built for
amd64 in tinderbox for now.

Add atomic_subword implementations of atomic_load_acq_{8,16} implemented
using masking and atomic_load_acq_32.

Add generic atomic_subword implementations of atomic_testandset_long(),
atomic_testandclear_long(), and atomic_testandset_acq_long(), using
atomic_fcmpset_long() and atomic_fcmpset_acq_long().

On x86, add atomic_testandset_acq_long as an alias for
atomic_testandset_long.

Reviewed by:	kevans, rlibby (previous versions both)
Differential Revision:	https://reviews.freebsd.org/D22963
</content>
</entry>
<entry>
<title>Implement atomic_swap_xxx() for all platforms.</title>
<updated>2018-12-10T13:38:13Z</updated>
<author>
<name>Hans Petter Selasky</name>
<email>hselasky@FreeBSD.org</email>
</author>
<published>2018-12-10T13:38:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d7a9bfee8f10e6a787ea24581ac0db1040f409aa'/>
<id>urn:sha1:d7a9bfee8f10e6a787ea24581ac0db1040f409aa</id>
<content type='text'>
Differential Revision:	https://reviews.freebsd.org/D18450
Reviewed by:		kib@
MFC after:		3 days
Sponsored by:		Mellanox Technologies
</content>
</entry>
<entry>
<title>Remove arm-specific implementations of atomic_load/store_xxx() now that</title>
<updated>2017-12-20T20:41:51Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2017-12-20T20:41:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5d83601f1fc1946c1c5969283f3f20dd2eac39bf'/>
<id>urn:sha1:5d83601f1fc1946c1c5969283f3f20dd2eac39bf</id>
<content type='text'>
they are provided by sys/atomic_common.h.
</content>
</entry>
<entry>
<title>Add atomic_load(9) and atomic_store(9) operations.</title>
<updated>2017-12-19T09:59:20Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2017-12-19T09:59:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=30d4f9e8883099cbdbcb732b68372b7c2e0ec979'/>
<id>urn:sha1:30d4f9e8883099cbdbcb732b68372b7c2e0ec979</id>
<content type='text'>
They provide relaxed-ordered atomic access semantic.  Due to the
FreeBSD memory model, the operations are syntaxical wrappers around
the volatile accesses.  The volatile qualifier is used to ensure that
the access not optimized out and in turn depends on the volatile
semantic as implemented by supported compilers.

The motivation for adding the operation is to help people coming from
other systems or knowing the C11/C++ standards where atomics have
special type and require use of the special access operations.  It is
still the case that FreeBSD requires plain load and stores of aligned
integer types to be atomic.

Suggested by:	jhb
Reviewed by:	alc, jhb
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D13534
</content>
</entry>
<entry>
<title>sys/arm: further adoption of SPDX licensing ID tags.</title>
<updated>2017-11-27T15:04:10Z</updated>
<author>
<name>Pedro F. Giffuni</name>
<email>pfg@FreeBSD.org</email>
</author>
<published>2017-11-27T15:04:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=af3dc4a7ca7fdfbe1790f34b83024557a35d11f2'/>
<id>urn:sha1:af3dc4a7ca7fdfbe1790f34b83024557a35d11f2</id>
<content type='text'>
Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.
</content>
</entry>
<entry>
<title>Stop including sys/types.h from arm's machine/atomic.h, fix the places</title>
<updated>2017-02-11T01:07:46Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2017-02-11T01:07:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9fc7a59f2a9baa13d62a86a10d97652ca06caa5f'/>
<id>urn:sha1:9fc7a59f2a9baa13d62a86a10d97652ca06caa5f</id>
<content type='text'>
where atomic.h was being included without ensuring that types.h (via
param.h) was included first, as required by atomic(9).
</content>
</entry>
<entry>
<title>Implement atomic_fcmpset_* for arm and arm64.</title>
<updated>2017-01-28T16:24:06Z</updated>
<author>
<name>Olivier Houchard</name>
<email>cognet@FreeBSD.org</email>
</author>
<published>2017-01-28T16:24:06Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=dc5f9fcdae3869ad302953abf997f3a198ca1f4b'/>
<id>urn:sha1:dc5f9fcdae3869ad302953abf997f3a198ca1f4b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove arm's cpuconf.h, and references to it, after moving a few lines from</title>
<updated>2017-01-16T16:44:13Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2017-01-16T16:44:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3b9a898298abbf50c832a76a8485d0dcbffa6e9e'/>
<id>urn:sha1:3b9a898298abbf50c832a76a8485d0dcbffa6e9e</id>
<content type='text'>
it into pmap-v4.h where they are used.  Other than those few lines of
support for different MMU types, nothing in cpuconf.h has been used in our
code for quite a while.

The file existed to set up a variety of symbols to describe the
architecture.  Over the past few years we have converted all of our source
to use the new architecture symbols standardized by ARM Inc, and predefined
by both clang and gcc.

PR:		216104
</content>
</entry>
<entry>
<title>Add some missing atomic_*_ptr #defines for arm.</title>
<updated>2017-01-04T00:18:51Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2017-01-04T00:18:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=33ce6ec1d9e9bdcc04936a39d1a3701f5ee36ff3'/>
<id>urn:sha1:33ce6ec1d9e9bdcc04936a39d1a3701f5ee36ff3</id>
<content type='text'>
MFC after:	1 week
</content>
</entry>
</feed>
