History log of /src/sys/arch/amd64/include/types.h |
Revision | | Date | Author | Comments |
1.73 |
| 08-May-2025 |
imil | Rename BOOTCYCLETIME kernel option and subsequent files to BOOT_DURATION
|
1.72 |
| 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.71 |
| 01-Apr-2021 |
simonb | branches: 1.71.22; Whitespace: #define<tab>
|
1.70 |
| 23-Jan-2021 |
christos | branches: 1.70.2; Document via __HAVE_BUS_SPACE_8 platforms that implement bus_space_*_8
|
1.69 |
| 01-Aug-2020 |
jdolecek | branches: 1.69.2; move __HAVE_PCI_MSI_MSIX to <x86/pci_machdep_common.h>
|
1.68 |
| 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.67 |
| 25-Apr-2020 |
bouyer | Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM guests in GENERIC. Xen support can be disabled at runtime with boot -c disable hypervisor
|
1.66 |
| 13-Apr-2020 |
maxv | Add KASAN-DMA support on aarch64, same as amd64. Discussed with skrll@.
|
1.65 |
| 17-Mar-2020 |
maxv | branches: 1.65.2; Add a redzone between the pcb and the stack. Sent to port-amd64@.
|
1.64 |
| 14-Nov-2019 |
maxv | Add support for Kernel Memory Sanitizer (kMSan). It detects uninitialized memory used by the kernel at run time, and just like kASan and kCSan, it is an excellent feature. It has already detected 38 uninitialized variables in the kernel during my testing, which I have since discreetly fixed.
We use two shadows: - "shad", to track uninitialized memory with a bit granularity (1:1). Each bit set to 1 in the shad corresponds to one uninitialized bit of real kernel memory. - "orig", to track the origin of the memory with a 4-byte granularity (1:1). Each uint32_t cell in the orig indicates the origin of the associated uint32_t of real kernel memory.
The memory consumption of these shadows is consequent, so at least 4GB of RAM is recommended to run kMSan.
The compiler inserts calls to specific __msan_* functions on each memory access, to manage both the shad and the orig and detect uninitialized memory accesses that change the execution flow (like an "if" on an uninitialized variable).
We mark as uninit several types of memory buffers (stack, pools, kmem, malloc, uvm_km), and check each buffer passed to copyout, copyoutstr, bwrite, if_transmit_lock and DMA operations, to detect uninitialized memory that leaves the system. This allows us to detect kernel info leaks in a way that is more efficient and also more user-friendly than KLEAK.
Contrary to kASan, kMSan requires comprehensive coverage, ie we cannot tolerate having one non-instrumented function, because this could cause false positives. kMSan cannot instrument ASM functions, so I converted most of them to __asm__ inlines, which kMSan is able to instrument. Those that remain receive special treatment.
Contrary to kASan again, kMSan uses a TLS, so we must context-switch this TLS during interrupts. We use different contexts depending on the interrupt level.
The orig tracks precisely the origin of a buffer. We use a special encoding for the orig values, and pack together in each uint32_t cell of the orig: - a code designating the type of memory (Stack, Pool, etc), and - a compressed pointer, which points either (1) to a string containing the name of the variable associated with the cell, or (2) to an area in the kernel .text section which we resolve to a symbol name + offset.
This encoding allows us not to consume extra memory for associating information with each cell, and produces a precise output, that can tell for example the name of an uninitialized variable on the stack, the function in which it was pushed on the stack, and the function where we accessed this uninitialized variable.
kMSan is available with LLVM, but not with GCC.
The code is organized in a way that is similar to kASan and kCSan, so it means that other architectures than amd64 can be supported.
|
1.63 |
| 04-Oct-2019 |
maxv | Add DMA instrumentation in KASAN. We note the original buffer and length in the map, and check the buffer on each bus_dmamap_sync. This allows us to find DMA buffer overflows and UAFs, which couldn't be found before because the device accesses to memory are outside of KASAN's control.
|
1.62 |
| 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.61 |
| 22-Sep-2019 |
maxv | Fix KASAN on aarch64: the bus_space_* functions are macros, so we can't redefine them. Introduce __HAVE_KASAN_INSTR_BUS, which indicates whether to instrument the bus functions. Defined on amd64 only.
|
1.60 |
| 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.59 |
| 11-Feb-2019 |
cherry | We reorganise definitions for XEN source support as follows:
XEN - common sources required for baseline XEN support. XENPV - sources required for support of XEN in PV mode. XENPVHVM - sources required for support for XEN in HVM mode. XENPVH - sources required for support for XEN in PVH mode.
|
1.58 |
| 15-Nov-2018 |
riastradh | Make the direct-map API always available, but fail if KASAN or rump.
(Only for architectures that support it at all; on others, __HAVE_MM_MD_DIRECT_MAPPED_PHYS/IO are still undefined and the functions unimplemented.)
This gives modules like zfs an opportunity to use it.
While here, fix the one caller of mm_md_direct_mapped_phys that ignored the return value (and make sure to call pmap_kremove/update before uvm_km_free).
|
1.57 |
| 20-Aug-2018 |
maxv | Add support for kASan on amd64. Written by me, with some parts inspired from Siddharth Muralee's initial work. This feature can detect several kinds of memory bugs, and it's an excellent feature.
It can be enabled by uncommenting these three lines in GENERIC:
#makeoptions KASAN=1 # Kernel Address Sanitizer #options KASAN #no options SVS
The kernel is compiled without SVS, without DMAP and without PCPU area. A shadow area is created at boot time, and it can cover the upper 128TB of the address space. This area is populated gradually as we allocate memory. With this design the memory consumption is kept at its lowest level.
The compiler calls the __asan_* functions each time a memory access is done. We verify whether this access is legal by looking at the shadow area.
We declare our own special memcpy/memset/etc functions, because the compiler's builtins don't add the __asan_* instrumentation.
Initially all the mappings are marked as valid. During dynamic allocations, we add a redzone, which we mark as invalid. Any access on it will trigger a kASan error message. Additionally, the compiler adds a redzone on global variables, and we mark these redzones as invalid too. The illegal-access detection works with a 1-byte granularity.
For now, we cover three areas:
- global variables - kmem_alloc-ated areas - malloc-ated areas
More will come, but that's a good start.
|
1.56 |
| 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.55 |
| 16-Mar-2018 |
maxv | branches: 1.55.2; Remove the __HAVE_CPU_UAREA_ROUTINES code from x86.
It was available only in amd64, and I disabled it a few months ago in order to support SVS. Regardless of SVS this option was questionable, since it made stack overflows more difficult to detect.
|
1.54 |
| 11-Jan-2018 |
maxv | branches: 1.54.2; Declare new SVS_* variants: SVS_ENTER_NOSTACK and SVS_LEAVE_NOSTACK. Use SVS_ENTER_NOSTACK in the syscall entry point, and put it before the code that touches curlwp. (curlwp is located in the direct map.)
Then, disable __HAVE_CPU_UAREA_ROUTINES (to be removed later). This moves the kernel stack into pmap_kernel(), and not the direct map. That's a change I've always wanted to make: because of the direct map we can't add a redzone on the stack, and basically, a stack overflow can go very far in memory without being detected (as far as erasing all of the system's memory).
Finally, unmap the direct map from userland.
|
1.53 |
| 05-Jan-2018 |
maxv | Add a __HAVE_PCPU_AREA option, enabled by default on native amd64 but not Xen.
With this option, the CPU structures that must always be present in the CPU's page tables are moved on L4 slot 384, which means address 0xffffc00000000000.
A new pcpu_area structure is defined. It contains shared structures (IDT, LDT), and then an array of pcpu_entry structures, indexed by cpu_index(ci). Theoretically the LDT should be in the array, but this will be done later.
During the boot procedure, cpu0 calls pmap_init_pcpu, which creates a page tree that is able to map the pcpu_area structure entirely. cpu0 then immediately maps the shared structures. Later, every CPU goes through cpu_pcpuarea_init, which allocates physical pages and kenters the relevant pcpu_entry to them. Finally, each pointer is replaced to point to pcpuarea.
The point of this change is to make sure that the structures that must always be present in the page tables have their own L4 slot. Until now their L4 slot was that of pmap_kernel, and making a distinction between what must be mapped and what does not need to be was complicated.
Even in the non-speculative-bug case this change makes some sense: there are several x86 instructions that leak the addresses of the CPU structures, and putting these structures inside pmap_kernel actually offered a way to compute the address of the kernel heap - which would have made ASLR on it plainly useless, had we implemented that.
Note that, for now, pcpuarea does not contain rsp0.
Unfortunately this change adds many #ifdefs, and makes the code harder to understand. There is also some duplication, but that will be solved later.
|
1.52 |
| 26-Jan-2017 |
christos | branches: 1.52.6; provide __HAVE_COMPAT_NETBSD32 and fix multiple include protection consistently.
|
1.51 |
| 27-Feb-2016 |
tls | branches: 1.51.2; 1.51.4; Add cpu_rng, a framework for simple on-CPU random number generators.
|
1.50 |
| 23-Jan-2016 |
christos | expose the kernel types for standalone code.
|
1.49 |
| 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.48 |
| 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.47 |
| 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.46 |
| 27-Apr-2015 |
knakahara | add x86 MD MSI/MSI-X support code.
|
1.45 |
| 03-Apr-2014 |
christos | branches: 1.45.6; we have cpu_bootconf()
|
1.44 |
| 20-Mar-2014 |
christos | make pmc compile with amd64
|
1.43 |
| 01-Dec-2013 |
christos | revert fpu/pcu changes until we figure out what's wrong; they cause random freezes
|
1.42 |
| 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.41 |
| 21-Jan-2012 |
chs | branches: 1.41.6; 1.41.10; allocate uareas contiguously and access them via the direct map.
|
1.40 |
| 04-Dec-2011 |
chs | map all of physical memory using large pages. ported from openbsd years ago by Murray Armfield, updated for changes since then by me.
|
1.39 |
| 06-Jul-2011 |
dyoung | branches: 1.39.2; 1.39.6; 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.38 |
| 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.37 |
| 12-Mar-2011 |
joerg | branches: 1.37.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.36 |
| 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.35 |
| 22-Dec-2010 |
njoly | branches: 1.35.2; 1.35.4; __HAVE_CPU_INFO_FIRST -> __HAVE_CPU_DATA_FIRST.
|
1.34 |
| 22-Dec-2010 |
christos | Make __HAVE_CPU_DATA_FIRST true
|
1.33 |
| 11-Dec-2009 |
matt | branches: 1.33.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.32 |
| 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.31 |
| 05-Apr-2009 |
tsutsui | Use #define<tab> consistently.
|
1.30 |
| 05-Apr-2009 |
tsutsui | Remove __HAVE_UFS2_BOOT since it belongs to sysinst for now. "Feel free to change it" by ad@.
|
1.29 |
| 04-Apr-2009 |
ad | +__HAVE_UFS2_BOOT
|
1.28 |
| 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.27 |
| 26-Oct-2008 |
mrg | branches: 1.27.2; 1.27.8; put the contents of these header files around #ifdef __x86_64__, and #include the <i386/foo.h> in the #else clause, making these files largely bit-size independant.
|
1.26 |
| 21-Feb-2008 |
ad | branches: 1.26.2; 1.26.6; 1.26.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.25 |
| 20-Jan-2008 |
joerg | branches: 1.25.2; Now that __HAVE_TIMECOUNTER and __HAVE_GENERIC_TODR are invariants, remove the conditionals and the code associated with the undef case.
|
1.24 |
| 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.23 |
| 08-Jan-2008 |
joerg | Switch Xen to generic TODR. Tested by Manuel Bouyer.
|
1.22 |
| 05-Jan-2008 |
yamt | remove no longer necessary cpu_maxproc.
|
1.21 |
| 29-Nov-2007 |
ad | branches: 1.21.6; __HAVE_ATOMIC64_OPS
|
1.20 |
| 23-Nov-2007 |
bouyer | Include opt_xen.h #ifdef _KERNEL_OPT instead of custom logic. Thanks to Izumi Tsutsui for pointing me at _KERNEL_OPT
|
1.19 |
| 22-Nov-2007 |
bouyer | Fix bouyer-xenamd64 merge fallout: we can #include "opt_xen.h" when #if defined(_KERNEL) && !defined(_RUMPKERNEL) && !defined(_LKM), #ifdef _KERNEL isn't enough.
|
1.18 |
| 22-Nov-2007 |
bouyer | Pull up the bouyer-xenamd64 branch to HEAD. This brings in amd64 support to NetBSD/Xen, both Dom0 and DomU.
|
1.17 |
| 17-Oct-2007 |
garbled | branches: 1.17.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.16 |
| 14-Jul-2007 |
ad | branches: 1.16.8; 1.16.10; 1.16.14; Generic soft interrupts are mandatory.
|
1.15 |
| 09-Feb-2007 |
ad | branches: 1.15.6; 1.15.12; 1.15.14; Merge newlock2 to head.
|
1.14 |
| 03-Sep-2006 |
perry | branches: 1.14.2; temporarily turn on "__HAVE_GENERIC_TODR"
|
1.13 |
| 03-Sep-2006 |
bjh21 | Nothing in the kernel now tests __HAVE_NWSCONS, so stop defining it everywhere.
|
1.12 |
| 07-Jun-2006 |
kardel | convert to timecounters (from branch simonb-timecounters)
|
1.11 |
| 24-Dec-2005 |
perry | branches: 1.11.4; 1.11.6; 1.11.8; 1.11.14; Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
|
1.10 |
| 11-Dec-2005 |
christos | merge ktrace-lwp.
|
1.9 |
| 26-Mar-2004 |
drochner | branches: 1.9.16; nothing cares about __HAVE_SIGINFO anymore, so nuke it
|
1.8 |
| 21-Jan-2004 |
mrg | back out previous; it was only required for a dead function.
|
1.7 |
| 20-Jan-2004 |
jdolecek | add register64_t which appears to be necessary for COMPAT_NETBSD32 nowadays
|
1.6 |
| 18-Jan-2004 |
martin | Do not export __HAVE_RAS to userland. Applications are supposed to try rasctl() and detect failure with EOPNOTSUPP.
|
1.5 |
| 06-Oct-2003 |
fvdl | SIGINFO support. Todo: 32bit compat support (COMPAT_NETBSD32 will not compile right now, as it won't on other platforms).
|
1.4 |
| 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.3 |
| 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.2 |
| 28-Apr-2003 |
bjh21 | branches: 1.2.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.1 |
| 26-Apr-2003 |
fvdl | Rename the x86_64 port to amd64, as this is the actual name used for the processor family now. x86_64 is kept as the MACHINE_ARCH value, since it's already widely used (by e.g. the toolchain, etc), and by other operating systems.
|
1.2.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.2.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.2.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.9.16.9 |
| 27-Feb-2008 |
yamt | sync with head.
|
1.9.16.8 |
| 21-Jan-2008 |
yamt | remove __HAVE_LAZY_MBUF for now as it's incompatible with in_cksum.S.
|
1.9.16.7 |
| 21-Jan-2008 |
yamt | sync with head
|
1.9.16.6 |
| 07-Dec-2007 |
yamt | sync with head
|
1.9.16.5 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.9.16.4 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.9.16.3 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.9.16.2 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.9.16.1 |
| 07-Jul-2005 |
yamt | define __HAVE_LAZY_MBUF for i386 and amd64.
|
1.11.14.1 |
| 19-Jun-2006 |
chap | Sync with head.
|
1.11.8.2 |
| 14-Sep-2006 |
yamt | sync with head.
|
1.11.8.1 |
| 26-Jun-2006 |
yamt | sync with head.
|
1.11.6.1 |
| 30-Apr-2006 |
kardel | define __HAVE_TIMECOUNER -> switch to timcounter for amd64
|
1.11.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.14.2.1 |
| 29-Dec-2006 |
ad | Checkpoint work in progress.
|
1.15.14.1 |
| 03-Oct-2007 |
garbled | Sync with HEAD
|
1.15.12.1 |
| 17-Apr-2007 |
thorpej | amd64 has 64-bit atomic ops
|
1.15.6.2 |
| 03-Dec-2007 |
ad | Sync with HEAD.
|
1.15.6.1 |
| 15-Jul-2007 |
ad | Sync with head.
|
1.16.14.1 |
| 17-Oct-2007 |
bouyer | amd64 (aka x86-64) support for Xen. Based on the OpenBSD port done by Mathieu Ropert in 2006. DomU-only for now. An INSTALL_XEN3_DOMU kernel with a ramdisk will boot to sysinst if you're lucky. Often it panics because a runable LWP has a NULL stack (really, it's all of l->l_addr which is has been zeroed out while the process was on the queue !) TODO: - bug fixes :) - Most of the xpq_* functions should be shared with xen/i386 - The xen/i386 assembly bootstrap code should be remplaced with the C version in xenamd64/amd64/xpmap.c - see if a config(5) trick could allow to merge xenamd64 back to xen or amd64.
|
1.16.10.3 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.16.10.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.16.10.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.16.8.2 |
| 03-Dec-2007 |
joerg | Sync with HEAD.
|
1.16.8.1 |
| 27-Nov-2007 |
joerg | Sync with HEAD. amd64 Xen support needs testing.
|
1.17.2.2 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.17.2.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.21.6.4 |
| 23-Jan-2008 |
bouyer | Sync with HEAD.
|
1.21.6.3 |
| 19-Jan-2008 |
bouyer | Sync with HEAD
|
1.21.6.2 |
| 10-Jan-2008 |
bouyer | Sync with HEAD
|
1.21.6.1 |
| 08-Jan-2008 |
bouyer | Sync with HEAD
|
1.25.2.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.26.12.1 |
| 13-Dec-2008 |
haad | Update haad-dm branch to haad-dm-base2.
|
1.26.6.2 |
| 11-Mar-2010 |
yamt | sync with head
|
1.26.6.1 |
| 04-May-2009 |
yamt | sync with head.
|
1.26.2.2 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.26.2.1 |
| 21-Feb-2008 |
mjf | file types.h was added on branch mjf-devfs2 on 2009-01-17 13:27:49 +0000
|
1.27.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.27.8.5 |
| 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.27.8.4 |
| 10-Jan-2011 |
jym | Sync with HEAD
|
1.27.8.3 |
| 24-Oct-2010 |
jym | Sync with HEAD
|
1.27.8.2 |
| 01-Nov-2009 |
jym | Sync with HEAD.
|
1.27.8.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.27.2.1 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.33.4.3 |
| 21-Apr-2011 |
rmind | sync with head
|
1.33.4.2 |
| 05-Mar-2011 |
rmind | sync with head
|
1.33.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.35.4.1 |
| 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.35.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.37.2.1 |
| 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
1.39.6.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.39.2.2 |
| 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.39.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.41.10.1 |
| 18-May-2014 |
rmind | sync with head
|
1.41.6.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.41.6.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.45.6.4 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
1.45.6.3 |
| 19-Mar-2016 |
skrll | Sync with HEAD
|
1.45.6.2 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|
1.45.6.1 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.51.4.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.51.2.1 |
| 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.52.6.2 |
| 17-Mar-2018 |
martin | Pull up the following revisions, requested by maxv in ticket #637:
sys/arch/amd64/amd64/process_machdep.c 1.33,1.34,1.35 (patch) sys/arch/amd64/include/types.h 1.55 (patch) sys/arch/x86/x86/vm_machdep.c 1.33 (patch)
- Reduce the number of places where segment register faults can occur. - Remove __HAVE_CPU_UAREA_ROUTINES.
|
1.52.6.1 |
| 16-Mar-2018 |
martin | Pull up the following revisions (via patch), requested by maxv in #635:
sys/arch/amd64/amd64/gdt.c 1.39-1.45 (patch) sys/arch/amd64/amd64/amd64/machdep.c 1.284,1.287,1.288 (patch) sys/arch/amd64/amd64/include/param.h 1.23 (patch) sys/arch/amd64/include/types.h 1.53 (patch) sys/arch/x86/include/cpu.h 1.87 (patch) sys/arch/x86/include/pmap.h 1.73,1.74 (patch) sys/arch/x86/x86/cpu.c 1.142 (patch) sys/arch/x86/x86/intr.c 1.117 (partial),1.120 (patch) sys/arch/x86/x86/pmap.c 1.276 (patch)
Initialize ist0 in cpu_init_tss. Backport __HAVE_PCPU_AREA.
|
1.54.2.4 |
| 26-Nov-2018 |
pgoyette | Sync with HEAD, resolve a couple of conflicts
|
1.54.2.3 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.54.2.2 |
| 28-Jul-2018 |
pgoyette | Sync with HEAD
|
1.54.2.1 |
| 22-Mar-2018 |
pgoyette | Synch with HEAD, resolve conflicts
|
1.55.2.4 |
| 21-Apr-2020 |
martin | Sync with HEAD
|
1.55.2.3 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.55.2.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.55.2.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.65.2.1 |
| 20-Apr-2020 |
bouyer | Sync with HEAD
|
1.69.2.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|
1.70.2.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|
1.71.22.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|