Home | History | Annotate | Download | only in include
History log of /src/sys/arch/arm/include/proc.h
RevisionDateAuthorComments
 1.20  10-Feb-2024  andvar Fix various typos in comments, log messages and documentation.
 1.19  14-Aug-2020  skrll Mirror the changes to aarch64 and

- Switch to TPIDRPRW_IS_CURLWP, because curlwp is accessed much more often
by MI code. It also makes curlwp preemption safe,

- Make ASTs operate per-LWP rather than per-CPU, otherwise sometimes LWPs
can see spurious ASTs (which doesn't cause a problem, it just means some
time may be wasted).

- Make sure ASTs are always set on the same CPU as the target LWP, and
delivered via IPI if posted from a remote CPU so that they are resolved
quickly.

- Add some cache line padding to struct cpu_info.

- Add a memory barrier in a couple of places where ci_curlwp is set. This
is needed whenever an LWP that is resuming on the CPU could hold an
adaptive mutex. The barrier needs to drain the CPU's store buffer, so
that the update to ci_curlwp becomes globally visible before the LWP can
resume and call mutex_exit().
 1.18  31-Oct-2017  martin Allow architectures to define a macro PROC_MACHINE_ARCH(P) and
PROC_MACHINE_ARCH32(P) to override the value for sysctl hw.machine_arch
(native and netbsd32 commpat resp.).

Use these for arm and mips instead of the (not working, noisy, in case
of arm) sysctl override and #ifdef __mips__ in architecture neutral
code.
 1.17  24-Feb-2014  christos consistency in include protection
 1.16  29-Jan-2014  matt Make multiple inclusion symbols always start with _ARM_ (not _ARM32_ or
_MACHINE_).
 1.15  11-Sep-2013  matt Add md_march and PROC0_MD_INITIALIZERS
 1.14  23-Aug-2013  matt Reap LWP_VFPUSED and use PCU internal tracking.
Add bool vfp_used_p(void);
 1.13  25-Dec-2012  matt branches: 1.13.2;
Fix comment. Add MDLWP_VFPINTR
 1.12  16-Aug-2012  matt branches: 1.12.2;
small rototill.
pcb_flags is dead. PCB_NOALIGNFLT is now in stored l_md.md_flags as
MDLWP_NOALIGNFLT. This avoids a few loads of the PCB in exception handling.
pcb_tf has been moved to l_md.md_tf. Again this avoids a lot of pcb
references just to access or set this. It also means that pcb doesn't
need to accessed by MI code.
Move pcb_onfault to after the pcb union.
Add pcb_sp macro to make code prettier.
Add lwp_settrapframe(l, tf) to set the l_md.md_tf field.
Use lwp_trapframe to access it (was process_frame but that name was changed
in a previous commit).
Kill off curpcb in acorn26.
Kill the checks for curlwp being NULL.
Move TRAP_USERMODE from arm32/fault.c to frame.h and a __PROG26 version.
Replace tests for usermode with that macro.
 1.11  12-Aug-2012  matt 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.10  14-Jan-2011  rmind branches: 1.10.8; 1.10.16;
Retire struct user, remove sys/user.h inclusions. Note sys/user.h header
as obsolete. Remove USER_TO_UAREA/UAREA_TO_USER macros.

Various #include fixes and review by matt@.
 1.9  21-Nov-2009  rmind branches: 1.9.4;
Use lwp_getpcb() on ARM (and acorn26/32), clean from struct user usage.
 1.8  29-Aug-2008  matt branches: 1.8.12;
use uint32_t.
 1.7  15-Mar-2008  rearnsha branches: 1.7.4; 1.7.6; 1.7.10;
VFP support.
 1.6  05-Mar-2003  agc branches: 1.6.18; 1.6.80; 1.6.82; 1.6.102; 1.6.106;
Forward declare struct lwp as well as struct trapframe.
 1.5  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.4  17-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.3  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.2  28-Feb-2001  bjh21 branches: 1.2.4; 1.2.6; 1.2.10; 1.2.18;
PCB convergence, part the first:
Move the pointer to the current user trapframe from struct mdproc to struct
pcb (as on arm26). Only tested by compiling kernels on arm32 and
hpcarm (dnard seems to be incomplete anyway). Someone should try running one.
 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.18.1  30-Aug-2002  gehenna catch up with -current.
 1.2.10.3  31-Dec-2002  thorpej Put PMC state into mdproc, not mdlwp; the PMC state should be per-proc.

Per discussion with Allen Briggs.
 1.2.10.2  13-Aug-2002  nathanw Catch up to -current.
 1.2.10.1  14-Nov-2001  thorpej Garbage-collect the __spare0 and __spare1 fields from mdproc; they're
not used (obivously), and the space doesn't really need to be reserved.

This leaves us with an empty mdproc.

Add an empty mdlwp.
 1.2.6.1  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.4.2  12-Mar-2001  bouyer Sync with HEAD.
 1.2.4.1  28-Feb-2001  bouyer file proc.h was added on branch thorpej_scsipi on 2001-03-12 13:27:23 +0000
 1.6.106.2  28-Sep-2008  mjf Sync with HEAD.
 1.6.106.1  03-Apr-2008  mjf Sync with HEAD.
 1.6.102.1  24-Mar-2008  keiichi sync with head.
 1.6.82.1  23-Mar-2008  matt sync with HEAD
 1.6.80.1  21-Mar-2008  chris Sync with head.
 1.6.18.1  17-Mar-2008  yamt sync with head.
 1.7.10.1  19-Oct-2008  haad Sync with HEAD.
 1.7.6.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.7.4.2  11-Mar-2010  yamt sync with head
 1.7.4.1  04-May-2009  yamt sync with head.
 1.8.12.1  15-Feb-2014  matt Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.
 1.9.4.1  05-Mar-2011  rmind sync with head
 1.10.16.1  28-Nov-2012  matt Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.
 1.10.8.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.10.8.2  23-Jan-2013  yamt sync with head
 1.10.8.1  30-Oct-2012  yamt sync with head
 1.12.2.3  03-Dec-2017  jdolecek update from HEAD
 1.12.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.12.2.1  25-Feb-2013  tls resync with head
 1.13.2.2  18-May-2014  rmind sync with head
 1.13.2.1  28-Aug-2013  rmind sync with head

RSS XML Feed