Age | Commit message (Collapse) | Author |
|
ok kettenis@
|
|
|
|
|
|
we block all interrupts that can grab the kernel lock. The simplest way to
achieve this is to make sure mutexes always raise the ipl to the highest
level that has interrupts that grab the kernel lock. This will allow us
to have "mpsafe" interrupt handlers at lower priority levels.
No change for non-MULTIPROCESSOR kernels.
|
|
ok miod kettenis
|
|
type definitions that are the same across all archs from
<machine/_types.h> to <sys/_types.h>
ok deraadt@ kettenis@ otto@
|
|
breakage lurking; ok kettenis@
|
|
the same across all archs from <machine/_types.h> to <sys/_types.h>
ok deraadt@
|
|
test period; i think 3 years ago the last bugs fell out.
ok otto beck others
|
|
|
|
it's now atomic_lock to better reflect its usage, and librthread now
features a new spinlock that's really a ticket lock.
thrlseep can handle both types of lock via a flag in the clock arg.
(temp back compat hack)
remove some old stuff that's accumulated along the way and no longer used.
some feedback from dlg, who is concerned with all things ticket lock.
(you need to boot a new kernel before installing librthread)
|
|
|
|
part of the future we have planned. middling ok from a few
|
|
|
|
lock, by adding a new BUS_INTR_ESTABLISH_MPSAFE flag for use with the
(sparc64-specific) bus_intr_establish(9) interface. Add support for this
flag to schizo(4); other bus drivers will ignore it for now. While there,
remove the BUS_INTR_ESTABLISH_FASTTRAP flag which serves no purpose.
|
|
Most of the hard work by mpi@, who provided the initial diff.
Fixes for sparc from myself. Tested on sgi and sparc myself.
Compiles and detects zstty on my powerbook, compile tested on
sparc64 by me. Real testing with zs device on sparc64 by miod@
who also gave a lot of help and feedback.
ok miod@, mpi@
|
|
and we've started using %g7 as a per-thread register now. If you have any
binaries left that use this flag they'll probably crash and burn!
|
|
namespace a bit much. These are the names for the value encoded in
core.c_ucode or siginfo.si_trapno, but userland never looks directly
and only cares about the abstract signal code.
ok guenther
|
|
the things that libkvm needs.
|
|
libm. While at it, remove now unused workarounds for lint.
Agreed by kettenis@, guenther@, matthew@.
|
|
another symbol without weak attribute. To be used in libc and libm
soon. Agreed by kettenis@, guenther@, matthew@.
|
|
|
|
|
|
to keep definitions our of user space. The MD files now follow a consistant
order -- all namespace intrusion is at the tail can be cleaned up
independently. locore, bootblocks, and libkvm still see enough visibility to
build. Checked on 90% of platforms...
|
|
kgmon(8) to deal with them, this time without public header changes.
Previously various CPUs were iterating over the same global buffer at
the same time to modify it and never ended.
This diff includes some ideas submited by Thor Simon to NetBSD via miod@.
ok deraadt@, mikeb@, haesbaert@
|
|
at this moment.
|
|
various CPUs were iterating over the same global buffer at the same
time to modify it and never ended.
This diff includes some ideas submited by Thor Simon to NetBSD via miod@.
ok mikeb@, haesbaert@
|
|
upcoming per-CPU profiling modifications and it does not make much sense
to profile such low-level functions anyway.
ok kettenis@, miod@
|
|
there's only one implementation of it on sparc64, so we shouldnt need to
iterate up a chain of bus_space_tags to get to it.
because the only argument that is used inside the function is the flags,
this can generally be inlined to a single membar opcode. this leaves that
op as membar(Sync) for now while kettenis@ thinks about what changing it
might mean.
ok miod@
|
|
This is done by opening the corresponding /dev/vdspN device file. The virtual
disk will remain available until that device is closed, which happens
automatically when ldomd(8) exits.
|
|
dynamically, by comparing the stack pointer against the altstack
base and size, so that you get the correct answer if you longjmp
out of the signal handler, as tested by regress/sys/kern/stackjmp/.
Also, fix alt stack handling on vax, where it was completely broken.
Testing and corrections by miod@, krw@, tobiasu@, pirofti@
|
|
this enabled).
ok pirofti@, mikeb@
|
|
|
|
as well.
|
|
for all the compat layers which are now gone. Linux compat still works
because it always used another method in any case, and nothing looks at
p_os anymore.
ok jsing
|
|
Fujitsu SPARC64-VI and SPARC64-VII CPUs. Since the two threads on each core
share the TLBs of the core we cannot enter different mappings for the same
virtual address. Instead we use a scratch register to store the per-cpu
pointer. This is very similar to what we do on sun4v.
For now we still only attach the first thread of each SPARC64-VI/VII core
since we currently don't handle the VMT (Vertical Multi-Threading) of the
SPARC64-VI very well.
|
|
|
|
invocations. This allows us to use the compiler builtin define __PIC__ to check
for PIC/PIEness rather than passing -DPIC. Simplifies PIE work a lot.
ok matthew@, conceptually ok kurt@
|
|
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.
|
|
|
|
|
|
ok guenther@
|
|
|
|
for pointing to the thread-control-block. Support for mapping this
to the correct hardware register can be added as it's finished;
start with support for amd64, sparc, and sparc64. Includes syscalls
for getting and setting it (for a portable __errno implementation) as
well as creating a new thread with an initial value for it.
discussed with miod@, kettenis@, deraadt@; committing to get the syscalls
in with the impending libc bump and do further refinements in tree
|
|
This mandatory function will get invoked in pci_probe_device(), and allows
a pci host driver to alter the pci_attach_args passed to a device when
attaching.
This function will also, if returning non-zero, cause the device to be
skipped completely during all the phases of the PCI device discovery
(i.e. ressource enumeration, ressource assignment, and actual attachment).
This particular feature is experimental and might be reverted in the future
(or the scope narrowed to device attachment only).
A dummy #define pci_probe_device_hook() 0 is added to all platforms except
sgi, where real functions (currently only returning 0) are added; real meat
will be added shortly.
Discussed at s2k11, no objection from the usual suspects.
|
|
uint64_t, depending upon the platform; this makes the declaration of these
types consistent accross all our supported platform, and we do not intend
to support a platform where bus_addr_t could be larger than the size of the
cpu register. Requested by deraadt@ during s2k11
|
|
deraadt@ and jsing@ noticed hppa64 label_t was too short; amazing this did not
get noticed earlier.
|
|
compat names kept in <machine/param.h>. In <sys/socket.h>, pull
in <sys/_types.h> instead of the namespace polluting <machine/param.h>
and completely eliminate __CMSG_ALIGN, replaced by _ALIGN
ok deraadt@
|
|
Since the underlying types of the int_fast types are set by machine/_types.h,
put internal macros in that same file and define the exposed
INT_FAST*_{MIN,MAX} macros from those.
ok millert@, kettenis@
|
|
ok guenther@
|