Home | History | Annotate | Download | only in include
History log of /src/sys/arch/sh3/include/types.h
RevisionDateAuthorComments
 1.38  30-Apr-2020  skrll G/C __HAVE_AST_PERPROC
 1.37  23-Jan-2016  christos expose the kernel types for standalone code.
 1.36  23-Jan-2016  christos Hide {p,v}{addr,size}_t and register_t (and a couple more types that
are machine-specific) from userland unless _KERNEL/_KMEMUSER and a
new _KERNTYPES variables is defined. The _KERNTYPES should be fixed
for many subsystems that should not be using it (rump)...
 1.35  27-Aug-2015  pooka Fix PTHREAD_FOO_INITIALIZER for C++ by not using volatile in the relevant
pthread types in C++ builds, attempt 2.

The problem with attempt 1 was making assumptions of what the MD
__cpu_simple_lock_t (declared volatile) looks like. To get a same type
except non-volatile, we change the MD type to __cpu_simple_lock_nv_t
and typedef __cpu_simple_lock_t as a volatile __cpu_simple_lock_nv_t.
IMO, __cpu_simple_lock_t should not be volatile at all, but changing it
now is too risky.

Fixes at least Rumprun w/ gcc 5.1/5.2. Furthermore, the mpd application
(and possibly others) will no longer require NetBSD-specific patches.

Tested: build.sh for i386, Rumprun for x86_64 w/ gcc 5.2.

Based on the patch from Christos in lib/49989.
 1.34  17-Jul-2011  dyoung branches: 1.34.12; 1.34.30;
Switch to new-style <sys/bus.h>.
 1.33  12-Jun-2011  rmind Welcome to 5.99.53! Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
kernel-lock on some ports). Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.
 1.32  12-Mar-2011  joerg branches: 1.32.2;
Add TLS support for AMD64, i386 and SH3.

This material is based upon work partially supported by
The NetBSD Foundation under a contract with Joerg Sonnenberger.
 1.31  24-Feb-2011  joerg Allow storing and receiving the LWP private pointer via ucontext_t
on all platforms except VAX and IA64. Add fast access via register for
AMD64, i386 and SH3 ports. Use this fast access in libpthread to replace
the stack based pthread_self(). Implement skeleton support for Alpha,
HPPA, PowerPC, SPARC and SPARC64, but leave it disabled.

Ports that support this feature provide __HAVE____LWP_GETPRIVATE_FAST in
machine/types.h and a corresponding __lwp_getprivate_fast in
machine/mcontext.h.

This material is based upon work partially supported by
The NetBSD Foundation under a contract with Joerg Sonnenberger.
 1.30  22-Dec-2010  matt branches: 1.30.2; 1.30.4;
Add a define __HAVE_CPU_DATA_FIRST which means that cpu_data is the first
member in struct cpu_info.
 1.29  11-Dec-2009  matt branches: 1.29.4;
Add PRIx{P,V}{ADDR,SIZE}, PRIu{P,V}SIZE, and PRIxREGISTER{,32,64} for all
(except where they will be added via merge). These should be used to print
{p,v}{addr,size}_t and register*_t as appropriate.
 1.28  21-Oct-2009  rmind Remove uarea swap-out functionality:

- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code. Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.
 1.27  20-Jan-2008  joerg branches: 1.27.10;
Now that __HAVE_TIMECOUNTER and __HAVE_GENERIC_TODR are invariants,
remove the conditionals and the code associated with the undef case.
 1.26  17-Oct-2007  garbled branches: 1.26.2; 1.26.8;
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.25  14-Jul-2007  ad branches: 1.25.10;
Generic soft interrupts are mandatory.
 1.24  24-Sep-2006  tsutsui branches: 1.24.8; 1.24.16;
Add timecounter support for SH3 ports. From gdamore on port-sh3,
with several minor fixes by me.

Previously sh3 ports use two timers (TMU1 and TMU2) as oneshot timer
to cause real hardware interrupts by softintr(9), but now softintr(9)
uses only TMU1 and TMU2 is configured as freerunning counter for
timecounter(9).

Tested on my dreamcast.
 1.23  20-Sep-2006  uwe Switch the rest of sh3 ports to todr(9)
Split code to handle on-chip rtc into a separate driver
Eliminate all todr code from clock.c
Move __HAVE_GENERIC_TODR to sh3/include/types.h
 1.22  11-Dec-2005  christos branches: 1.22.20; 1.22.22;
merge ktrace-lwp.
 1.21  10-Jul-2005  uwe Implement syscall_intern for sh3.
 1.20  10-Jul-2005  uwe Cosmetic: drop leading underscores from the volatile keyword.
 1.19  18-Jan-2005  chs branches: 1.19.8;
sh3 no longer abuses cf_unit.
 1.18  18-Jan-2004  martin branches: 1.18.8;
Do not export __HAVE_RAS to userland. Applications are supposed to try
rasctl() and detect failure with EOPNOTSUPP.
 1.17  26-Sep-2003  nathanw 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.16  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.15  28-Apr-2003  bjh21 branches: 1.15.2;
Add a new feature-test macro, _NETBSD_SOURCE. If this is defined
by the application, all NetBSD interfaces are made visible, even
if some other feature-test macro (like _POSIX_C_SOURCE) is defined.
<sys/featuretest.h> defined _NETBSD_SOURCE if none of _ANSI_SOURCE,
_POSIX_C_SOURCE and _XOPEN_SOURCE is defined, so as to preserve
existing behaviour.

This has two major advantages:
+ Programs that require non-POSIX facilities but define _POSIX_C_SOURCE
can trivially be overruled by putting -D_NETBSD_SOURCE in their CFLAGS.
+ It makes most of the #ifs simpler, in that they're all now ORs of the
various macros, rather than having checks for (!defined(_ANSI_SOURCE) ||
!defined(_POSIX_C_SOURCE) || !defined(_XOPEN_SOURCE)) all over the place.

I've tried not to change the semantics of the headers in any case where
_NETBSD_SOURCE wasn't defined, but there were some places where the
current semantics were clearly mad, and retaining them was harder than
correcting them. In particular, I've mostly normalised things so that
_ANSI_SOURCE gets you the smallest set of stuff, then _POSIX_C_SOURCE,
_XOPEN_SOURCE and _NETBSD_SOURCE in that order.

Tested by building for vax, encouraged by thorpej, and uncontested in
tech-userlevel for a week.
 1.14  16-Dec-2002  thorpej Add support for RAS (initially added by me on nathanw_sa branch).
 1.13  16-Dec-2002  thorpej Use MI setrunqueue()/remrunqueue().
 1.12  22-Sep-2002  simonb Use "#define\t" instead of "#define ".
 1.11  22-Sep-2002  gmcgarry Add __HAVE_MD_RUNQUEUE flag for MD code to override MI run queue primitives.
 1.10  28-Apr-2002  uch branches: 1.10.6;
Use "#define<tab>", white space nits.
 1.9  24-Mar-2002  uch Rework interrupt code.
+ Fully utilize SH SR.I[0:3] interrupt level.
+ software interrupt is emulated by TMU1, 2 one shot interrupt.
+ implement generic soft interrupts.
+ implement clockframe correctly.
 1.8  17-Mar-2002  uch cosmetic changes, fix comments.
 1.7  17-Mar-2002  uch change to per-process AST.
 1.6  28-Feb-2002  simonb Use "#define<tab>".
 1.5  28-Apr-2001  kleink branches: 1.5.2;
* Move definitions of exact-width integer types from <machine/types.h>
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.
 1.4  03-Jan-2001  takemura branches: 1.4.2;
replace 'long long' with int64_t to compile stand alone program with
compiler other than GCC.
 1.3  04-Sep-2000  tsubai Correct label_t size.
 1.2  05-Feb-2000  cgd add __BROKEN_CONFIG_UNIT_USAGE #define, becuase these ports do very
wrong things with device configuration data "cf_unit" information.
 1.1  13-Sep-1999  itojun branches: 1.1.2;
Merge in NetBSD/sh3 from cvs.kame.net repository.

Tree structure:
- sys/arch/sh3: sh3 generic code
As commented, in-chip device drivers are put into sys/arch/sh3/dev.
- sys/arch/evbsh3: sh3 evaluation boards (pure sh3 CPU, no fancy external HW)
- sys/arch/mmeye: Brains mmEye, www.brains.co.jp
MI source code includes couple of #ifdef for sh3-coff support.
(sh3 uses coff or elf)

Needs some more improvements, especialy in sys/arch/sh3/conf/files.sh3,
to compile the tree (due to last minute tree structure change).
 1.1.2.2  05-Jan-2001  bouyer Sync with HEAD
 1.1.2.1  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.4.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.5.2.3  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.5.2.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.5.2.1  16-Mar-2002  jdolecek Catch up with -current.
 1.10.6.4  16-Dec-2002  thorpej Sync with HEAD.
 1.10.6.3  18-Oct-2002  nathanw Catch up to -current.
 1.10.6.2  07-Oct-2002  thorpej Add support for restartable atomic sequences.
 1.10.6.1  28-Apr-2002  thorpej file types.h was added on branch nathanw_sa on 2002-10-07 03:11:03 +0000
 1.15.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.15.2.4  24-Jan-2005  skrll Sync with HEAD.
 1.15.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.15.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.15.2.1  03-Aug-2004  skrll Sync with HEAD
 1.18.8.1  29-Apr-2005  kent sync with -current
 1.19.8.4  21-Jan-2008  yamt sync with head
 1.19.8.3  03-Sep-2007  yamt sync with head.
 1.19.8.2  30-Dec-2006  yamt sync with head.
 1.19.8.1  21-Jun-2006  yamt sync with head.
 1.22.22.1  22-Oct-2006  yamt sync with head
 1.22.20.1  18-Nov-2006  ad Sync with head.
 1.24.16.1  03-Oct-2007  garbled Sync with HEAD
 1.24.8.1  15-Jul-2007  ad Sync with head.
 1.25.10.2  23-Mar-2008  matt sync with HEAD
 1.25.10.1  06-Nov-2007  matt sync with HEAD
 1.26.8.1  23-Jan-2008  bouyer Sync with HEAD.
 1.26.2.1  18-Feb-2008  mjf Sync with HEAD.
 1.27.10.1  11-Mar-2010  yamt sync with head
 1.29.4.3  21-Apr-2011  rmind sync with head
 1.29.4.2  05-Mar-2011  rmind sync with head
 1.29.4.1  18-Mar-2010  rmind Unify /dev/{mem,kmem,zero,null} implementations in MI code. Based on patch
from Joerg Sonnenberger, proposed on tech-kern@, in February 2008.

Work and depression still in progress.
 1.30.4.1  05-Mar-2011  bouyer Sync with HEAD
 1.30.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.32.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.34.30.2  19-Mar-2016  skrll Sync with HEAD
 1.34.30.1  22-Sep-2015  skrll Sync with HEAD
 1.34.12.1  03-Dec-2017  jdolecek update from HEAD

RSS XML Feed