Commit Graph

296 Commits

Author SHA1 Message Date
Peter Wemm
e44a0ea311 Stop doing runtime checking on i386 cpus for cpu class. The cpu is
slow enough as it is, without having to constantly check that it really
is an i386 still.  It was possible to compile out the conditionals for
faster cpus by leaving out 'I386_CPU', but it was not possible to
unconditionally compile for the i386.  You got the runtime checking whether
you wanted it or not.  This makes I386_CPU mutually exclusive with the
other cpu types, and tidies things up a little in the process.

Reviewed by:  alfred, markm, phk, benno, jlemon, jhb, jake, grog, msmith,
              jasone, dcs, des (and a bunch more people who encouraged it)
2001-01-16 09:10:34 +00:00
KATO Takenori
7590772d33 Merged from sys/i386/i386/machdep.c revisions 1.427 and 1.428. 2001-01-12 13:39:50 +00:00
KATO Takenori
e93f5a3faa Merged from sys/i386/i386/machdep.c revision 1.426. 2001-01-07 07:59:19 +00:00
KATO Takenori
bf0611e746 Merged from sys/i386/i386/machdep.c revision 1.425. 2000-12-16 03:25:08 +00:00
KATO Takenori
86a86b1be0 Merged from sys/i386/i386/machdep.c revision 1.424. 2000-12-05 09:33:11 +00:00
Marcel Moolenaar
d034d459da Don't use p->p_sigstk.ss_flags to keep state of whether the
process is on the alternate stack or not. For compatibility
with sigstack(2) state is being updated if such is needed.

We now determine whether the process is on the alternate
stack by looking at its stack pointer. This allows a process
to siglongjmp from a signal handler on the alternate stack
to the place of the sigsetjmp on the normal stack. When
maintaining state, this would have invalidated the state
information and causing a subsequent signal to be delivered
on the normal stack instead of the alternate stack.

PR: 22286
2000-11-30 05:23:49 +00:00
KATO Takenori
69c963801b Merged from sys/i386/i386/machdep.c revision 1.422. 2000-11-26 06:29:33 +00:00
KATO Takenori
76b86dfba6 Merged from sys/i386/i386/machdep.c revision 1.421. 2000-11-20 12:06:08 +00:00
Yoshihiro Takahashi
6ffb65e8b1 Merged from the following changes.
sys/conf/Makefile.i386      1.211
sys/conf/files.i386         1.329
sys/isa/fd.c                1.186, 1.188 and 1.189
sys/isa/sio.c               1.305 and 1.317
sys/i386/conf/GENERIC       1.270, 1.281, 1.282 and 1.284
sys/i386/i386/machdep.c     1.419
sys/i386/i386/userconfig.c  1.184
2000-11-05 14:31:19 +00:00
Yoshihiro Takahashi
12f1a08005 Fixed extention memory check routine.
Submitted by:	chi@bd.mbn.or.jp (Chiharu Shibata)
2000-10-28 11:16:42 +00:00
Poul-Henning Kamp
46aa3347cb Convert all users of fldoff() to offsetof(). fldoff() is bad
because it only takes a struct tag which makes it impossible to
use unions, typedefs etc.

Define __offsetof() in <machine/ansi.h>

Define offsetof() in terms of __offsetof() in <stddef.h> and <sys/types.h>

Remove myriad of local offsetof() definitions.

Remove includes of <stddef.h> in kernel code.

NB: Kernelcode should *never* include from /usr/include !

Make <sys/queue.h> include <machine/ansi.h> to avoid polluting the API.

Deprecate <struct.h> with a warning.  The warning turns into an error on
01-12-2000 and the file gets removed entirely on 01-01-2001.

Paritials reviews by:   various.
Significant brucifications by:  bde
2000-10-27 11:45:49 +00:00
KATO Takenori
6a8ef4f44f Merged from sys/i386/i386/machdep.c revisions 1.417 and 1.418. 2000-10-20 10:17:26 +00:00
KATO Takenori
a5414135aa Merged from sys/i386/i386/machdep.c revision 1.416. 2000-10-18 09:05:09 +00:00
KATO Takenori
c25b32ae9d Merged from sys/i386/i386/machdep.c revision 1.415. 2000-10-06 11:43:51 +00:00
KATO Takenori
32c0e11c56 Merged from sys/i386/i386/machdep.c revision 1.414. 2000-10-03 13:27:31 +00:00
KATO Takenori
7324718bc0 Merged from sys/i368/i386/machdep.c revision 1.413. 2000-10-02 08:57:21 +00:00
Bosko Milekic
7d03271452 Big mbuf subsystem diff #1: incorporate mutexes and fix things up somewhat
to accomodate the changes.

 Here's a list of things that have changed (I may have left out a few); for a
 relatively complete list, see http://people.freebsd.org/~bmilekic/mtx_journal

   * Remove old (once useful) mcluster code for MCLBYTES > PAGE_SIZE which
     nobody uses anymore. It was great while it lasted, but now we're moving
     onto bigger and better things (Approved by: wollman).

   * Practically re-wrote the allocation macros in sys/sys/mbuf.h to accomodate
     new allocations which grab the necessary lock.

   * Make sure that necessary mbstat variables are manipulated with
     corresponding atomic() routines.

   * Changed the "wait" routines, cleaned it up, made one routine that does
     the job.

   * Generalized MWAKEUP() macro. Got rid of m_retry and m_retryhdr, as they
     are now included in the generalized "wait" routines.

   * Sleep routines now use msleep().

   * Free lists have locks.

   * etc... probably other stuff I'm missing...

  Things to look out for and work on later:

   * find a better way to (dynamically) adjust EXT_COUNTERS

   * move necessity to recurse on a lock from drain routines by providing
     lock-free lower-level version of MFREE() (and possibly m_free()?).

   * checkout include of mutex.h in sys/sys/mbuf.h - probably violating
     general philosophy here.

   The code has been reviewed quite a bit, but problems may arise... please,
   don't panic! Send me Emails: bmilekic@freebsd.org

Reviewed by: jlemon, cp, alfred, others?
2000-09-30 06:30:39 +00:00
KATO Takenori
b8c4558548 Merged from sys/i386/i386/machdep.c revision 1.411. 2000-09-23 06:38:59 +00:00
KATO Takenori
3f605d2ffc Merged from sys/i386/i386/machdep.c revision 1.410. 2000-09-22 12:54:50 +00:00
KATO Takenori
6402000285 Merged from sys/i386/i386/machdep.c revision 1.408. 2000-09-15 05:35:55 +00:00
John Baldwin
606f8eb27a Remove the mtx_t, witness_t, and witness_blessed_t types. Instead, just
use struct mtx, struct witness, and struct witness_blessed.

Requested by:	bde
2000-09-14 20:15:16 +00:00
KATO Takenori
f907abc0b3 Merged from sys/i386/i386/machdep.c revision 1.407. 2000-09-08 11:20:04 +00:00
KATO Takenori
232d649b48 Merged from sys/i386/i386/machdep.c revision 1.406. 2000-09-07 13:35:44 +00:00
KATO Takenori
ec43f77f09 Merged from sys/i386/i386/machdep.c revision 1.405. 2000-09-03 15:55:34 +00:00
KATO Takenori
5340942440 Merged from sys/i386/i386/machdep.c rev. 1.404 just for keeping
similarity.  No PC-98 may have ACPI feature, but I'm not 100%
sure.
2000-09-03 14:11:03 +00:00
David Malone
a5c4836d39 Replace the mbuf external reference counting code with something
that should be better.

The old code counted references to mbuf clusters by using the offset
of the cluster from the start of memory allocated for mbufs and
clusters as an index into an array of chars, which did the reference
counting. If the external storage was not a cluster then reference
counting had to be done by the code using that external storage.

NetBSD's system of linked lists of mbufs was cosidered, but Alfred
felt it would have locking issues when the kernel was made more
SMP friendly.

The system implimented uses a pool of unions to track external
storage. The union contains an int for counting the references and
a pointer for forming a free list. The reference counts are
incremented and decremented atomically and so should be SMP friendly.
This system can track reference counts for any sort of external
storage.

Access to the reference counting stuff is now through macros defined
in mbuf.h, so it should be easier to make changes to the system in
the future.

The possibility of storing the reference count in one of the
referencing mbufs was considered, but was rejected 'cos it would
often leave extra mbufs allocated. Storing the reference count in
the cluster was also considered, but because the external storage
may not be a cluster this isn't an option.

The size of the pool of reference counters is available in the
stats provided by "netstat -m".

PR:		19866
Submitted by:	Bosko Milekic <bmilekic@dsuper.net>
Reviewed by:	alfred (glanced at by others on -net)
2000-08-19 08:32:59 +00:00
KATO Takenori
a19d469b8a Merged from sys/i386/i386/machdep.c revision 1.402. 2000-08-18 09:22:01 +00:00
KATO Takenori
64145a4abe Merged from sys/i386/i386/machdep.c revision 1.401. 2000-08-14 07:27:10 +00:00
KATO Takenori
e2c9a41a3c Merged from sys/i386/i386/machdep.c revision 1.400. 2000-08-12 07:35:12 +00:00
Kris Kennaway
682199d834 Don't call printf without a format string. 2000-07-10 07:13:36 +00:00
Poul-Henning Kamp
77978ab8bc Previous commit changing SYSCTL_HANDLER_ARGS violated KNF.
Pointed out by:	bde
2000-07-04 11:25:35 +00:00
Poul-Henning Kamp
82d9ae4e32 Style police catches up with rev 1.26 of src/sys/sys/sysctl.h:
Sanitize SYSCTL_HANDLER_ARGS so that simplistic tools can grog our
sources:

        -sysctl_vm_zone SYSCTL_HANDLER_ARGS
        +sysctl_vm_zone (SYSCTL_HANDLER_ARGS)
2000-07-03 09:35:31 +00:00
Mark Murray
7b5362fde0 Remove the old /dev/random device. There is a new machine-independant
version.
Reviewed by:	 dfr
2000-06-25 09:48:12 +00:00
KATO Takenori
0f38731801 Merged from sys/i386/i386/machdep.c rev 1.395. 2000-06-13 13:05:51 +00:00
KATO Takenori
e276b136e4 Merged from sys/i386/i386/machdep.c revision 1.394. 2000-06-06 08:21:59 +00:00
Poul-Henning Kamp
9626b608de Separate the struct bio related stuff out of <sys/buf.h> into
<sys/bio.h>.

<sys/bio.h> is now a prerequisite for <sys/buf.h> but it shall
not be made a nested include according to bdes teachings on the
subject of nested includes.

Diskdrivers and similar stuff below specfs::strategy() should no
longer need to include <sys/buf.> unless they need caching of data.

Still a few bogus uses of struct buf to track down.

Repocopy by:    peter
2000-05-05 09:59:14 +00:00
Peter Wemm
ab063af911 Move the MSG* and SEM* options to opt_sysvipc.h
Remove evil allocation macros from machdep.c (why was that there???) and
use malloc() instead.
Move paramters out of param.h and into the code itself.
Move a bunch of internal definitions from public sys/*.h headers (without
#ifdef _KERNEL even) into the code itself.

I had hoped to make some of this more dynamic, but the cost of doing
wakeups on all sleeping processes on old arrays was too frightening.
The other possibility is to initialize on the first use, and allow
dynamic sysctl changes to parameters right until that point. That would
allow /etc/rc.sysctl to change SEM* and MSG* defaults as we presently
do with SHM*, but without the nightmare of changing a running system.
2000-05-01 13:33:56 +00:00
Yoshihiro Takahashi
517b2a8d5c Clean up MAXMEM routine.
Submitted by:	"K.Magara" <magara@maizuru-ct.ac.jp>
2000-04-30 08:52:47 +00:00
Yoshihiro Takahashi
cd6f7fcd8d machine/random.h -> sys/random.h 2000-04-27 13:13:43 +00:00
Poul-Henning Kamp
8177437d85 Complete the bio/buf divorce for all code below devfs::strategy
Exceptions:
        Vinum untouched.  This means that it cannot be compiled.
        Greg Lehey is on the case.

        CCD not converted yet, casts to struct buf (still safe)

        atapi-cd casts to struct buf to examine B_PHYS
2000-04-15 05:54:02 +00:00
Poul-Henning Kamp
c244d2de43 Move B_ERROR flag to b_ioflags and call it BIO_ERROR.
(Much of this done by script)

Move B_ORDERED flag to b_ioflags and call it BIO_ORDERED.

Move b_pblkno and b_iodone_chain to struct bio while we transition, they
will be obsoleted once bio structs chain/stack.

Add bio_queue field for struct bio aware disksort.

Address a lot of stylistic issues brought up by bde.
2000-04-02 15:24:56 +00:00
Peter Wemm
255108f385 Make sysv-style shared memory tuneable params fully runtime adjustable
via sysctl.  It's done pretty simply but it should be quite adequate.
Also move SHMMAXPGS from $machine/include/vmparam.h as the comments that
went with it were wrong... we don't allocate KVM space for the pages so
that comment is bogus..  The only practical limit is how much physical
ram you want to lock up as this stuff isn't paged out or swap backed.
2000-03-30 07:17:05 +00:00
KATO Takenori
d46a1af4b6 Merged from sys/i386/i386/machdep.c revision 1.387. 2000-03-28 15:04:29 +00:00
Poul-Henning Kamp
21144e3bf1 Remove B_READ, B_WRITE and B_FREEBUF and replace them with a new
field in struct buf: b_iocmd.  The b_iocmd is enforced to have
exactly one bit set.

B_WRITE was bogusly defined as zero giving rise to obvious coding
mistakes.

Also eliminate the redundant struct buf flag B_CALL, it can just
as efficiently be done by comparing b_iodone to NULL.

Should you get a panic or drop into the debugger, complaining about
"b_iocmd", don't continue.  It is likely to write on your disk
where it should have been reading.

This change is a step in the direction towards a stackable BIO capability.

A lot of this patch were machine generated (Thanks to style(9) compliance!)

Vinum users:  Greg has not had time to test this yet, be careful.
2000-03-20 10:44:49 +00:00
Yoshihiro Takahashi
2b60363d7f Fixed to probe extended memory for over 256M or under 64M.
Submitted by:   chi@bd.mbn.or.jp (Chiharu Shibata)
2000-03-16 12:14:00 +00:00
KATO Takenori
ce4274863e Merged from sys/i386/i386/machdep.c revisions 1.384 and 1.385. 2000-03-01 08:53:59 +00:00
Peter Wemm
242c5536ea Clean up some loose ends in the network code, including the X.25 and ISO
#ifdefs.  Clean out unused netisr's and leftover netisr linker set gunk.
Tested on x86 and alpha, including world.

Approved by:	jkh
2000-02-13 03:32:07 +00:00
KATO Takenori
03d2edf1b2 - Cut down amount of memory in 64MB when BIOS tells the amount of
memory >= 64MB.
- Don't perform destructive memory inspection for 15 - 16MB system
  area.

Submitted by:	NOKUBI Hirotaka <hnokubi@yyy.or.jp>
		chi@bd.mbn.or.jp (Chiharu Shibata)
1999-12-26 04:22:27 +00:00
Luoqi Chen
91c28bfde0 User ldt sharing. 1999-12-06 04:53:08 +00:00
Yoshihiro Takahashi
e55b790f28 Sync with sys/i386/i386/machdep.c revision up to 1.381. 1999-12-04 12:35:05 +00:00
Yoshihiro Takahashi
c347ed1c87 Sync with sys/i386/i386/machdep.c revision up to 1.378. 1999-11-25 12:43:07 +00:00
Archie Cobbs
25792ef324 Change the prototype of the strto* routines to make the second
parameter a char ** instead of a const char **.  This make these
kernel routines consistent with the corresponding libc userland
routines.

Which is actually 'correct' is debatable, but consistency and
following the spec was deemed more important in this case.

Reviewed by (in concept):	phk, bde
1999-11-24 01:03:08 +00:00
Poul-Henning Kamp
da654d9070 s/p_cred->pc_ucred/p_ucred/g 1999-11-21 12:38:21 +00:00
Yoshihiro Takahashi
c76060988e Sync with sys/i386/i386/machdep.c revision 1.375. 1999-11-12 12:00:35 +00:00
Yoshihiro Takahashi
c1f84244fb Sync with sys/i386/i386/machdep.c revision 1.371. 1999-11-03 08:25:40 +00:00
Alan Cox
0d4d02ecf2 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
Poul-Henning Kamp
02c58685a4 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
Poul-Henning Kamp
923502ff91 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 Takenori
41edac7f87 Sync with sys/i386/i386/machdep.c revision 1.370. 1999-10-13 11:03:41 +00:00
Luoqi Chen
645682fd40 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 Moolenaar
cb055ab8be Synchronize with i386 rev 1.367 1999-10-08 09:20:56 +00:00
Marcel Moolenaar
c5c6b7b38e 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 Takenori
f2c921c4c8 Sync w/ sys/i386/i386/machdep.c revision 1.364. 1999-10-01 12:46:08 +00:00
Marcel Moolenaar
91078fca0c 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 Takenori
909bce6f2b Merge from sys/i386/i386/machdep.c revision 1.361. 1999-09-09 09:58:05 +00:00
Peter Wemm
c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
KATO Takenori
7216803bed Merge from sys/i386/i386/machdep.c revision 1.359. 1999-08-18 08:22:10 +00:00
Poul-Henning Kamp
ce9edcf5b5 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 Takenori
1cefa3fd39 Sync with sys/i386/i386/machdep.c revision 1.357. 1999-07-30 11:42:05 +00:00
KATO Takenori
7da0fca153 Sync with sys/i386/i386/machdep.c revision 1.356. 1999-07-26 12:14:00 +00:00
KATO Takenori
5027350f75 Sync with sys/i386/i386/machdep.c revision 1.355. 1999-07-09 12:51:11 +00:00
KATO Takenori
65d65bc193 Sync with sys/i386/i386/machdep.c revision up to 1.354. 1999-07-08 12:48:53 +00:00
Mike Smith
134c934ce7 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 Takenori
f38004144f Sync with sys/i386/i386/machdep.c revision 1.349. 1999-07-03 08:31:32 +00:00
KATO Takenori
af9966612e Sync with sys/i386/i386/machdep.c revision 1.345. 1999-06-30 13:30:10 +00:00
KATO Takenori
0dcbd0c212 Sync with sys/i386/i386/machdep.c revision 1.344. 1999-06-28 13:08:59 +00:00
KATO Takenori
1b2bed6fa3 Sync with sys/i386/i386/machdep.c revision 1.342. 1999-06-21 11:14:27 +00:00
KATO Takenori
f360e91d4d Sync with sys/i386/i386/machdep.c revision up to 1.341. 1999-06-17 11:09:39 +00:00
KATO Takenori
11e2bfb4b6 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 Chen
0f0fe5a4c5 Unbreak VESA on SMP. 1999-05-12 21:39:07 +00:00
Luoqi Chen
c300b7b6c1 Initialize dblfault_tss.tss_fs to the per-cpu private data segment selector. 1999-05-06 00:54:54 +00:00
Luoqi Chen
68db6cea99 Do not set curproc until proc0 is fully initialized (in proc0_init()). 1999-05-06 00:39:00 +00:00
KATO Takenori
8aef41e249 Sync with sys/i386/i386/machdep.c revision 1.332. 1999-04-28 08:03:54 +00:00
KATO Takenori
32c9ff911e Sync with sys/i386/i386/machdep.c revision 1.330. 1999-04-20 09:08:51 +00:00
KATO Takenori
c55a92c639 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
John Polstra
4fe88fe637 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 Takenori
b052f82154 Sync with sys/i386/i386/machdpe.c revision 1.327. 1999-03-06 09:43:01 +00:00
KATO Takenori
7c9eb5b166 Sync with sys/i386/i386/machdep.c revision 1.326. 1999-02-16 11:07:06 +00:00
KATO Takenori
28791bce44 Sync with sys/i386/i386/machdep.c revision 1.325. 1999-02-12 09:15:33 +00:00
KATO Takenori
270b84ae95 Sync with sys/i386/i386/machdep.c revision 1.324. 1999-02-04 09:55:42 +00:00
KATO Takenori
fe5871fb09 Sync with sys/i386/i386/machdep.c revision 1.323. 1999-01-29 10:43:09 +00:00
KATO Takenori
eb5417aa3a Sync with sys/i386/i386/machdep.c revision up to 1.322. 1999-01-16 11:38:03 +00:00
KATO Takenori
b4d4a2e5d4 Sync with sys/i386/i386/machdep.c revision 1.320. 1999-01-08 16:04:20 +00:00
Bruce Evans
4c56fcdead 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 Takenori
e4a8d41703 Sync with sys/i386/i386/machdep.c revision 1.317. 1998-12-11 08:04:33 +00:00
KATO Takenori
9ad861edee - 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 Takenori
c70606fd9f Sync with sys/i386/i386/machdep.c revision up to 1.315. 1998-11-06 08:07:32 +00:00
KATO Takenori
45b48978af Sync with sys/i386/i386/machdep.c revision 1.313. 1998-10-11 15:04:38 +00:00
KATO Takenori
60f27d13a7 Sync with sys/i386/i386/machdep.c revision 1.312. 1998-10-09 12:36:25 +00:00
KATO Takenori
b3c2b0173a Sync with sys/i386/i386/machdep.c revision 1.311. 1998-09-30 13:21:44 +00:00
KATO Takenori
6a75025663 Sync with sys/i386/i386/machdep.c revision 1.310. 1998-09-28 08:25:29 +00:00
KATO Takenori
76c468f222 Sync with sys/i386/i386/machdep.c revision up to 1.309. 1998-09-15 03:50:08 +00:00
KATO Takenori
794cfbb48e Sync with sys/i386/i386/machdep.c revision 1.306. 1998-09-01 07:17:36 +00:00
KATO Takenori
aa53a702c9 - Fix style bug.
- hw.ispc98 -> machdep.ispc98.

Submitted by:	Garrett Wollman (hw -> machdep)
1998-09-01 02:04:17 +00:00
KATO Takenori
582e52862a - hw.machine_arch returns cpu architecture type.
- moved definition of MACHINE_ARCH from cpu.h to parm.h as alpha.
- Added definitions of _MACHINE and _MACHINE_ARCH.
- Added hw.ispc98. The hw.ispc98 is 1 in PC98 kernel and is 0 in
  IBM-PC kernel.

Discussed with:	John Birrell <jb@FreeBSD.ORG>
1998-08-31 08:41:58 +00:00
KATO Takenori
41bf2268ba Sync with sys/i386/i386/machdep.c revision 1.304. 1998-08-19 09:32:15 +00:00
KATO Takenori
e1c32d9d2d Sync with sys/i386/i386/machdep.c revision 1.303. 1998-07-11 17:00:33 +00:00
KATO Takenori
a723d97973 Sync with sys/i386/i386/machdep.c revision 1.302. 1998-07-02 12:39:32 +00:00
KATO Takenori
b0eb6f6a10 Sync with sys/i386/i386/machdep.c revision 1.301. 1998-06-22 08:05:12 +00:00
KATO Takenori
d5f1066e45 Sync with sys/i386/i386/machdep.c revision 1.300. 1998-06-17 16:30:16 +00:00
KATO Takenori
c7e9ceee59 Merge 64bit portability fixes from sys/i386 stuff. 1998-06-08 08:55:47 +00:00
KATO Takenori
57e8fac883 Sync with sys/i386/i386/machdep.c revision 1.298. 1998-06-03 08:48:00 +00:00
KATO Takenori
6113cb00d6 Sync with sys/i386/i386/machdep.c revision 1.297. 1998-05-28 13:50:13 +00:00
KATO Takenori
fa7cfb3b65 Sync with sys/i386/i386/machdep.c revision 1.296. 1998-05-19 12:58:05 +00:00
KATO Takenori
130eeca5d6 Sync with sys/i386/i386/machdep.c revision 1.294. 1998-04-07 09:07:53 +00:00
KATO Takenori
c85e487d23 Sync with sys/i386/i386/machdep.c and trap.c revisions 1.293 and
1.123, respectively.
1998-03-24 08:27:21 +00:00
KATO Takenori
d01df9f46d Sync with sys/i386/i386/machdep.c revision 1.292. 1998-03-08 03:55:35 +00:00
KATO Takenori
917d483199 Sync with sys/i386/i386/machdep.c revision 1.291. 1998-03-07 15:42:54 +00:00
KATO Takenori
a9c784f064 Sync with sys/i386/i386/machdep.c revision 1.290. 1998-03-02 10:02:01 +00:00
KATO Takenori
db33b1d449 Sync with sys/i386/i386/machdep.c revision 1.289. 1998-02-09 15:04:39 +00:00
Eivind Eklund
0b08f5f737 Back out DIAGNOSTIC changes. 1998-02-06 12:14:30 +00:00
KATO Takenori
3efe1bb939 Sync with sys/i386/i386/machdep.c and trap.c reivsions 1.287 and
1.121, respectively.
1998-02-05 10:05:47 +00:00
KATO Takenori
99b1ec9000 Sync with sys/i386/i386/machdep.c revision 1.286. 1998-02-04 10:19:33 +00:00
KATO Takenori
81b0d36c87 Sync with sys/i386/i386/machdep.c revision 1.285. 1998-01-30 12:03:13 +00:00
KATO Takenori
88a92ff10e Even though BIOS writer's guide recommends cpuid instruction of Cyrix
6x86MX CPU is enabled (BIOS should not disable it), some BIOS disables
it via CCR4.  In this case, cpu variable becomes CPU_486 and
identblue() is called.  Because Cyrix 6x86MX has MSR and doesn't have
MSR1002, wrmsr instruction generates general protection fault.

Tested by:	Simon Coggins <chaos@ultra.net.au>
1998-01-25 12:01:38 +00:00
KATO Takenori
19eba5818f Sync with sys/i386/i386/machdep.c revision 1.283. 1998-01-24 06:53:32 +00:00
KATO Takenori
7ebb9221f6 Sync with sys/i386/i386/machdep.c revision 1.282. 1998-01-24 03:15:37 +00:00
KATO Takenori
3a00f2c11f Sync with sys/i386/i386/machdep.c revision 1.281. 1998-01-12 15:38:51 +00:00
KATO Takenori
935b62000f 1: Fixed compile error when WB_CACH is defined.
2: Fixed !M_EPSON_PC98 case.

Reviewed by:	Chiharu Shibata <chi@rd.njk.co.jp>
1998-01-07 09:03:42 +00:00
Peter Wemm
19d768b80b #include "opt_user_ldt.h" so that the #ifdef USER_LDT checks can work, as
commented about at length in the PR audit trail.

PR: 2412
1997-12-27 02:28:28 +00:00
KATO Takenori
cf478d7b45 Don't use PG_N if EPSON PC-486HX/HG/HA (PC-9801 compatible) are
detected.  These machine cannot make L2 cache write-through by PG_N,
and only I/O access (undocumented) can do that.  If PG_N is used,
system hangs.

Reviewed by:	tos@fa2.so-net.or.jp (Toshiyuki Kawashima)
1997-12-16 10:22:49 +00:00
KATO Takenori
80ed4956b5 Sync with sys/i386/i386/machdep.c revision 1.279. 1997-12-14 12:31:44 +00:00
KATO Takenori
3de8753921 Sync with sys/i386/i386/machdep.c and trap.c revisions 1.278 and
1.118, respectively.
1997-12-05 11:48:53 +00:00
KATO Takenori
7d727d59e4 Sync with sys/i386/i386/machdep.c and trap.c revisions 1.275 and
1.116, respectively.
1997-12-03 09:46:34 +00:00
KATO Takenori
1c682f9842 Sync with sys/i386/i386/machdep.c revision up to 1.274. 1997-11-25 09:54:36 +00:00
KATO Takenori
eef2db22e1 Sync with following files:
- sys/i386/i386/machdep.c revision 1.271
	- sys/i386/i386/trap.c revision 1.114
	- sys/i386/isa/if_ed.c revision 1.128
	- sys/i386/isa/if_fe.c revision 1.34
	- sys/i386/isa/syscons.c revision 1.238.
	- sys/i386/isa/wd.c revision 1.144
1997-11-07 12:54:01 +00:00
KATO Takenori
f98d041924 Synchronize with sys/i386/i386/machdep.c revision 1.269. 1997-10-13 09:21:16 +00:00
KATO Takenori
38a7ce0beb Synchronize with sys/i386/i386/machdep.c revision 1.268. 1997-10-12 11:58:09 +00:00
KATO Takenori
a76e8ee5a9 Synchronize with sys/i386/i386/machdep.c revision 1.266. 1997-09-26 09:47:04 +00:00
KATO Takenori
82ed62a794 Synchronize with sys/i386/i386/machdep.c and trap.c reivisions 1.265
and 1.111, respectively.
1997-09-22 12:20:42 +00:00
KATO Takenori
8ccbc9119c Synchronize with sys/i386/i386/machdep.c revision up to 1.263. 1997-09-05 10:14:36 +00:00
KATO Takenori
6fd38fbdc0 Synchronize with sys/i386/i386/machdep.c and microtime.s revisions
1.261 and 1.32, respectively.
1997-09-03 12:41:16 +00:00
KATO Takenori
8532a0ba59 Synchronize with sys/i386/i386/machdep.c revision 1.260. 1997-09-01 10:42:03 +00:00
KATO Takenori
6f468ee3e3 Synchronize with sys/i386/i386/machdep.c and trap.c revision 1.258 and
1.108, respectively.
1997-08-27 08:43:21 +00:00
KATO Takenori
3b17d7f08b Synchronize with sys/i386/i386/machdep.c, trap.c and
sys/i386/isa/npx.c revisions 1.257, 1.107 and 1.52, respectively.
1997-08-21 10:13:12 +00:00
KATO Takenori
b2964d3a9e Synchronize with sys/i386/i386/machdep.c, trapc and sys/i386/isa/npx.c
revisions 1.256, 1.105 and 1.51, respectively.
1997-08-18 11:30:05 +00:00
KATO Takenori
f6601c421b Synchronize with sys/i386/i386/machdep.c revision 1.255. 1997-08-09 01:56:34 +00:00
KATO Takenori
22ed4a0ab5 Synchronize with sys/i386/i386/machdep.c revision 1.254. 1997-08-06 09:43:45 +00:00
KATO Takenori
2463359bc9 Synchronize with sys/i386/i386/machdep.c and trap.c revisions 1.253
and 1.101, respectively.
1997-07-21 13:04:54 +00:00
KATO Takenori
89a8492f8f Synchronize with sys/i386/i386/machdep.c revision 1.252. 1997-06-30 09:58:39 +00:00