Home | History | Annotate | Download | only in include
History log of /src/sys/arch/alpha/include/types.h
RevisionDateAuthorComments
 1.61  23-Jan-2021  christos Document via __HAVE_BUS_SPACE_8 platforms that implement bus_space_*_8
 1.60  25-Sep-2020  thorpej branches: 1.60.2;
Changes to make interrupt {,dis}establish MP-safe on Alpha:
- Protect all of the system interrupt linkage with the cpu_lock mutex.
- Re-order some of the stores to the SCB vector table to make it safe
in the face of lockless interrupt dispatch.
- Add a framework for routing interrupts to specific CPUs. Interrupts
are still funneled only to the primary CPU, but that will change for
some systems soon. Ensure that interrupt handler lists are manipulated
only on the CPUs that handle that specific interrupt source. This required
a re-factor of the alpha_shared_intr_*() family of functions.
- Enable __HAVE_INTR_CONTROL, although interrupt redistribution is still
a no-op.
- Reduce code duplication in the Jenson direct-SCB interrupt handlers.
 1.59  19-Sep-2020  thorpej Enable __HAVE_FAST_SOFTINTS and garbage-collect the #ifdefs.
 1.58  16-Sep-2020  thorpej Implement fast soft interrupts for Alpha. It's not yet enabled, because
there is a bug lurking that causes problems when user space starts up,
so we'll stick with the slow path for now.
 1.57  04-Sep-2020  thorpej Put the MI cpu_data at the beginning of cpu_info so that it is
cache line aligned.
 1.56  30-Apr-2020  skrll G/C __HAVE_AST_PERPROC
 1.55  06-Apr-2019  thorpej Overhaul the API used to fetch and store individual memory cells in
userspace. The old fetch(9) and store(9) APIs (fubyte(), fuword(),
subyte(), suword(), etc.) are retired and replaced with new ufetch(9)
and ustore(9) APIs that can return proper error codes, etc. and are
implemented consistently across all platforms. The interrupt-safe
variants are no longer supported (and several of the existing attempts
at fuswintr(), etc. were buggy and not actually interrupt-safe).

Also augmement the ucas(9) API, making it consistently available on
all plaforms, supporting uniprocessor and multiprocessor systems, even
those that do not have CAS or LL/SC primitives.

Welcome to NetBSD 8.99.37.
 1.54  24-Jan-2016  christos branches: 1.54.18;
use __paddr_t since this is a userland API.
 1.53  23-Jan-2016  christos expose the kernel types for standalone code.
 1.52  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.51  28-Aug-2015  pooka Convert to __cpu_simple_lock_nv_t. Somehow missed alpha in the earlier
commit. Thanks to uebs for pointing it out.
 1.50  08-Jan-2015  riastradh Introduce membar_datadep_consumer.

Discussed briefly on tech-kern without objection:

https://mail-index.netbsd.org/tech-kern/2014/11/20/msg018054.html
https://mail-index.netbsd.org/tech-kern/2015/01/07/msg018326.html
 1.49  25-Jan-2012  matt branches: 1.49.6; 1.49.22; 1.49.24;
Enable direct-mapped uareas for alpha.
 1.48  13-Jul-2011  dyoung branches: 1.48.2; 1.48.6;
Switch alpha to new-style <sys/bus.h>.

While I'm here, get rid of outdated __HAVE_DEVICE_REGISTER.
 1.47  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.46  07-Jun-2011  matt Switch alpha to use PCU to manage the FPU.
Tested by mhitch and review by rmind.
 1.45  31-Mar-2011  skrll branches: 1.45.2;
Enable TLS for alpha - a 2nd class^Wtier system in pookaBSD^WNetBSD

alpha_reloc.c diff from joerg on port-alpha.
 1.44  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.43  07-Jul-2010  chs branches: 1.43.2; 1.43.4;
implement cpu_lwp_setprivate() on several platforms.
 1.42  11-Dec-2009  matt branches: 1.42.2; 1.42.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.41  20-Aug-2009  matt Add print format specifiers for {p,v}{addr,size}_t and register_t,
PRTx{P,V}{ADDR,SIZE} and PRTxREGISTER, respectively.
 1.40  20-Jan-2008  joerg branches: 1.40.10;
Now that __HAVE_TIMECOUNTER and __HAVE_GENERIC_TODR are invariants,
remove the conditionals and the code associated with the undef case.
 1.39  29-Nov-2007  ad branches: 1.39.6;
__HAVE_ATOMIC64_OPS
 1.38  17-Oct-2007  garbled branches: 1.38.2;
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.37  21-Jul-2007  tsutsui branches: 1.37.4; 1.37.6;
Add MI todr(9) support and timercounter(9) support with kern_cctr.c to alpha:
- use todr(9) API with MI mc146818(4) driver and remove homegrown
todr stuff from MD alpha/clock.c and alpha/mcclock.c
- also remove obsolete cc_microtime stuff from MD code
- add ci_pcc_freq member in struct cpu_info for cpu_frequency(), and
calibrate it with mc146818 interval clock in mcclock attachment
- call cc_init() in cpu_initclocks(9) because all alpha cpus have
a pcc counter

Tested on DEC 3000/300 and AlphaPC 164, but not on any SMP machines yet.
 1.36  14-Jul-2007  ad branches: 1.36.2; 1.36.4;
Generic soft interrupts are mandatory.
 1.35  03-Sep-2006  bjh21 branches: 1.35.12; 1.35.18; 1.35.20;
Nothing in the kernel now tests __HAVE_NWSCONS, so stop defining it everywhere.
 1.34  24-Dec-2005  perry branches: 1.34.4; 1.34.8;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.33  11-Dec-2005  christos merge ktrace-lwp.
 1.32  18-Jan-2004  martin branches: 1.32.16;
Do not export __HAVE_RAS to userland. Applications are supposed to try
rasctl() and detect failure with EOPNOTSUPP.
 1.31  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.30  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.29  28-Apr-2003  bjh21 branches: 1.29.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.28  08-Jan-2003  thorpej Use the MI setrunqueue()/remrunqueue().
 1.27  22-Sep-2002  simonb Use "#define\t" instead of "#define ".
 1.26  22-Sep-2002  gmcgarry Add __HAVE_MD_RUNQUEUE flag for MD code to override MI run queue primitives.
 1.25  18-Sep-2002  thorpej Add support for restartable atomic sequences. Rearragne the tail
of cpu_switch() slightly so we can reenable interrupts a little
earlier.
 1.24  03-May-2002  thorpej Revert revision 1.23.
 1.23  03-May-2002  eeh Provide _LP64 definition if we are generating LP64 binaries.
 1.22  28-Feb-2002  simonb Use "#define<tab>".
 1.21  28-Apr-2001  kleink branches: 1.21.2; 1.21.4;
* 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.20  19-Jan-2001  thorpej branches: 1.20.2;
Make ASTs per-process.
 1.19  14-Jan-2001  thorpej Rename __GENERIC_SOFT_INTERRUPTS to __HAVE_GENERIC_SOFT_INTERRUPTS,
and place the definition in <machine/types.h>. This can now be used
as a flag to indicate whether or not <machine/intr.h> can be included
to get the generic soft interrupt API.
 1.18  03-Jan-2001  takemura replace 'long long' with int64_t to compile stand alone program with
compiler other than GCC.
 1.17  13-Dec-2000  mycroft Do the md_syscall, __HAVE_MINIMAL_EMUL and __HAVE_SYSCALL_INTERN thangs.
 1.16  08-Jun-2000  thorpej Add cpu_counter() for rnd(4), using the rpcc insn.
 1.15  23-May-2000  thorpej branches: 1.15.2;
Rename the atomic operations to have generic machine-independent
names, and define __HAVE_ATOMIC_OPERATIONS to indicate their
existence.
 1.14  05-Feb-2000  cgd clean up (group, sort) __HAVE_* defines
 1.13  01-Feb-2000  danw #define __HAVE_DEVICE_REGISTER on ports that have it, and check for
that, rather than a list of architecture defines, in config_attach
 1.12  14-Aug-1998  thorpej branches: 1.12.12;
vm_offset_t -> {paddr_t,vaddr_t}, vm_size_t -> vsize_t
 1.11  13-Aug-1998  eeh Merge paddr_t changes into the main branch.
 1.10  14-Jun-1998  kleink branches: 1.10.2;
GC the unused `physadr' type, which was not able to hold a complete physical
address on 2 architectures anyhow. Also, move the definition of the `label_t'
type inside _KERNEL protection, since it is specific to the in-kernel
setjmp()/longjmp() implementations.
 1.9  15-Apr-1998  drochner tell drivers that this port knows about the mi wscons stuff
 1.8  06-Apr-1997  cgd clean up NetBSD RCS ID strings
 1.7  07-Dec-1996  cgd kill __BROKEN_INDIRECT_CONFIG
 1.6  05-Dec-1996  cgd First step inn removing config_scan() and the hacks that gave devices
on indirect-config busses a (permanent) softc that they could share
between 'match' and 'attach' routines:

Define __BROKEN_INDIRECT_CONFIG so that old autoconfiguration
interfaces are used, until drivers are converted to use the new
interfaces (actually, converted back to use the _older_ interfaces)
which prohibit indirect configuration devices from receiving a softc
in their match routine that they can share with their attach routine.
 1.5  01-Oct-1996  cgd branches: 1.5.2;
kill __BDEVSW_DUMP_OLD_TYPE
 1.4  06-Jul-1995  cgd add <sys/cdefs.h> inclusions. namsspace-protect physadr, label_t
def'ns against _POSIX_SOURCE and _ANSI_SOURCE.
 1.3  26-Jun-1995  cgd define __BDEVSW_DUMP_OLD_TYPE for ports where it's true. clean up
some m68k ports inclusion of common header.
 1.2  16-Feb-1995  cgd update for NetBSD's header standards, kill OSF/1 cc hacks.
 1.1  13-Feb-1995  cgd preliminary Alpha support. note that NOT ALL OF THE MODIFICATIONS TO
THE REST OF THE KERNEL ARE IN THE TREE YET. Also, some of this is
_incredibly_ hack-ish, etc., but it works.
 1.5.2.3  01-Jun-1997  cgd sync the nwscons branch up with yesterday's version of the trunk.
Lots of conflicts/changes because of the RCS Id format changes.
Also, a few cleanups and corrections.
 1.5.2.2  07-Dec-1996  cgd sync with changes in trunk.
 1.5.2.1  07-Dec-1996  cgd mostly sync with changes on the trunk
 1.10.2.2  12-Aug-1998  eeh Protect XOPEN and POSIX code from vm_offset_t, paddr_t, vaddr_t, vm_size_t, psize_t, and vsize_t.
 1.10.2.1  30-Jul-1998  eeh Split vm_offset_t and vm_size_t into paddr_t, psize_t, vaddr_t, and vsize_t.
 1.12.12.6  11-Feb-2001  bouyer Sync with HEAD.
 1.12.12.5  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.12.12.4  05-Jan-2001  bouyer Sync with HEAD
 1.12.12.3  13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.12.12.2  13-Dec-2000  bouyer Sync with HEAD (for UBC fixes)
 1.12.12.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.15.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.20.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.21.4.5  08-Jan-2003  thorpej Sync with HEAD.
 1.21.4.4  18-Oct-2002  nathanw Catch up to -current.
 1.21.4.3  20-Jun-2002  nathanw Catch up to -current.
 1.21.4.2  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.21.4.1  28-Apr-2001  nathanw file types.h was added on branch nathanw_sa on 2002-04-01 07:38:51 +0000
 1.21.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.21.2.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.21.2.1  16-Mar-2002  jdolecek Catch up with -current.
 1.29.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.29.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.29.2.1  03-Aug-2004  skrll Sync with HEAD
 1.32.16.5  21-Jan-2008  yamt sync with head
 1.32.16.4  07-Dec-2007  yamt sync with head
 1.32.16.3  03-Sep-2007  yamt sync with head.
 1.32.16.2  30-Dec-2006  yamt sync with head.
 1.32.16.1  21-Jun-2006  yamt sync with head.
 1.34.8.1  14-Sep-2006  yamt sync with head.
 1.34.4.1  09-Sep-2006  rpaulo sync with head
 1.35.20.1  03-Oct-2007  garbled Sync with HEAD
 1.35.18.1  18-Apr-2007  thorpej - G/C the unused __HAVE_ATOMIC_OPERATIONS define.
- Set __HAVE_ATOMIC64_OPS to indicate 64-bit atomic op support.
 1.35.12.3  03-Dec-2007  ad Sync with HEAD.
 1.35.12.2  20-Aug-2007  ad Sync with HEAD.
 1.35.12.1  15-Jul-2007  ad Sync with head.
 1.36.4.1  15-Aug-2007  skrll Sync with HEAD.
 1.36.2.1  07-Aug-2007  matt Sync with HEAD.
 1.37.6.3  23-Mar-2008  matt sync with HEAD
 1.37.6.2  09-Jan-2008  matt sync with HEAD
 1.37.6.1  06-Nov-2007  matt sync with HEAD
 1.37.4.1  03-Dec-2007  joerg Sync with HEAD.
 1.38.2.2  18-Feb-2008  mjf Sync with HEAD.
 1.38.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.39.6.1  23-Jan-2008  bouyer Sync with HEAD.
 1.40.10.3  11-Aug-2010  yamt sync with head.
 1.40.10.2  11-Mar-2010  yamt sync with head
 1.40.10.1  16-Sep-2009  yamt sync with head
 1.42.4.4  12-Jun-2011  rmind sync with head
 1.42.4.3  21-Apr-2011  rmind sync with head
 1.42.4.2  05-Mar-2011  rmind sync with head
 1.42.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.42.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.43.4.1  05-Mar-2011  bouyer Sync with HEAD
 1.43.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.45.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.48.6.1  18-Feb-2012  mrg merge to -current.
 1.48.2.1  17-Apr-2012  yamt sync with head
 1.49.24.3  19-Mar-2016  skrll Sync with HEAD
 1.49.24.2  22-Sep-2015  skrll Sync with HEAD
 1.49.24.1  06-Apr-2015  skrll Sync with HEAD
 1.49.22.1  18-Mar-2015  snj Pull up following revision(s) (requested by riastradh in ticket #600):
common/lib/libc/arch/alpha/atomic/membar_ops.S: revision 1.7
lib/libc/atomic/membar_ops.3: revision 1.4
sys/arch/alpha/include/types.h: revision 1.50
sys/sys/atomic.h: revision 1.13
Introduce membar_datadep_consumer.
Discussed briefly on tech-kern without objection:
https://mail-index.netbsd.org/tech-kern/2014/11/20/msg018054.html
https://mail-index.netbsd.org/tech-kern/2015/01/07/msg018326.html
 1.49.6.1  03-Dec-2017  jdolecek update from HEAD
 1.54.18.1  10-Jun-2019  christos Sync with HEAD
 1.60.2.1  03-Apr-2021  thorpej Sync with HEAD.

RSS XML Feed