143 Commits

Author SHA1 Message Date
nyan
03fa63a541 Sync with sys/i386/i386/machdep.c revision 1.375. 1999-11-12 12:00:35 +00:00
nyan
8b1b01b07c Sync with sys/i386/i386/machdep.c revision 1.371. 1999-11-03 08:25:40 +00:00
alc
61bba49fd7 The useracc() calls in osigreturn() and sigreturn() should specify
VM_PROT_READ rather than VM_PROT_WRITE.  (This mistake predates
the B_READ/B_WRITE -> VM_PROT_READ/VM_PROT_WRITE change.)

Submitted by:	bde
1999-10-31 19:39:51 +00:00
phk
8d8f53dcdc Change useracc() and kernacc() to use VM_PROT_{READ|WRITE|EXECUTE} for the
"rw" argument, rather than hijacking B_{READ|WRITE}.

Fix two bugs (physio & cam) resulting by the confusion caused by this.

Submitted by:   Tor.Egge@fast.no
Reviewed by:    alc, ken (partly)
1999-10-30 06:32:05 +00:00
phk
8e3c3eafed useracc() the prequel:
Merge the contents (less some trivial bordering the silly comments)
of <vm/vm_prot.h> and <vm/vm_inherit.h> into <vm/vm.h>.  This puts
the #defines for the vm_inherit_t and vm_prot_t types next to their
typedefs.

This paves the road for the commit to follow shortly: change
useracc() to use VM_PROT_{READ|WRITE} rather than B_{READ|WRITE}
as argument.
1999-10-29 18:09:36 +00:00
kato
a165d9295b Sync with sys/i386/i386/machdep.c revision 1.370. 1999-10-13 11:03:41 +00:00
luoqi
fd8b4427a5 Add a per-signal flag to mark handlers registered with osigaction, so we
can provide the correct context to each signal handler.

Fix broken sigsuspend(): don't use p_oldsigmask as a flag, use SAS_OLDMASK
as we did before the linuxthreads support merge (submitted by bde).

Move ps_sigstk from to p_sigacts to the main proc structure since signal
stack should not be shared among threads.

Move SAS_OLDMASK and SAS_ALTSTACK flags from sigacts::ps_flags to proc::p_flag.
Move PS_NOCLDSTOP and PS_NOCLDWAIT flags from proc::p_flag to procsig::ps_flag.

Reviewed by:	marcel, jdp, bde
1999-10-11 20:33:17 +00:00
marcel
8366d8e9d7 Synchronize with i386 rev 1.367 1999-10-08 09:20:56 +00:00
marcel
05e89da65f Re-introduction of sigcontext.
struct sigcontext and ucontext_t/mcontext_t are defined in such
a way that both (ie struct sigcontext and ucontext_t) can be
passed on to sigreturn. The signal handler is still given a
ucontext_t for maximum flexibility.

For backward compatibility sigreturn restores the state for the
alternate signal stack from sigcontext.sc_onstack and not from
ucontext_t.uc_stack. A good way to determine which value the
application has set and thus which value to use, is still open
for discussion.

NOTE: This change should only affect those binaries that use
      sigcontext and/or ucontext_t. In the source tree itself
      this is only doscmd. Recompilation is required for those
      applications.

This commit also fixes a lot of style bugs without hopefully
adding new ones.

NOTE: struct sigaltstack.ss_size now has type size_t again. For
      some reason I changed that into unsigned int.

Parts submitted by: bde
sigaltstack bug found by: bde
1999-10-04 19:33:58 +00:00
kato
76379b8261 Sync w/ sys/i386/i386/machdep.c revision 1.364. 1999-10-01 12:46:08 +00:00
marcel
a16d76cb56 sigset_t change (part 3 of 5)
-----------------------------

By introducing a new sigframe so that the signal handler operates
on the new siginfo_t and on ucontext_t instead of sigcontext, we
now need two version of sendsig and sigreturn.

A flag in struct proc determines whether the process expects an
old sigframe or a new sigframe. The signal trampoline handles
which sigreturn to call. It does this by testing for a magic
cookie in the frame.

The alpha uses osigreturn to implement longjmp. This means that
osigreturn is not only used for compatibility with existing
binaries. To handle the new sigset_t, setjmp saves it in
sc_reserved (see NOTE).

the struct sigframe has been moved from frame.h to sigframe.h
to handle the complex header dependencies that was caused by
the new sigframe.

NOTE: For the i386, the size of jmp_buf has been increased to hold
      the new sigset_t. On the alpha this has been prevented by
      using sc_reserved in sigcontext.
1999-09-29 15:06:27 +00:00
kato
8c159df6ce Merge from sys/i386/i386/machdep.c revision 1.361. 1999-09-09 09:58:05 +00:00
peter
3b842d34e8 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
kato
65bba00ef1 Merge from sys/i386/i386/machdep.c revision 1.359. 1999-08-18 08:22:10 +00:00
phk
ee871b6440 Merge the cons.c and cons.h to the best of my ability. alpha may or
may not compile, I can't test it.
1999-08-09 10:35:05 +00:00
kato
862e8ea982 Sync with sys/i386/i386/machdep.c revision 1.357. 1999-07-30 11:42:05 +00:00
kato
c75eae3a3e Sync with sys/i386/i386/machdep.c revision 1.356. 1999-07-26 12:14:00 +00:00
kato
48c84d50f9 Sync with sys/i386/i386/machdep.c revision 1.355. 1999-07-09 12:51:11 +00:00
kato
55796aeb7e Sync with sys/i386/i386/machdep.c revision up to 1.354. 1999-07-08 12:48:53 +00:00
msmith
af7615d39a Move the initialisation/tuning of nmbclusters from param.c/machdep.c
into uipc_mbuf.c.  This reduces three sets of identical tunable code to
one set, and puts the initialisation with the mbuf code proper.

Make NMBUFs tunable as well.

Move the nmbclusters sysctl here as well.

Move the initialisation of maxsockets from param.c to uipc_socket2.c,
next to its corresponding sysctl.

Use the new tunable macros for the kern.vm.kmem.size tunable (this should have
been in a separate commit, whoops).
1999-07-05 08:52:54 +00:00
kato
e386828d08 Sync with sys/i386/i386/machdep.c revision 1.349. 1999-07-03 08:31:32 +00:00
kato
df883482f7 Sync with sys/i386/i386/machdep.c revision 1.345. 1999-06-30 13:30:10 +00:00
kato
a6bac2371e Sync with sys/i386/i386/machdep.c revision 1.344. 1999-06-28 13:08:59 +00:00
kato
c93d5ba964 Sync with sys/i386/i386/machdep.c revision 1.342. 1999-06-21 11:14:27 +00:00
kato
abd825f27c Sync with sys/i386/i386/machdep.c revision up to 1.341. 1999-06-17 11:09:39 +00:00
kato
d6a048fdfe Sync with sys/i386/i386/machdep.c revision 1.339.
New function getmemsize_pc98 is added in this commit, since PC98 is
quite different in obtaining memory size from IBM-PC.  Many lines of
this function is shareable with IBM-PC's getmemsize function, but
sharing needs many #ifdef PC98 statements.  Therefore, I gave up
sharing code with IBM-PC's and just added new function.
1999-06-03 13:49:52 +00:00
luoqi
a60ffa3c1c Unbreak VESA on SMP. 1999-05-12 21:39:07 +00:00
luoqi
0d146f2c92 Initialize dblfault_tss.tss_fs to the per-cpu private data segment selector. 1999-05-06 00:54:54 +00:00
luoqi
71f27dfa4f Do not set curproc until proc0 is fully initialized (in proc0_init()). 1999-05-06 00:39:00 +00:00
kato
0c9ccf1299 Sync with sys/i386/i386/machdep.c revision 1.332. 1999-04-28 08:03:54 +00:00
kato
dd587e19a0 Sync with sys/i386/i386/machdep.c revision 1.330. 1999-04-20 09:08:51 +00:00
kato
6b69df13a8 Sync with follwing files:
Path				Revision
i386/conf/GENERIC		1.162
i386/conf/Makefile.i386		1.146
i386/conf/files.i386		1.236
i386/conf/options.i386		1.111
i386/i386/machdep.c		1.329
i386/i386/userconfig.c		1.134
i386/isa/fd.c			1.135
i386/isa/if_ed.c		1.151
i386/isa/isa_dam.c		1.1
i386/isa/npx.c			1.67
isa/sio.c			1.224
dev/syscons/syscons.c		1.300
i386/isa/wd.c			1.194
isa/vga_isa.c           1.5
isa/atkbd_isa.c         1.3
isa/syscons_isa.c       1.2

Submitted by:	Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>
1999-04-18 14:42:20 +00:00
jdp
60ad956050 Restore support for executing BSD/OS binaries on the i386 by passing
the address of the ps_strings structure to the process via %ebx.
For other kinds of binaries, %ebx is still zeroed as before.

Submitted by:	Thomas Stephens <tas@stephens.org>
Reviewed by:	jdp
1999-04-03 22:20:03 +00:00
kato
55514a1b11 Sync with sys/i386/i386/machdpe.c revision 1.327. 1999-03-06 09:43:01 +00:00
kato
bdc44270be Sync with sys/i386/i386/machdep.c revision 1.326. 1999-02-16 11:07:06 +00:00
kato
22876d9138 Sync with sys/i386/i386/machdep.c revision 1.325. 1999-02-12 09:15:33 +00:00
kato
b7574da882 Sync with sys/i386/i386/machdep.c revision 1.324. 1999-02-04 09:55:42 +00:00
kato
33c0a6b08a Sync with sys/i386/i386/machdep.c revision 1.323. 1999-01-29 10:43:09 +00:00
kato
f4bae6e981 Sync with sys/i386/i386/machdep.c revision up to 1.322. 1999-01-16 11:38:03 +00:00
kato
e6a6a95f8f Sync with sys/i386/i386/machdep.c revision 1.320. 1999-01-08 16:04:20 +00:00
bde
7b9dc76b76 Removed the cast to a pointer in the definition of PS_STRINGS and
adjusted related casts to match (only in the kernel in this commit).
The pointer was only wanted in one place in kern_exec.c.  Applications
should use the kern.ps_strings sysctl instead of PS_STRINGS, so they
shouldn't notice this change.
1998-12-16 16:28:58 +00:00
kato
00d99f7970 Sync with sys/i386/i386/machdep.c revision 1.317. 1998-12-11 08:04:33 +00:00
kato
72f8d0d43a - For some old Cyrix CPUs, %cr2 is clobbered by interrupts. This
problem is worked around by using an interrupt gate for the page
   fault handler.  This code was originally made for NetBSD/pc98 by
   Naofumi Honda <honda@kururu.math.sci.hokudai.ac.jp> and has already
   been in PC98 tree.  Because of this bug, trap_fatal cannot show
   correct page fault address if %cr2 is obtained in this function.
   Therefore, trap_fatal uses the value from trap() function.
-  The trap handler always enables interruption when buggy application
   or kernel code has disabled interrupts and then trapped.  This code
   was prepared by Bruce Evans <bde@FreeBSD.org>.

Submitted by:	Bruce Evans <bde@FreeBSD.org>
		Naofumi Honda <honda@kururu.math.sci.hokudai.ac.jp>
1998-12-02 08:15:17 +00:00
kato
1f7a6675d0 Sync with sys/i386/i386/machdep.c revision up to 1.315. 1998-11-06 08:07:32 +00:00
kato
ee727dacab Sync with sys/i386/i386/machdep.c revision 1.313. 1998-10-11 15:04:38 +00:00
kato
918f35a74e Sync with sys/i386/i386/machdep.c revision 1.312. 1998-10-09 12:36:25 +00:00
kato
89750a0c51 Sync with sys/i386/i386/machdep.c revision 1.311. 1998-09-30 13:21:44 +00:00
kato
7a03fa5884 Sync with sys/i386/i386/machdep.c revision 1.310. 1998-09-28 08:25:29 +00:00
kato
3d9ba41c91 Sync with sys/i386/i386/machdep.c revision up to 1.309. 1998-09-15 03:50:08 +00:00
kato
1a37f7b056 Sync with sys/i386/i386/machdep.c revision 1.306. 1998-09-01 07:17:36 +00:00