master
create new machine/_float.h which is namespace clean. create a new MI float.h which pulls in and defines the values that are needed from there, and repair sys/limits.h so that it defines the values it needs as well (depending on POSIX version, XPG version, etc). guenther has a more exact selection of that coming for limits.h. this also fixes a few mistakes for the vax. reviewed by kettenis and guenther.
all platforms, kernel: remove __HAVE_CLOCKINTR symbol
_C_LABEL() and _ASM_LABEL() are no longer useful in the "everything is ELF" world. Eliminate use of them in landisk code.
split the int and long implementations to avoid compiler warnings.
Preliminary bits for SuperH-based ports, based on NetBSD/sh3 codebase with minor changes.
First pass at removing clauses 3 and 4 from NetBSD licenses.
Remove unused *_CACHE_FLUSH() macros.
Add __strong_alias macros for all architectures to be able to alias another symbol without weak attribute. To be used in libc and libm soon. Agreed by kettenis@, guenther@, matthew@.
Do not store the value of sp in struct clockframe, for nothing has a need for it.
Remove typedef of db_addr_t; mpi converted the users of it to vaddr_t already back in 2019.
Use #ifndef _MACHINE_DISKLABEL_H_ everywhere. Replace _ARM_DISKLABEL_H_ and _SH_DISKLABEL_H_ with _MACHINE_DISKLABEL_H_. Add the guard to loongson and octeon. The #defines are not used anywhere else in the tree so no functional change.
Add elf_aux_info(3)
sprinle some casts to quiet compiler; ok millert
In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except leaving out the size, so that ELFNAME2(exec,makecmds) becomes exec_elf_makecmds instead of exec_elf{32,64}_makecmds and then delete the ELFNAME2() and ELFNAMEEND() macros.
Also enclose variable names with external linkage in __BEGIN_DECLS.
Some basic fpu trap handling.
Save and restore 'gbr' register when enter/leaving the kernel, and use it for the TCB pointer. Eliminate __cerror.
- replace dtoa w/ David's gdtoa, version 2008-03-15 - provide proper dtoa locks - use the real strtof implementation - add strtold, __hdtoa, __hldtoa - add %a/%A support - don't lose precision in printf, don't round to double anymore - implement extended-precision versions of libc functions: fpclassify, isnan, isinf, signbit, isnormal, isfinite, now that the ieee.h is fixed - separate vax versions of strtof, and __hdtoa - add complex math support. added functions: cacos, casin, catan, ccos, csin, ctan, cacosh, casinh, catanh, ccosh, csinh, ctanh, cexp, clog, cabs, cpow, csqrt, carg, cimag, conj, cproj, creal, cacosf, casinf, catanf, ccosf, csinf, ctanf, cacoshf, casinhf, catanhf, ccoshf, csinhf, ctanhf, cexpf, clogf, cabsf, cpowf, csqrtf, cargf, cimagf, conjf, cprojf, crealf - add fdim, fmax, fmin - add log2. (adapted implementation e_log.c. could be more acruate & faster, but it's good enough for now) - remove wrappers & cruft in libm, supposed to work-around mistakes in SVID, etc.; use ieee versions. fixes issues in python 2.6 for djm@ - make _digittoint static - proper definitions for i386, and amd64 in ieee.h - sh, powerpc don't really have extended-precision - add missing definitions for mips64 (quad), m{6,8}k (96-bit) float.h for LDBL_* - merge lead to frac for m{6,8}k, for gdtoa to work properly - add FRAC*BITS & EXT_TO_ARRAY32 definitions in ieee.h, for hdtoa&ldtoa to use - add EXT_IMPLICIT_NBIT definition, which indicates implicit normalization bit - add regression tests for libc: fpclassify and printf - arith.h & gd_qnan.h definitions - update ieee.h: hppa doesn't have quad-precision, hppa64 does - add missing prototypes to gdtoaimp - on 64-bit platforms make sure gdtoa doesn't use a long when it really wants an int - etc., what i may have forgotten... - bump libm major, due to removed&changed symbols - no libc bump, since this is riding on djm's libc major crank from a day ago
Denormalization exception isn't supported on sh4, and setting bit 7 would enable inexact trap instead of setting the sticky bit. OK miod@.
sh: Use MI soft interrupt code
Kernel crash dumps and associated libkvm bits for landisk.
Remove SIZE_MAX from limits.h. It was added years ago before we had a proper stdint.h. No ports fallout. OK guenther@ miod@
entris -> entries
Move landisk to MI mutex.
NKMEMPAGES_MAX_DEFAULT is no longer used. Remove it from param.h. OK miod@
emul_native is only used for kernel threads which can't dump core, so delete coredump_trad(), uvm_coredump(), cpu_coredump(), struct md_coredump, and various #includes that are superfluous.
remove unused pmap_remove_all() ok kettenis@ claudio@
Provide mips64 with kernel-facing TCB_{GET,SET} macros that store it in struct mdproc. With that, all archs have those and the __HAVE_MD_TCB macro can be unifdef'ed as always defined.
Remove the non ELF macros ok millert
Do not include <machine/intr.h> from <sh/psl.h>, and fix <sh/cpu.h> which used to depend on <sh/psl.h> bringing <machine/intr.h>.
Move landisk to hardware floating point. At the moment the FPU context is always saved upon context switches, as FPU registers are heavily used for long long computations (don't ask). Gcc default to -m4.
Will be needed at some point.
SROP mitigation. sendsig() stores a (per-process ^ &sigcontext) cookie inside the sigcontext. sigreturn(2) checks syscall entry was from the exact PC addr in the (per-process ASLR) sigtramp, verifies the cookie, and clears it to prevent sigcontext reuse. not yet tested on landisk, sparc, *88k, socppc. ok kettenis
Move mutex, condvar, and thread-specific data routes, pthread_once, and pthread_exit from libpthread to libc, along with low-level bits to support them. Major bump to both libc and libpthread.
Normalize sentinel. Use _MACHINE_*_H_ and _<ARCH>_*_H_ properly and consitently.
Move declaration of struct vm_page_md from <machine/vmparam.h> to <machine/pmap.h> where it belongs, and compensate in <uvm/uvm_extern.h> by including <uvm/uvm_pmap.h> before <uvm/uvm_page.h>. Tested on all MACHINE_ARCH but amd64 and i386 (and hppa64).