Home | History | Annotate | Download | only in kern
History log of /src/sys/kern/kern_stub.c
RevisionDateAuthorComments
 1.50  01-Aug-2020  riastradh New functions kthread_fpu_enter/exit.

The MI definitions don't do anything but maintain a flag, but MD code
can define kthread_fpu_enter/exit_md to actually enable/disable the
FPU. (These are almost pcu_load/discard on systems that use pcu(9),
except they apply to all PCUs.)

Discussed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2020/06/20/msg026524.html

The proposed kthread flag KTHREAD_FPU is not included because I
couldn't find any particular need for it that would not be covered by
just calling kthread_fpu_enter/exit in the kthread function.
 1.49  23-May-2020  ad Move proc_lock into the data segment. It was dynamically allocated because
at the time we had mutex_obj_alloc() but not __cacheline_aligned.
 1.48  08-Oct-2019  mrg steal an idea from uwe@ and implement gcc-8 function type cast
friendly methods for sys/conf.h that needs it.

one alias per return type and first function are are needed,
though they can be stubbed to existing code. the only cost is
the symbol itself, the codegen it the same.
 1.47  27-Jan-2019  christos remove extra #endif
 1.46  27-Jan-2019  pgoyette Merge the [pgoyette-compat] branch
 1.45  12-Apr-2018  christos branches: 1.45.2;
let the modular code load the sysv modules.
 1.44  16-Dec-2017  christos branches: 1.44.2;
Fix the build: XXX this might^Wwill break module autoloading...
It is the general issue about symbol replacement during module loading and
unloading...
 1.43  02-Nov-2016  pgoyette * Split sys/kern/sys_process.c into three parts:
1 - ptrace(2) syscall for native emulation
2 - common ptrace(2) syscall code (shared with compat_netbsd32)
3 - support routines that are shared with PROCFS and/or KTRACE

* Add module glue for #1 and #2. Both modules will be built-in to the
kernel if "options PTRACE" is included in the config file (this is
the default, defined in sys/conf/std).

* Mark the ptrace(2) syscall as modular in syscalls.master (generated
files will be committed shortly).

* Conditionalize all remaining portions of PTRACE code on a new kernel
option PTRACE_HOOKS.

XXX Instead of PROCFS depending on 'options PTRACE', we should probably
just add a procfs attribute to the sys/kern/sys_process.c file's
entry in files.kern, and add PROCFS to the "#if defineds" for
process_domem(). It's really confusing to have two different ways
of requiring this file.
 1.42  28-Aug-2015  knakahara branches: 1.42.2;
fix interrupt_* stubs. reported by skrll@n.o
 1.41  24-Aug-2015  pooka to garnish, dust with _KERNEL_OPT
 1.40  17-Aug-2015  knakahara Add kernel code to support intrctl(8).
 1.39  27-Apr-2015  knakahara add pci_intr_distribute(9) for x86.
 1.38  09-Dec-2013  pooka branches: 1.38.6;
As long as we're using #ifdef to decide which stubs get generated, might
as well use __strong_alias instead of __weak_alias. Some toolchains
such as the cygwin pecoff one get weak aliases a bit wrong, so avoiding
unnecessary weak alises helps there.
 1.37  19-Feb-2012  rmind branches: 1.37.2; 1.37.4;
Remove COMPAT_SA / KERN_SA. Welcome to 6.99.3!
Approved by core@.
 1.36  31-Aug-2011  dyoung branches: 1.36.2; 1.36.6;
Add stub implementations of bus_dma_tag_create()/bus_dma_tag_destroy().
 1.35  16-Aug-2011  dyoung Protect against bugs by using __strict_weak_alias() for
bus_space_is_equal() and bus_space_handle_is_equal().
 1.34  06-Jul-2011  dyoung Add default implementations for new bus_space(9) routines.
 1.33  01-Jun-2011  alnsn kern/42030 - tracking of file descriptors by ktrace/kdump
 1.32  31-May-2011  dyoung branches: 1.32.2;
Don't use the C preprocessor to configure USERCONF. Instead, either do
or do not link in subr_userconf.c and x86_userconf.c.

Provide no-op stubs for userconf_bootinfo(), userconf_init(), and
userconf_prompt().

Delete all occurrences of #include "opt_userconf.h" as well as USERCONF
and __HAVE_USERCONF_BOOTINFO #ifdef'age.
 1.31  27-Apr-2011  joerg Remove Mach specific trace points.
 1.30  31-Jan-2011  dyoung Let the linker instead of the C preprocessor configure the kernel: make
weak aliases device_register(9) and device_register_post_config(9)
for the stub routine voidop(). Get rid of __HAVE_DEVICE_REGISTER and
__HAVE_DEVICE_REGISTER_POST_CONFIG.
 1.29  13-Jun-2010  simonb branches: 1.29.2; 1.29.4;
KNF nit.
 1.28  28-Apr-2010  dyoung Add data types, function prototypes, and stub implementations
for pci_chipset_tag_create() and pci_chipset_tag_destroy(). On
architectures that support it, an MI PCI bus driver can override the
architecture's default pci(9) and pci_intr(9) implementation.

Coming up next: documentation.
After that: x86 implementation.
Last but not least: make cbb(4) use MI PCI overrides.
 1.27  26-Apr-2010  pooka Add an optional hook for adjusting module string table after load.
Currently to be used for rump "SAOS" namespace trick.
 1.26  19-Apr-2010  dyoung Add default implementations for bus_space_is_equal(9),
bus_space_tag_create(9), and bus_space_tag_destroy(9). Use
bus_space_is_equal(9) throughout the kernel to compare
bus_space_tag_t's. Tested on i386 and on sparc64.
 1.25  14-Apr-2010  pooka Need a few funny #defines in kern_syscall.c too.
 1.24  14-Apr-2010  pooka need opt_modular.h in kern_syscall
 1.23  14-Apr-2010  pooka Move routines related to syscall establishment from kern_subr.c and
kern_stub.c to kern_syscall.c.
 1.22  03-Mar-2010  pooka branches: 1.22.2;
Remove fs_lfs now that the syscall is always defined.
 1.21  03-Nov-2009  dyoung branches: 1.21.2;
Add a kernel configuration flag, SPLDEBUG, that activates a per-CPU log
of transitions to IPL_HIGH from lower IPLs. SPLDEBUG is only available
on i386 and Xen kernels, today.

'options SPLDEBUG' adds instrumentation to spllower() and splraise() as
well as routines to start/stop debugging and to record IPL transitions:
spldebug_start(), spldebug_stop(), spldebug_raise(), spldebug_lower().
 1.20  06-Oct-2009  elad Add a (weak aliased) machdep_init() as a place to do machdep initialization
that can't happen as early as the other init functions as called from
cpu_startup() -- for example, register kauth(9) listeners.

Put unprivileged policy in the x86 code; used by i386, amd64, and xen.
 1.19  19-Jul-2009  rmind Make POSIX message queues a kernel module.
 1.18  13-Feb-2009  apb Use "defopt MODULAR" in sys/conf/files, and #include "opt_modular.h"
in all kernel sources that use the MODULAR option.
Proposed in tech-kern on 18 Jan 2009.
 1.17  11-Jan-2009  christos branches: 1.17.2;
fix lutimes.
 1.16  11-Jan-2009  christos merge christos-time_t
 1.15  20-Nov-2008  ad branches: 1.15.2;
port-amd64/39963 modules/compat_netbsd32: missing symbols on amd64
 1.14  19-Nov-2008  ad Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
 1.13  14-Nov-2008  ad Make POSIX AIO loadable as a module.
 1.12  12-Nov-2008  ad Atomic insertion/removal of groups of system call vectors at runtime with
a basic facility for rollback.

Proposed on tech-kern@.
 1.11  15-Oct-2008  wrstuden branches: 1.11.2; 1.11.8;
Add a weak alias for ktr_saupcall, so things build w/o KTRACE compiled.
 1.10  15-Oct-2008  wrstuden Merge wrstuden-revivesa into HEAD.
 1.9  01-May-2008  ad branches: 1.9.2; 1.9.6;
#error if __HAVE_PREEMPTION && !MULTIPROCESSOR.
 1.8  28-Apr-2008  ad Make the preemption switch a __HAVE instead of an option.
 1.7  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.6  24-Apr-2008  ad branches: 1.6.2;
Network protocol interrupts can now block on locks, so merge the globals
proclist_mutex and proclist_lock into a single adaptive mutex (proc_lock).
Implications:

- Inspecting process state requires thread context, so signals can no longer
be sent from a hardware interrupt handler. Signal activity must be
deferred to a soft interrupt or kthread.

- As the proc state locking is simplified, it's now safe to take exit()
and wait() out from under kernel_lock.

- The system spends less time at IPL_SCHED, and there is less lock activity.
 1.5  20-Dec-2007  dsl branches: 1.5.6; 1.5.8;
Convert all the system call entry points from:
int foo(struct lwp *l, void *v, register_t *retval)
to:
int foo(struct lwp *l, const struct foo_args *uap, register_t *retval)
Fixup compat code to not write into 'uap' and (in some cases) to actually
pass a correctly formatted 'uap' structure with the right name to the
next routine.
A few 'compat' routines that just call standard ones have been deleted.
All the 'compat' code compiles (along with the kernels required to test
build it).
98% done by automated scripts.
 1.4  27-Aug-2007  dsl branches: 1.4.2; 1.4.10; 1.4.14;
Fix inverted test in ktrpoint(), NAMI traces weren't being generated.
Also inline the 'ktrace_on' part of the test.
 1.3  15-Aug-2007  ad Changes to make ktrace LKM friendly and reduce ifdef KTRACE. Proposed
on tech-kern.
 1.2  03-Mar-2007  itohy branches: 1.2.2; 1.2.10; 1.2.14;
Remove extra space so that symbol renaming works properly.
 1.1  10-Feb-2007  ad branches: 1.1.2; 1.1.4;
A quick hack to get things building again: put back the SA system calls
with no arguments, and alias them to sys_nosys. To be revisited.
 1.1.4.4  21-Jan-2008  yamt sync with head
 1.1.4.3  03-Sep-2007  yamt sync with head.
 1.1.4.2  26-Feb-2007  yamt sync with head.
 1.1.4.1  10-Feb-2007  yamt file kern_stub.c was added on branch yamt-lazymbuf on 2007-02-26 09:11:11 +0000
 1.1.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.2.14.2  03-Sep-2007  jmcneill Sync with HEAD.
 1.2.14.1  16-Aug-2007  jmcneill Sync with HEAD.
 1.2.10.1  03-Sep-2007  skrll Sync with HEAD.
 1.2.2.2  09-Oct-2007  ad Sync with head.
 1.2.2.1  20-Aug-2007  ad Sync with HEAD.
 1.4.14.1  02-Jan-2008  bouyer Sync with HEAD
 1.4.10.1  26-Dec-2007  ad Sync with head.
 1.4.2.1  09-Jan-2008  matt sync with HEAD
 1.5.8.1  18-May-2008  yamt sync with head.
 1.5.6.2  17-Jan-2009  mjf Sync with HEAD.
 1.5.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.6.2.5  11-Aug-2010  yamt sync with head.
 1.6.2.4  11-Mar-2010  yamt sync with head
 1.6.2.3  19-Aug-2009  yamt sync with head.
 1.6.2.2  04-May-2009  yamt sync with head.
 1.6.2.1  16-May-2008  yamt sync with head.
 1.9.6.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.9.6.1  19-Oct-2008  haad Sync with HEAD.
 1.9.2.3  15-Oct-2008  wrstuden Add alias for ktr_saupcall, so things build w/o KTRACE.
 1.9.2.2  21-Jul-2008  wrstuden Add support for compiling SA as an option. Implied by COMPAT_40.

i386 kernels both with COMPAT_40 and with no compat options (and thus
no SA) compile.

No functional changes intended.
 1.9.2.1  28-May-2008  wrstuden Turn off stubs for SA syscalls when we didn't have SA.
 1.11.8.1  05-Feb-2011  cliff - include opt_multiprocessor.h for explicit MULTIPROCESSOR dependency
 1.11.2.2  03-Mar-2009  skrll Sync with HEAD.
 1.11.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.15.2.3  28-Dec-2008  christos only include fs_lfs.h for _KERNEL_OPT
 1.15.2.2  20-Nov-2008  christos catch up with head.
 1.15.2.1  20-Nov-2008  christos file kern_stub.c was added on branch christos-time_t on 2008-11-20 22:21:56 +0000
 1.17.2.2  23-Jul-2009  jym Sync with HEAD.
 1.17.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.21.2.2  17-Aug-2010  uebayasi Sync with HEAD.
 1.21.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.22.2.5  12-Jun-2011  rmind sync with head
 1.22.2.4  31-May-2011  rmind sync with head
 1.22.2.3  05-Mar-2011  rmind sync with head
 1.22.2.2  03-Jul-2010  rmind sync with head
 1.22.2.1  30-May-2010  rmind sync with head
 1.29.4.1  08-Feb-2011  bouyer Sync with HEAD
 1.29.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.32.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.36.6.1  24-Feb-2012  mrg sync to -current.
 1.36.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.36.2.1  17-Apr-2012  yamt sync with head
 1.37.4.1  18-May-2014  rmind sync with head
 1.37.2.2  03-Dec-2017  jdolecek update from HEAD
 1.37.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.38.6.3  05-Dec-2016  skrll Sync with HEAD
 1.38.6.2  22-Sep-2015  skrll Sync with HEAD
 1.38.6.1  06-Jun-2015  skrll Sync with HEAD
 1.42.2.1  04-Nov-2016  pgoyette Sync with HEAD
 1.44.2.3  16-Apr-2018  pgoyette Sync with HEAD, resolve some conflicts
 1.44.2.2  12-Apr-2018  pgoyette Merge christos's recent changes on HEAD
 1.44.2.1  10-Mar-2018  pgoyette Revert changes from rev 1.44

Now that the kernel compat library is no longer being built and
included as a .o file, the original build-break has gone.

Note that reverting 1.44 will also un-break the autoloading of
the sysv_ipc module.
 1.45.2.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.45.2.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed