Home | History | Annotate | Download | only in include
History log of /src/sys/arch/sh3/include/lock.h
RevisionDateAuthorComments
 1.19  13-Feb-2022  riastradh sh3: __cpu_simple_unlock needs __insn_barrier.

No multiprocessor support here but the compiler can still reorder
memory access.
 1.18  29-Nov-2019  riastradh Nix mb_* on sh3.
 1.17  17-Sep-2017  christos branches: 1.17.4;
more const.
 1.16  13-Oct-2009  uwe branches: 1.16.22;
Fix inline asm for tas.b. "=m" is not restrictive enough and gcc may
decide to use addressing modes that tas.b does not support. 'V' is
advertised to be "non-offsettable" subset of 'm' but there's a bug in
gcc that prevents "=V" from working.

When in doubt use brute force, so pass lock pointer as "r" input and
declare "memory" as clobbered.

Landisk kernel diff is 5 instructions (register choice for lock
address in __cpu_simple_lock_try).

sys/dev/raidframe/rf_copyback.c - where old __asm triggered incorrect code
- successfully compiles (as part of sys/rump/dev/lib/libraidframe).
 1.15  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.14  17-Oct-2007  garbled branches: 1.14.16; 1.14.18; 1.14.20;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.13  10-Sep-2007  skrll Merge nick-csl-alignment.
 1.12  12-Mar-2007  uwe branches: 1.12.8; 1.12.12; 1.12.16; 1.12.18;
Note in that TAS.B in inline asm clobbers "cc".
Use MOVT instead of clear+rotate with carry in __cpu_simple_lock_try.
 1.11  09-Feb-2007  ad branches: 1.11.2; 1.11.6;
Merge newlock2 to head.
 1.10  03-Jan-2006  uwe branches: 1.10.18;
Nuke __P.
 1.9  28-Dec-2005  perry branches: 1.9.2;
inline -> __inline
 1.8  24-Dec-2005  perry Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.7  11-Dec-2005  christos merge ktrace-lwp.
 1.6  26-Sep-2003  nathanw branches: 1.6.16;
Move __cpu_simple_lock_t and __SIMPLELOCK_{UN,}LOCKED to machine/types.h
so that they can be used in a namespace-friendly way.
 1.5  14-Feb-2003  itohy branches: 1.5.2;
- Change __cpu_simple_lock_t from int to unsigned char.
This makes simple lock work on big-endian platforms.
- Assembly-level optimization of __cpu_simple_lock_try().

OK'd by Gregory McGarry. Closes PR port-sh3/20311.
 1.4  16-Sep-2002  gmcgarry Implement CPU spinlocks. Compile-tested only.
 1.3  17-Mar-2002  uch branches: 1.3.8;
cosmetic changes, fix comments.
 1.2  02-May-2000  thorpej branches: 1.2.6; 1.2.10;
Let each platform typedef the new __cpu_simple_lock_t, which should
be the most efficient type used for the atomic operations in the
simplelock structure, and should also be __volatile.
 1.1  29-Apr-2000  thorpej Require that each each MACHINE/MACHINE_ARCH supply a lock.h. This file
contains the values __SIMPLELOCK_LOCKED and __SIMPLELOCK_UNLOCKED, which
replace the old SIMPLELOCK_LOCKED and SIMPLELOCK_UNLOCKED. These files
are also required to supply inline functions __cpu_simple_lock(),
__cpu_simple_lock_try(), and __cpu_simple_unlock() if locking is to be
supported on that platform (i.e. if MULTIPROCESSOR is defined in the
_KERNEL case). Change these functions to take an int * (&alp->lock_data)
rather than the struct simplelock * itself.

These changes make it possible for userland to use the locking primitives
by including <machine/lock.h>.
 1.2.10.2  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.10.1  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.2.6.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.2.6.1  02-May-2000  bouyer file lock.h was added on branch thorpej_scsipi on 2000-11-20 20:24:30 +0000
 1.3.8.2  17-Sep-2002  nathanw Catch up to -current.
 1.3.8.1  17-Mar-2002  nathanw file lock.h was added on branch nathanw_sa on 2002-09-17 21:17:25 +0000
 1.5.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.5.2.1  03-Aug-2004  skrll Sync with HEAD
 1.6.16.4  27-Oct-2007  yamt sync with head.
 1.6.16.3  03-Sep-2007  yamt sync with head.
 1.6.16.2  26-Feb-2007  yamt sync with head.
 1.6.16.1  21-Jun-2006  yamt sync with head.
 1.9.2.1  15-Jan-2006  yamt sync with head.
 1.10.18.1  01-Feb-2007  ad Get sh3 compiling.
 1.11.6.2  09-Oct-2007  ad Sync with head.
 1.11.6.1  13-Mar-2007  ad Sync with head.
 1.11.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.12.18.1  06-Nov-2007  matt sync with HEAD
 1.12.16.1  02-Oct-2007  joerg Sync with HEAD.
 1.12.12.1  15-Aug-2007  skrll Provide __SIMPLELOCK_{UN,}LOCKED_P and __cpu_simple_lock_{set,clear}
for all architectures.
 1.12.8.1  03-Oct-2007  garbled Sync with HEAD
 1.14.20.2  11-Mar-2010  yamt sync with head
 1.14.20.1  16-May-2008  yamt sync with head.
 1.14.18.1  18-May-2008  yamt sync with head.
 1.14.16.1  02-Jun-2008  mjf Sync with HEAD.
 1.16.22.1  03-Dec-2017  jdolecek update from HEAD
 1.17.4.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed