Home | History | Annotate | Download | only in include
History log of /src/sys/arch/arm/include/types.h
RevisionDateAuthorComments
 1.40  18-Jan-2020  skrll Use 4K pages on ARM_MMU_EXTENDED platforms (all armv[67] except RPI) by
creating a new pool l1ttpl for the userland L1 translation table which
needs to be 8KB and 8KB aligned.

Limit the pool to maxproc and add hooks to allow the sysctl changing of
maxproc to adjust the pool.

This comes at a 5% performance penalty for build.sh -j8 kernel on a
Tegra TK1.
 1.39  17-Jan-2020  skrll Sort __HAVE_* defines
 1.38  06-Apr-2019  thorpej branches: 1.38.6;
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.37  18-Oct-2018  skrll Provide generic start code that assumes the MMU is off and caches are
disabled as per the linux booting protocol for ARMv6 and ARMv7 boards.
u-boot image type should be changed to 'linux' for correct behaviour.

The new start code builds a minimal "bootstrap" L1PT with cached access
disabled and uses the same table for all processors. AP startup is
performed in less steps and more code is written in C.

The bootstrap tables and stack are placed into an (orphaned) section
"_init_memory" which is given to uvm when it is no longer used.

Various kernels have been converted to use this code and tested. Some
boards were provided by TNF. Thanks!

The GENERIC kernel now boots on boards using the TEGRA, SUNXI and EXYNOS
kernels. The GENERIC kernel will also work on RPI2 using u-boot.

Thanks to martin@ and aymeric@ for testing on parallella and nanosoc
respectively
 1.36  10-Oct-2018  skrll Trailing whitespace
 1.35  12-Jul-2018  maxv Remove the kernel PMC code. Sent yesterday on tech-kern@.

This change:

* Removes "options PERFCTRS", the associated includes, and the associated
ifdefs. In doing so, it removes several XXXSMPs in the MI code, which is
good.

* Removes the PMC code of ARM XSCALE.

* Removes all the pmc.h files. They were all empty, except for ARM XSCALE.

* Reorders the x86 PMC code not to rely on the legacy pmc.h file. The
definitions are put in sysarch.h.

* Removes the kern/sys_pmc.c file, and along with it, the sys_pmc_control
and sys_pmc_get_info syscalls. They are marked as OBSOL in kern,
netbsd32 and rump.

* Removes the pmc_evid_t and pmc_ctr_t types.

* Removes all the associated man pages. The sets are marked as obsolete.
 1.34  27-Jan-2017  christos branches: 1.34.12; 1.34.14;
remove __HAVE_COMPAT_NETBSD32
 1.33  26-Jan-2017  christos provide __HAVE_COMPAT_NETBSD32 and fix multiple include protection consistently.
 1.32  23-Jan-2016  christos branches: 1.32.2; 1.32.4;
expose the kernel types for standalone code.
 1.31  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.30  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.29  13-Sep-2014  matt branches: 1.29.2;
vm_offset_t -> vaddr_t, vm_size_t -> vsize_t
nuke vm_offset_t and vm_size_t
 1.28  05-Aug-2014  skrll Don't set __NO_STRICT_ALIGNMENT as armv[67] ldm/stm have alignment
restrictions.

PR/49020: Writing to tap device may cause panic on RPI

Discussed with matt@
 1.27  18-Apr-2014  matt ARMv6+ platforms no longer have strict alignment requirements.
 1.26  22-Feb-2014  matt branches: 1.26.2;
Define __HAVE_ATOMIC64_OPS if EABI && ARMv6 or later.
 1.25  02-Jul-2013  matt Add a tlb_asid_t.
 1.24  07-May-2013  matt branches: 1.24.2;
Move #define __HAVE_OLD_DISKLABEL to <arm/types.h>
 1.23  12-Aug-2012  matt branches: 1.23.2;
Rework VFP support to use PCU.
Add emulation of instruction which save/restore the VFP FPSCR.
Add a sysarch hook to VFP FPSCR manipulation.

[The emulation will be used by libc to store/fetch exception modes and
rounding mode on a per-thread basis.]
 1.22  03-Aug-2012  matt COMPAT_NETBSD32 support for ARM. Which is strange since ARM is already
32-bits. But the newer ARM ABI AAPCS changes the alignment of 64-bit
fields so structures need to copied in and out to deal with the alignment
change. This is a kludge but makes debugging of AAPCS support much easier.
 1.21  18-Nov-2011  joerg branches: 1.21.8;
Hook up TLS support on ARM. Tested by martin@, kernel support from matt@
 1.20  17-Jul-2011  dyoung branches: 1.20.2;
On ARM-ish ports having PCI support, use new-style <sys/bus.h>. Do not
install <machine/bus.h>. Remove various <machine/bus.h> sources.
 1.19  07-Apr-2011  matt Add __lwp_getprivate_fast
 1.18  22-Dec-2010  matt branches: 1.18.2;
Add a define __HAVE_CPU_DATA_FIRST which means that cpu_data is the first
member in struct cpu_info.
 1.17  11-Dec-2009  matt branches: 1.17.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.16  20-Jan-2008  joerg branches: 1.16.10; 1.16.28;
Now that __HAVE_TIMECOUNTER and __HAVE_GENERIC_TODR are invariants,
remove the conditionals and the code associated with the undef case.
 1.15  20-Jan-2008  joerg Convert evbarm to timecounter. Only one of the systems was tested, the
rest of the patch is compile-time tested only.
 1.14  09-Mar-2007  thorpej branches: 1.14.20; 1.14.28; 1.14.34;
Make __cpu_simple_lock_t an unsigned char if _KERNEL, and operate on it
using SWPB.

Approved by Matt Thomas.
 1.13  24-Dec-2005  perry branches: 1.13.26;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.12  11-Dec-2005  christos merge ktrace-lwp.
 1.11  18-Jan-2004  martin branches: 1.11.16;
Do not export __HAVE_RAS to userland. Applications are supposed to try
rasctl() and detect failure with EOPNOTSUPP.
 1.10  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.9  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.8  28-Apr-2003  bjh21 branches: 1.8.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.7  01-Mar-2003  thorpej Do the syscall_plain/syscall_fancy dance on ARM. Shaves a fair number
of cycles off the syscall overhead.

Since all COMPAT_LINUX platforms now support __HAVE_SYSCALL_INTERN,
garbage-collect the LINUX_SYSCALL_FUNCTION stuff.
 1.6  07-Oct-2002  thorpej Add support for restartable atomic sequences on 26-bit ARM. Compile
tested only.

Now that all ARM systems have RAS, move __HAVE_RAS from arm/arm32/types.h
to arm/types.h.
 1.5  07-Aug-2002  briggs Implement pmc(9) -- An interface to hardware performance monitoring
counters. These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface. Initially, the Intel XScale
counters are the only ones supported.
 1.4  28-Feb-2002  simonb branches: 1.4.8;
Use "#define<tab>".
 1.3  28-Apr-2001  kleink branches: 1.3.2; 1.3.8;
* 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.2  23-Feb-2001  bjh21 branches: 1.2.2; 1.2.4;
__HAVE_NWSCONS and __HAVE_DEVICE_REGISTER are MACHINE-dependent.
 1.1  23-Feb-2001  reinoud Big patch for merging common include files of the new hpcarm tree and the old arm32
tree into the new arm substree. All moved files are relinked with a stub that included
the file from the new location; this might be done better later.
 1.2.4.2  12-Mar-2001  bouyer Sync with HEAD.
 1.2.4.1  23-Feb-2001  bouyer file types.h was added on branch thorpej_scsipi on 2001-03-12 13:27:24 +0000
 1.2.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.3.8.4  18-Oct-2002  nathanw Catch up to -current.
 1.3.8.3  13-Aug-2002  nathanw Catch up to -current.
 1.3.8.2  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.3.8.1  28-Apr-2001  nathanw file types.h was added on branch nathanw_sa on 2002-04-01 07:39:10 +0000
 1.3.2.2  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.3.2.1  16-Mar-2002  jdolecek Catch up with -current.
 1.4.8.1  30-Aug-2002  gehenna catch up with -current.
 1.8.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.8.2.1  03-Aug-2004  skrll Sync with HEAD
 1.11.16.2  03-Sep-2007  yamt sync with head.
 1.11.16.1  21-Jun-2006  yamt sync with head.
 1.13.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.14.34.2  23-Jan-2008  bouyer Sync with HEAD.
 1.14.34.1  20-Jan-2008  bouyer Sync with HEAD
 1.14.28.1  18-Feb-2008  mjf Sync with HEAD.
 1.14.20.1  27-Jan-2008  chris Sync to HEAD.
 1.16.28.1  15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.16.10.1  11-Mar-2010  yamt sync with head
 1.17.4.2  21-Apr-2011  rmind sync with head
 1.17.4.1  05-Mar-2011  rmind sync with head
 1.18.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.20.2.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.20.2.2  30-Oct-2012  yamt sync with head
 1.20.2.1  17-Apr-2012  yamt sync with head
 1.21.8.2  28-Nov-2012  matt Make __swp for the kernel return unsigned char and restore __cpu_simple_lock_t
(match what -HEAD has).
 1.21.8.1  28-Nov-2012  matt Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.
 1.23.2.3  03-Dec-2017  jdolecek update from HEAD
 1.23.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.23.2.1  23-Jun-2013  tls resync from head
 1.24.2.2  18-May-2014  rmind sync with head
 1.24.2.1  28-Aug-2013  rmind sync with head
 1.26.2.1  10-Aug-2014  tls Rebase.
 1.29.2.3  05-Feb-2017  skrll Sync with HEAD
 1.29.2.2  19-Mar-2016  skrll Sync with HEAD
 1.29.2.1  22-Sep-2015  skrll Sync with HEAD
 1.32.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.32.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.34.14.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.34.14.1  10-Jun-2019  christos Sync with HEAD
 1.34.12.2  20-Oct-2018  pgoyette Sync with head
 1.34.12.1  28-Jul-2018  pgoyette Sync with HEAD
 1.38.6.2  25-Jan-2020  ad Sync with head.
 1.38.6.1  17-Jan-2020  ad Sync with head.

RSS XML Feed