Home | History | Annotate | Download | only in include
History log of /src/sys/arch/i386/include/types.h
RevisionDateAuthorComments
 1.95  08-May-2025  imil Rename BOOTCYCLETIME kernel option and subsequent files to BOOT_DURATION
 1.94  06-May-2025  imil Add BOOTCYCLETIME option to print kernel boot time

Introduce a new kernel option, BOOTCYCLETIME, which will print
the time taken for the kernel to boot on (for now) amd64 and i386
architectures.
 1.93  01-Apr-2021  simonb branches: 1.93.22;
Whitespace: #define<tab>
 1.92  01-Aug-2020  jdolecek branches: 1.92.2; 1.92.4;
move __HAVE_PCI_MSI_MSIX to <x86/pci_machdep_common.h>
 1.91  04-May-2020  jdolecek add support for using MSI for XenPV Dom0

use PHYSDEVOP_map_pirq to get the pirq/gsi for MSI/MSI-X, switch also INTx
to use it instead of PHYSDEVOP_alloc_irq_vector

MSI confirmed working with single-vector MSI for wm(4), ahcisata(4), bge(4)

XXX added some provision for MSI-X, but it doesn't actually work (no interrupts
delivered), needs some further investigation; disable MSI-X for XENPV
via flag in x86/pci/pci_machdep.c
 1.90  23-Sep-2019  kamil Disable __NO_STRICT_ALIGNMENT on amd64/i386 for UBSan builds

This change allows to pick code paths in the kernel that are tuned for
alignment sensitive (and stricted in C meaning) code paths. In particular
the IPv6 code uses this heavily and skips whenever possible the process
of aligning of networking data.

With this modification all ATF tests are executed on amd64 without
triggering any UBSan reports in dmesg.

In theory __NO_STRICT_ALIGNMENT could be tuned for vax and m68k, however
these machines are still unsupported in LLVM sanitizers and syzkaller.

sys/netinet6/scope6.c:404:6, member access within misaligned address 0xfffffaea81276086 for type 'struct in6_addr' which requires 4 byte alignment
Reported-by: syzbot+a86f58d17685317b3df9@syzkaller.appspotmail.com

sys/net/rtsock_shared.c:629:41, member access within misaligned address 0xffffddb5db3ff04c for type 'struct rt_msghdr50' which requires 8 byte alignment
Reported-by: syzbot+0a3a022bc9d2b8880c16@syzkaller.appspotmail.com
 1.89  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.88  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.87  27-Feb-2016  tls branches: 1.87.16; 1.87.18;
Add cpu_rng, a framework for simple on-CPU random number generators.
 1.86  24-Jan-2016  christos expose __vaddr_t for segments.h since it is a userland api.
 1.85  23-Jan-2016  christos expose the kernel types for standalone code.
 1.84  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.83  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.82  21-Aug-2015  pooka Make it possible to explicitly disable MSI/MSIX with NO_PCI_MSI_MSIX.

Some platforms, e.g. linux uio-pci-generic, do not support MSI at all.

XXX: does MSI being defined intentionally depend on _KERNEL_OPT on amd64
but not i386?
 1.81  27-Apr-2015  knakahara add x86 MD MSI/MSI-X support code.
 1.80  22-Apr-2015  pooka Revise rhetoric for why __HAVE_ATOMIC64_OPS is defined with _KERNEL even
though we don't know for sure that the target i386 CPU will support them.
 1.79  24-Apr-2014  christos branches: 1.79.4;
Explain what is going on with the 64 bit atomic ops, and restore them
for pure kernel use.
 1.78  22-Apr-2014  christos we don't really have 64 bit atomic ops.
 1.77  03-Apr-2014  christos branches: 1.77.2;
we have cpu_bootconf()
 1.76  01-Dec-2013  christos revert fpu/pcu changes until we figure out what's wrong; they cause random
freezes
 1.75  23-Oct-2013  drochner Use the MI "pcu" framework for bookkeeping of npx/fpu states on x86.
This reduces the amount of MD code enormously, and makes it easier
to implement support for newer CPU features which require more fpu
state, or for fpu usage by the kernel.
For access to FPU state across CPUs, an xcall kthread is used now
rather than a dedicated IPI.
No user visible changes intended.
 1.74  06-Jul-2011  dyoung branches: 1.74.2; 1.74.12; 1.74.16;
Implement bus_space_tag_create() and _destroy().

Factor bus_space_reserve(), bus_space_release(), et cetera out of
bus_space_alloc(), bus_space_map(), bus_space_free(), bus_space_unmap(),
et cetera.

For i386 and amd64, activate the use of <machine/bus_defs.h> and
<machine/bus_funcs.h> by #defining __HAVE_NEW_STYLE_BUS_H in
their respective types.h. While I'm here, remove unnecessary
__HAVE_DEVICE_REGISTER #defines.
 1.73  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.72  12-Mar-2011  joerg branches: 1.72.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.71  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.70  22-Dec-2010  christos branches: 1.70.2; 1.70.4;
Make __HAVE_CPU_DATA_FIRST true
 1.69  14-Dec-2010  haad Revert change made in revision 1.66 by ad@ this is not true and 64bit
atomic ops should be enabled in libc by default.
 1.68  21-Sep-2010  jym Promote paddr_t to 64 bits for i386 userland (non PAE and PAE).

paddr_t has limited interest in userland, and should only be used by specific
code like kvm(3) (for VA => PA translations). To support non PAE and PAE
kernels simultaneously in kvm(3), promote paddr_t to 64 bits.

No objection on current-users@. See also:

http://mail-index.netbsd.org/current-users/2010/09/07/msg014249.html

Kernel remains untouched by this change. In-kernel 64 bits for paddr_t is for
a future commit (Yes, I do not forget about that :) )
 1.67  11-Dec-2009  matt branches: 1.67.2; 1.67.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.66  28-Jun-2009  ad Define __HAVE_ATOMIC64_OPS only in kernel, since it doesn't work in
userspace on the i486.
 1.65  19-Apr-2009  ad cpuctl:

- Add interrupt shielding (direct hardware interrupts away from the
specified CPUs). Not documented just yet but will be soon.

- Redo /dev/cpu time_t compat so no kernel changes are needed.

x86:

- Make intr_establish, intr_disestablish safe to use when !cold.

- Distribute hardware interrupts among the CPUs, instead of directing
everything to the boot CPU.

- Add MD code for interrupt sheilding. This works in most cases but there is
a bug where delivery is not accepted by an LAPIC after redistribution. It
also needs re-balancing to make things fair after interrupts are turned
back on for a CPU.
 1.64  05-Apr-2009  tsutsui Use #define<tab> consistently.
 1.63  05-Apr-2009  tsutsui Remove __HAVE_UFS2_BOOT since it belongs to sysinst for now.
"Feel free to change it" by ad@.
 1.62  04-Apr-2009  ad +__HAVE_UFS2_BOOT
 1.61  29-Mar-2009  ad _lwp_setprivate: provide the value to MD code if a hook is present.

This will be used to support TLS. The MD method must match the ELF TLS spec
for that CPU architecture (if there is a spec).

At this time it is only implemented for i386, where it means setting the
per-thread base address for %gs. Please implement this for your platform!
 1.60  26-Oct-2008  mrg branches: 1.60.2; 1.60.8;
- use _I386_FOO_H for multi-include protection
- use <i386/foo.h> in a couple of places
 1.59  21-Feb-2008  ad branches: 1.59.2; 1.59.6; 1.59.12;
#define __HAVE_ATOMIC_AS_MEMBAR, indicating that:

- atomic_cas_ni() does an implicit membar_exit()
- all other atomic operations do an implicit membar_sync()

While this might seem kind of arbitrary it's the basis for some important
optimizations.
 1.58  23-Jan-2008  bouyer branches: 1.58.2;
Merge the bouyer-xeni386 branch. This brings in PAE support to NetBSD xeni386
(domU only). PAE support is enabled by 'options PAE', see the new XEN3PAE_DOMU
and INSTALL_XEN3PAE_DOMU kernel config files.

See the comments in arch/i386/include/{pte.h,pmap.h} to see how it works.
In short, we still handle it as a 2-level MMU, with the second level page
directory being 4 pages in size. pmap switching is done by switching the
L2 pages in the L3 entries, instead of loading %cr3. This is almost required
by Xen, which handle the last L2 page (the one mapping 0xc0000000 - 0xffffffff)
in a very special way. But this approach should also work for native PAE
support if ever supported (in fact, the pmap should almost suport native
PAE, what's missing is bootstrap code in locore.S).
 1.57  20-Jan-2008  joerg Now that __HAVE_TIMECOUNTER and __HAVE_GENERIC_TODR are invariants,
remove the conditionals and the code associated with the undef case.
 1.56  15-Jan-2008  joerg Introduce optional cpu_offline_md to execute MD actions at the end of
cpu_offline. Use this on amd64/i386 to force a FPU save. As this was
triggered by npxsave_cpu/fpusave_cpu not working for a different CPU,
remove the cpu_info argument and adjust npxsave_*/fpusave_* to use bool
for the save.

OK ad@
 1.55  11-Jan-2008  bouyer Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the
branch is still active and will see i386PAE support developement).
Sumary of changes:
- switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c
pmap bootstrap.
- merge back most of xen/i386/ to i386/i386
- change the build to reduce diffs between i386 and amd64 in file locations
- remove include files that were identical to the i386/amd64 counterparts,
the build will find them via the xen-ma/machine link.
 1.54  04-Jan-2008  yamt i386:
- make tss per-cpu. this considerably speeds up context switch for,
at least, pentium4, where ltr instruction seems very slow.
i386, xen:
- kill cpu_maxproc.
kvm86:
- adapt to per-cpu tss.
- cleanup and simplify.
- move kvm86_mp_lock to more meaningful place.
- disable preemption during a call.
 1.53  20-Dec-2007  ad 64-bit atomic ops for i386.
 1.52  17-Oct-2007  garbled branches: 1.52.2; 1.52.4; 1.52.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.51  14-Jul-2007  ad branches: 1.51.10;
Generic soft interrupts are mandatory.
 1.50  09-Feb-2007  ad branches: 1.50.6; 1.50.14;
Merge newlock2 to head.
 1.49  03-Sep-2006  bjh21 branches: 1.49.2;
Nothing in the kernel now tests __HAVE_NWSCONS, so stop defining it everywhere.
 1.48  03-Sep-2006  gdamore Convert i386 to use common TODR code. Not tested, but Christos says he'll
test it for me right now. :-)
 1.47  07-Jun-2006  kardel convert to timecounters (from branch simonb-timecounters)
 1.46  24-Dec-2005  perry branches: 1.46.4; 1.46.6; 1.46.8; 1.46.14;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.45  18-Jan-2004  martin branches: 1.45.16;
Do not export __HAVE_RAS to userland. Applications are supposed to try
rasctl() and detect failure with EOPNOTSUPP.
 1.44  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.43  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.42  28-Apr-2003  bjh21 branches: 1.42.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.41  17-Dec-2002  gmcgarry Move to MI runqueue functions.
 1.40  16-Dec-2002  jdolecek use the __HAVE_CPU_MAXPROC hook to limit kern.maxproc to number
of available GDT slots
add code in init386() to force maxproc to be maximum cpu_maxproc()

this fixes port-i386/1635 by John Kohl
 1.39  01-Oct-2002  fvdl Merge Bill Sommerfeld's i386 MP branch. This code has some known
caveats, but works quite well in a lot of MP cases, and all
UP cases that I have tested. Parts of this will hopefully be
reworked in the not-too-distant future.
 1.38  23-Sep-2002  gmcgarry Back-out previous.
 1.37  22-Sep-2002  simonb Use "#define\t" instead of "#define ".
 1.36  22-Sep-2002  gmcgarry MD component of the new cpu_switch() interface. Introduces nextrunqueue(),
cpu_idle() and new cpu_switch() to replace the old cpu_switch()
which did the lot. Runs leaner without overly blocking interrupts.

Includes cleanup of the RAS code to make use of callee-saved registers.

Benchmarks on DX4 @ 100MHz reveal a slight performance improvement
but probably not statistically signficant. More TBD to verify this.

Changes passed a pounding on Athlon @ 1GHz too.
 1.35  22-Sep-2002  gmcgarry Add __HAVE_MD_RUNQUEUE flag for MD code to override MI run queue primitives.
 1.34  28-Aug-2002  gmcgarry RAS support for i386.
 1.33  07-Aug-2002  tron Redo last change. "pmc_evid_t" and "pmc_ctr_t" need to be visible for
userland because they are used in "sys/pmc.h".
 1.32  07-Aug-2002  tron Embed "pmc_evid_t" and "pmc_ctr_t" into "if defined(_KERNEL)" and use
"__uint64_t" from "int_types.h". This fixes "lint" errors while
building "libc".
 1.31  07-Aug-2002  briggs define pmc_evid_t, pmc_ctr_t.
 1.30  28-Feb-2002  simonb branches: 1.30.8;
Use "#define<tab>".
 1.29  28-Apr-2001  kleink branches: 1.29.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.28  14-Apr-2001  thorpej Generic soft interrupt implementation for NetBSD/i386. This could
probably be tuned somewhat, but this is a stop-gap measure to hold
us until Bill Sommerfeld's new interrupt code comes in from the
MP branch.
 1.27  07-Jan-2001  fvdl branches: 1.27.2;
Define __HAVE_OLD_DISKLABEL in <machine/types.h> for i386 (where the
other __HAVE_* defines are). Conditionalize definition of old
disklabel struct and ODIOC* definitions on it, allowing other ports
to bump the number of partitions in the label if they want to
(see comment in sys/disklabel.h).
 1.26  03-Jan-2001  takemura replace 'long long' with int64_t to compile stand alone program with
compiler other than GCC.
 1.25  11-Dec-2000  mycroft Introduce 2 new flags in types.h:
* __HAVE_SYSCALL_INTERN. If this is defined, e_syscall is replaced by
e_syscall_intern, which is called at key places in the kernel. This can be
used to set a MD syscall handler pointer. This obsoletes and replaces the
*_HAS_SEPARATED_SYSCALL flags.
* __HAVE_MINIMAL_EMUL. If this is defined, certain (deprecated) elements in
struct emul are omitted.
 1.24  06-Jun-2000  sommerfeld branches: 1.24.2; 1.24.4;
Replace "timestamp" with "counter" in previous change, to avoid any
possible confusion that it has anything to do with accurate
measurement of time.

New names:
__HAVE_CPU_COUNTER
cpu_counter()
cpu_hascounter()
 1.23  05-Jun-2000  sommerfeld Let rnd(4) know how to read the (pentium and higher) cycle counter:

If __HAVE_CPU_TIMESTAMP is defined, <machine/rnd.h> exists and defines
two functions:
1) u_int32_t cpu_timestamp(void);
returns the 32 low order bits of a reasonably high frequency counter.
2) int cpu_havetimestamp(void);
returns non-zero if cpu_timestamp() actually works.

The timestamp counter should run at a frequency greater than 1 MHz
(otherwise, microtime would be sufficient); other than that, the exact
frequency and origin of the counter are unspecified.
 1.22  05-Feb-2000  cgd branches: 1.22.4;
clean up (group, sort) __HAVE_* defines
 1.21  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.20  05-Feb-1999  thorpej branches: 1.20.8;
The x86 does not have strict alignment requirements, so define
__NO_STRICT_ALIGNMENT here.
 1.19  13-Aug-1998  thorpej Garbage-collect vm_offset_t and vm_size_t.
 1.18  13-Aug-1998  eeh Merge paddr_t changes into the main branch.
 1.17  14-Jun-1998  kleink branches: 1.17.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.16  22-Mar-1998  drochner tell drivers that this port knows about the new wscons code
(and generates the NWSCONS etc include files)
 1.15  22-Mar-1998  drochner switch to non-BROKEN_INDIRECT_CONFIG
 1.14  05-Nov-1997  thorpej Mark uses of long long with /* LONGLONG */ for lint. From
Chris Demetriou <cgd@pa.dec.com>.
 1.13  05-Dec-1996  cgd branches: 1.13.14;
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.12  24-Dec-1995  mycroft Enable paging of the user area.
 1.11  06-Jul-1995  cgd add <sys/cdefs.h> inclusions. namsspace-protect physadr, label_t
def'ns against _POSIX_SOURCE and _ANSI_SOURCE.
 1.10  28-Jun-1995  cgd remove unused cpu_exec() definitions. moved "broken swap" markers, for
ports that still need it, to types.h.
 1.9  20-Nov-1994  christos Included <sys/cdefs.h> since this file is now using __signed.
It broke non gnu compilers.
 1.8  27-Oct-1994  cgd new RCS ID format.
 1.7  20-Oct-1994  cgd update for new syscall args description mechanism
 1.6  20-Jul-1994  cgd define __BIT_TYPES_DEFINED__ for compatibility with things like BIND and nvi
 1.5  24-May-1994  cgd branches: 1.5.2;
use __signed instead of signed, per Lite
 1.4  23-May-1994  cgd can't use u_long
 1.3  14-Mar-1994  cgd add basic integral types (a la sparc port) that new nvi wants.
 1.2  22-May-1993  cgd add rcsids to everything and clean up headers
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.5.2.1  20-Jul-1994  cgd update from trunk.
 1.13.14.1  05-Nov-1997  thorpej Update from trunk: Mark usese of long long with /* LONGLONG */ for lint.
 1.17.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.17.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.20.8.5  21-Apr-2001  bouyer Sync with HEAD
 1.20.8.4  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.20.8.3  05-Jan-2001  bouyer Sync with HEAD
 1.20.8.2  13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.20.8.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.22.4.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.24.4.7  31-Aug-2002  sommerfeld SMP branch resync. Mostly RAS support.
 1.24.4.6  19-Aug-2002  sommerfeld merged with -current as of today.
rearranged gdt init to deal with KVM86 changes; however, KVM86 has no
chance of working yet; good thing it's not part of GENERIC
 1.24.4.5  27-Apr-2002  sommerfeld Merge with current as of today
 1.24.4.4  30-Apr-2001  sommerfeld Merge sommerfeld_i386mp_1 branch with -current as of today.
GENERIC.MP kernel boots and runs multiuser on my ABIT BP6
 1.24.4.3  07-Jan-2001  sommerfeld Snapshot of merge-in-progress with -current.

[Not expected to build]. Catch up with the last N months worth of
changes to -current.
 1.24.4.2  07-Jan-2001  sommerfeld Partial merge with -current, largely to pick up __HAVE_OLD_DISKLABEL.
 1.24.4.1  06-Jun-2000  sommerfeld file types.h was added on branch sommerfeld_i386mp_1 on 2001-01-07 18:46:22 +0000
 1.24.2.1  01-May-2001  he Pull up revision 1.27 (via patch, requested by fvdl):
Increase the number of BSD disklabel partitions on i386 to 16.
 1.27.2.6  19-Dec-2002  thorpej Sync with HEAD.
 1.27.2.5  18-Oct-2002  nathanw Catch up to -current.
 1.27.2.4  17-Sep-2002  nathanw Catch up to -current.
 1.27.2.3  13-Aug-2002  nathanw Catch up to -current.
 1.27.2.2  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.27.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.29.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.29.2.2  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.29.2.1  16-Mar-2002  jdolecek Catch up with -current.
 1.30.8.1  31-Aug-2002  gehenna catch up with -current.
 1.42.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.42.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.42.2.1  03-Aug-2004  skrll Sync with HEAD
 1.45.16.9  27-Feb-2008  yamt sync with head.
 1.45.16.8  11-Feb-2008  yamt remove __HAVE_LAZY_MBUF for now.
 1.45.16.7  04-Feb-2008  yamt sync with head.
 1.45.16.6  21-Jan-2008  yamt sync with head
 1.45.16.5  03-Sep-2007  yamt sync with head.
 1.45.16.4  26-Feb-2007  yamt sync with head.
 1.45.16.3  30-Dec-2006  yamt sync with head.
 1.45.16.2  21-Jun-2006  yamt sync with head.
 1.45.16.1  07-Jul-2005  yamt define __HAVE_LAZY_MBUF for i386 and amd64.
 1.46.14.1  19-Jun-2006  chap Sync with head.
 1.46.8.3  14-Sep-2006  yamt sync with head.
 1.46.8.2  03-Sep-2006  yamt sync with head.
 1.46.8.1  26-Jun-2006  yamt sync with head.
 1.46.6.1  04-Feb-2006  simonb Define __HAVE_TIMECOUNTER.
 1.46.4.1  09-Sep-2006  rpaulo sync with head
 1.49.2.1  29-Dec-2006  ad Checkpoint work in progress.
 1.50.14.1  03-Oct-2007  garbled Sync with HEAD
 1.50.6.1  15-Jul-2007  ad Sync with head.
 1.51.10.3  23-Mar-2008  matt sync with HEAD
 1.51.10.2  09-Jan-2008  matt sync with HEAD
 1.51.10.1  06-Nov-2007  matt sync with HEAD
 1.52.8.7  23-Jan-2008  bouyer Sync with HEAD.
 1.52.8.6  19-Jan-2008  bouyer Sync with HEAD
 1.52.8.5  13-Jan-2008  bouyer Work in progress on xeni386 PAE support:
Make xeni386 build with a 64bit paddr_t. For this vaddr_t vs paddr_t vs
pointers usages had to be clarified.
If 'options PAE' is present in a Xen3 kernel, switch paddr_t, pd_entry_t
and pt_entry_t to 64bits, and add the PAE entry in the __xen_guest ELF section.
 1.52.8.4  11-Jan-2008  bouyer Xen has generic todr too
 1.52.8.3  10-Jan-2008  bouyer Change xeni386 build to match xenamd64:
- machine/ points to xen/include/i386
- remove includes that were identical to the i386/include/ ones; the build
will find them though the xen-ma/machine link.
- include xen files using xen/ not machine/
 1.52.8.2  08-Jan-2008  bouyer Sync with HEAD
 1.52.8.1  02-Jan-2008  bouyer Sync with HEAD
 1.52.4.1  26-Dec-2007  ad Sync with head.
 1.52.2.1  18-Feb-2008  mjf Sync with HEAD.
 1.58.2.1  24-Mar-2008  keiichi sync with head.
 1.59.12.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.59.6.4  09-Oct-2010  yamt sync with head
 1.59.6.3  11-Mar-2010  yamt sync with head
 1.59.6.2  18-Jul-2009  yamt sync with head.
 1.59.6.1  04-May-2009  yamt sync with head.
 1.59.2.2  17-Jan-2009  mjf Sync with HEAD.
 1.59.2.1  21-Feb-2008  mjf file types.h was added on branch mjf-devfs2 on 2009-01-17 13:28:04 +0000
 1.60.8.6  27-Aug-2011  jym Sync with HEAD. Most notably: uvm/pmap work done by rmind@, and MP Xen
work of cherry@.

No regression observed on suspend/restore.
 1.60.8.5  28-Mar-2011  jym Cure sync hiccups. Code with compile errors is not really useful, heh.
 1.60.8.4  28-Mar-2011  jym Sync with HEAD. TODO before merge:
- shortcut for suspend code in sysmon, when powerd(8) is not running.
Borrow ``xs_watch'' thread context?
- bug hunting in xbd + xennet resume. Rings are currently thrashed upon
resume, so current implementation force flush them on suspend. It's not
really needed.
 1.60.8.3  01-Nov-2009  jym Sync with HEAD.
 1.60.8.2  23-Jul-2009  jym Sync with HEAD.
 1.60.8.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.60.2.1  28-Apr-2009  skrll Sync with HEAD.
 1.67.4.3  21-Apr-2011  rmind sync with head
 1.67.4.2  05-Mar-2011  rmind sync with head
 1.67.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.67.2.1  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.70.4.1  05-Mar-2011  bouyer Sync with HEAD
 1.70.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.72.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.74.16.1  18-May-2014  rmind sync with head
 1.74.12.2  03-Dec-2017  jdolecek update from HEAD
 1.74.12.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.74.2.1  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.77.2.1  10-Aug-2014  tls Rebase.
 1.79.4.3  19-Mar-2016  skrll Sync with HEAD
 1.79.4.2  22-Sep-2015  skrll Sync with HEAD
 1.79.4.1  06-Jun-2015  skrll Sync with HEAD
 1.87.18.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.87.18.1  10-Jun-2019  christos Sync with HEAD
 1.87.16.1  28-Jul-2018  pgoyette Sync with HEAD
 1.92.4.1  03-Apr-2021  thorpej Sync with HEAD.
 1.92.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.93.22.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed