Commit Graph

65951 Commits

Author SHA1 Message Date
Alan Cox
eab754b91d Implement TCP/IP checksum off-loading on send for the 3c905B and later
generation cards.
2001-10-22 06:45:42 +00:00
Warner Losh
d75c1b4a90 First commit after a repo copy of isa/sio* -> dev/sio:
Move sio from isa/sio.c to dev/sio/sio.c.  The next step is to break
out the front end attachments, improve support for these parts on
different busses, and maybe, if we're lucky, merging in pc98 support.
It will also be MI and live in conf/files rather than files.*.

Approved by: bde
Tested with: i386, pc98
2001-10-22 02:48:38 +00:00
Dag-Erling Smørgrav
580e0a2b7a #include <sys/proc.h> where needed (for the stop event definitions) and
reorder includes everywhere to conform to style(9).
2001-10-22 02:02:00 +00:00
Dag-Erling Smørgrav
902830c2ba Move the stop event macros from pioctl.h to proc.h, and add an S_ALLSTOPS
macro to represent "all stop events".
2001-10-22 02:00:33 +00:00
David E. O'Brien
83c54719ed When we set our UID to `nobody', set an appropriate group also.
Submitted by:	peter
2001-10-22 01:55:40 +00:00
David E. O'Brien
b1f2952a35 Chroot to /tftpboot for tftp.
Reviewed by:	mdodd, peter
2001-10-22 01:46:53 +00:00
Dag-Erling Smørgrav
7c62990641 Move procfs_* from procfs_machdep.c into sys_process.c, and rename them to
proc_* in the process; procfs_machdep.c is no longer needed.

Run-tested on i386, build-tested on Alpha, untested on other platforms.
2001-10-21 23:57:24 +00:00
Dag-Erling Smørgrav
1f04261973 [partially forced commit due to pilot error in earlier commit attempt]
{set,fill}_{,fp,db}regs() fixup:

 - Add dummy {set,fill}_dbregs() on architectures that don't have them.

 - KSEfy the powerpc versions (struct proc -> struct thread).

 - Some architectures had the prototypes in md_var.h, some in reg.h, and
   some in both; for consistency, move them to reg.h on all platforms.

These functions aren't really MD (the implementation is MD, but the interface
is MI), so they should move to an MI header, but I haven't figured out which
one yet.

Run-tested on i386, build-tested on Alpha, untested on other platforms.
2001-10-21 22:16:48 +00:00
Dag-Erling Smørgrav
ef394d81ad {set,fill}_{,fp,db}regs() fixup:
- Add dummy {set,fill}_dbregs() on architectures that don't have them.

 - KSEfy the powerpc versions (struct proc -> struct thread).

 - Some architectures had the prototypes in md_var.h, some in reg.h, and
   some in both; for consistency, move them to reg.h on all platforms.

These functions aren't really MD (the implementation is MD, but the interface
is MI), so they should move to an MI header, but I haven't figured out which
{set,fill}_{,fp,db}regs() fixup:

 - Add dummy {set,fill}_dbregs() on architectures that don't have them.

 - KSEfy the powerpc versions (struct proc -> struct thread).

 - Some architectures had the prototypes in md_var.h, some in reg.h, and
   some in both; for consistency, move them to reg.h on all platforms.

These functions aren't really MD (the implementation is MD, but the interface
is MI), so they should move to an MI header, but I haven't figured out which
one yet.

Run-tested on i386, build-tested on Alpha, untested on other platforms.
2001-10-21 22:14:00 +00:00
Dag-Erling Smørgrav
9ddd141263 Teach truss(1) to display sockaddrs. It currently knows about AF_INET,
AF_INET6 and AF_UNIX sockaddrs, and will recognize accept(), bind(),
connect(), getpeername() and getsockname() as syscalls taking sockaddr
arguments.  Some enterprising soul might want to add (and test) support
for the send() / recv() family of syscalls as well.

MFC after:	1 week
2001-10-21 21:57:10 +00:00
Daniel Eischen
f39105fa50 In the words of the submitter:
In libc_r, if _FDLOCKS_ENABLED is not defined, there is no guarantee
  in many of the sycall wrappers that _thread_fd_table[fd] is
  initialized.  This causes problems for programs that pass in file
  descriptors and execve() another program; when the exec'ed program
  tries to do an fcntl() or other syscall on the passed-in fd, it fails.

Add calls to initialize the FD table entry for _thread_fd_lock and
_thread_fd_lock_debug.

Submitted by:	Peter S. Housel <housel@acm.org>
2001-10-21 18:23:50 +00:00
Dag-Erling Smørgrav
7936569b00 Add proc/mtab which simulates a Linux system's /etc/mtab. 2001-10-21 15:56:46 +00:00
Dag-Erling Smørgrav
364d225aac This module will soon need opt_linux.h (for <linux/linux_util.h>) 2001-10-21 15:54:56 +00:00
Dag-Erling Smørgrav
45fb069ac9 Convert textvp_fullpath() into the more generic vn_fullpath() which takes a
struct thread * and a struct vnode * instead of a struct proc *.

Temporarily add a textvp_fullpath macro for compatibility.
2001-10-21 15:52:51 +00:00
Doug Rabson
eedecb60e8 Add some more names for bits of trapframe. 2001-10-21 14:03:58 +00:00
Doug Rabson
c623bf3471 We need to save a bit more information in the partial syscall trapframe
in case we need to take a signal.
2001-10-21 14:03:25 +00:00
Doug Rabson
3b51c8566c Set ar.fpsr to something sane before trying to handle a trap - the user
might have trashed it.
2001-10-21 14:02:27 +00:00
Doug Rabson
54e594762b Use ia64_set_fpsr() instead of __asm to set ar.fpsr. 2001-10-21 14:01:48 +00:00
Doug Rabson
f85321667c Add ia64_set_fpsr(). 2001-10-21 14:00:59 +00:00
Hellmuth Michaelis
a8142a86d9 Thanks for postcards ... 2001-10-21 09:39:22 +00:00
Hellmuth Michaelis
85b038fce5 upadate the release notes 2001-10-21 09:30:10 +00:00
Hellmuth Michaelis
8ae67d78bf Fix bug attaching the ELSA PCC16, the cardtyp value was set incorrectly
in the probe routine.
MFC after:	3 days
2001-10-21 09:22:48 +00:00
Hellmuth Michaelis
676ccc0cd0 Add a driver for the Compaq Microcom 610 ISDN (Compaq series PSB2222I) ISA PnP
card.

Submitted by:   Steve Looman
Reviewed by:    hm
MFC after:      1 month
2001-10-21 09:20:52 +00:00
Hellmuth Michaelis
12428dfd1b Add a driver for the Compaq Microcom 610 ISDN (Compaq series PSB2222I) ISA PnP
card.

Submitted by:	Steve Looman
Reviewed by:	hm
MFC after:	1 month
2001-10-21 09:17:25 +00:00
Marcel Moolenaar
cf1a20ea71 Implement the IPI send functions. No mapping between IPI message
Id and interrupt vector has been made yet.
2001-10-21 08:57:02 +00:00
Hellmuth Michaelis
a986a974e9 It seems that I slipped a nasty bug into the CAPI support. The message
lengths for CONNECT_REQ and CONNECT_IND are incorrect, which causes
dialouts to fail after certain error situations (an invalid -- not
wrong! -- number has been dialed). Since these messages are tagged as
too short, the device reads trailing garbage as the B protocol
parameters; this is OK as long as the garbage consists of zero bytes,
which it usually does, except after the said error.

Another change we have taken into use is to send an explicit Q.850
"normal call clearing" code when a call is ignored using PRI equipment
(specifically AVM T1); the CAPI pseudo-code for ignore, 1, translates
into something at least Ericsson exchanges interpret oddly (message
"this area is not reachable from your number"). NCCLR makes the exchange
give a busy signal, which is the behaviour at least we prefer
(conceivably, the ignore code could be made a sysctl variable).

The attached patch corrects the message length issue. It also includes a
somewhat unpretty solution for the PRI ignore code (if device's number
of channels equals 30, assume PRI and send NCCLR, otherwise send CAPI
ignore). Tested using AVM B1 PCI and T1 PCI.

Submitted by:	Juha-Matti Liukkonen <jml@cubical.fi>
Reviewed by:	hm
MFC after:	1 month
2001-10-21 08:51:54 +00:00
Matthew Dillon
5eb13f768c Documentation
MFC after:	1 day
2001-10-21 06:26:55 +00:00
Bruce Evans
7dd43330b3 Use the i386 version of npx.c. It has been merged with the pc98 version.
Approved by:	nyan
Not tested by:	bde
2001-10-21 06:14:12 +00:00
Matthew Dillon
57601bcb5d Syntax cleanup and documentation, no operational changes.
MFC after:	1 day
2001-10-21 06:12:06 +00:00
Bruce Evans
08b00f49c3 MFi386:
- sys/pc98/pc98/npx.c 1.87 (2001/09/15; author: imp)
  I don't think pc98 has acpi at all, so ifdef the acpi attachments for
  now.

This completes merging sys/pc98/pc98/npx.c into sys/i386/isa/npx.c so
that the former can be removed.
2001-10-21 06:05:08 +00:00
Bruce Evans
abfde38316 MFpc98: fundamental differences. The magic numbers for the i/o port
and the irq are different for pc98, and are not very well handled (we
use a historical mess of hard-coded values, values from header files
and values from hints).
2001-10-21 05:56:03 +00:00
Marcel Moolenaar
2791ddeb6c Add define for the PIB default address and include a reference to
the SDM.
2001-10-21 05:52:54 +00:00
Bruce Evans
40d8c8da95 MFpc98: all changes in sys/pc98/pc98/npx.c related to FPU_ERROR_BROKEN.
- 1.58 (2000/09/01; author: kato)
  Fixed FPU_ERROR_BROKEN code.  It had old-isa code.
- 1.33 (1998/03/09; author: kato)
  Make FPU_ERROR_BROKEN a new-style option.
- 1.7 (1996/10/09; author: asami)
  Make sure FPU is recognized for non-Intel CPUs.

The log for rev.1.7 should have said something like:
Added FPU_ERROR_BROKEN option.  This forces a successful probe for
exception 16, so that hardware with a broken FPU error signal can sort
of work.
2001-10-21 05:18:30 +00:00
Matt Jacob
d7ae92aeb3 Update to latest 12160 f/w.
MFC after:	1 week
2001-10-20 21:47:58 +00:00
Andrew Gallatin
e47b20bee2 - splhigh()/splx() -> critical_enter()/critical_exit()
- fix KV macro in t2_pci.c to include the sable_lynx_base variable
so that the T2 CSRs can be found on lynxes.   Current should be
bootable on lynxes now.
2001-10-20 21:05:14 +00:00
Jake Burkholder
226d92f1b0 Add missing include. 2001-10-20 20:57:58 +00:00
Matt Jacob
574b6ca465 remove wx 2001-10-20 20:21:51 +00:00
Matt Jacob
0ba15d27f7 Oops. Remove wx. 2001-10-20 20:21:34 +00:00
Jake Burkholder
6bbac2dd30 Add missing includes. 2001-10-20 18:52:44 +00:00
Jake Burkholder
ac7165deae Remove interrupt queue array. Its in globaldata now. 2001-10-20 18:51:45 +00:00
Jake Burkholder
58a822cfc2 Fix get_cyclecount. Wrap in ifdef _KERNEL. 2001-10-20 18:51:10 +00:00
Matt Jacob
8c7c272c5a Remove wx. 2001-10-20 18:50:31 +00:00
Matt Jacob
f2465b0df3 Remove this driver from FreeBSD.
Jonathon Lemon's driver (gx) is at least as fast and has more features
and is likely to be better supported.

It is also possible that Intel might support this chipset in FreeBSD
with their own driver. Somewhat secretive and furtive rumblings from
certain Yahoo employees have indicated that this might happen soon.

I'm a little unhappy at the lack of discussion on the net list about
this, or on developers, or on hackers, or the lack of mention on
audit. This then leaves me to try and figure out the right thing
to do.

I've concluded that the right thing to do is to remove wx from FreeBSD,
as this is probably best for FreeBSD.
2001-10-20 18:48:45 +00:00
Jake Burkholder
d620294863 Use KTR_PMAP instead of KTR_CT1. 2001-10-20 17:11:07 +00:00
Jake Burkholder
49d8e44385 Catch up to changing entry point names so traces through traps
mostly work right.  This catches recursive traps too early, but
generally such traps are fatal and we won't get this far anyway.
2001-10-20 17:10:34 +00:00
Jake Burkholder
e47e7481db Add a definition for normal kernel window state. 2001-10-20 17:08:33 +00:00
Jake Burkholder
cc0bc9ad21 Catch up to new assembly language code. 2001-10-20 17:07:18 +00:00
Jake Burkholder
140bf733a7 Fix a bug in the kernel entry window handling where the wrong register
was used.  This resulted in bogus bad window traps (invalid wstate).

Add a trace to sfsr traps (alignment among other things).

Use KTR_TRAP instead of KTR_CT1.

Use the right registers when storing the values of various
mmu registers into the trap frame.  This fixes a bug where sometimes
the context number reported by a fault would be garbage.  Sometimes
it would be zero for faults on user address space so the kernel would
wrongly think that it was a fault on kernel address space and fail.

Use the preloaded registers in the vectored interrupt trap instead
of reading pointers from memory.  Remove traces due to register
pressure and excess verbosity.  We can probably still sneak in one
trace.  Remove some debug code.

Go back to using the tsb register during kernel page table lookups.
This is the best way to not have to have the address of the kernel tsb be
a compile time constant.  We lie and say we have 1 page tsb when really
its much larger.  This way the hardware provides bits 13-22 of the
virtual address (the lower 9 bits of the virtual page number) in the
form of the address of the tte corresponding to the fault address in
the (1 page) kernel tsb.  With some clever arithmetic we can then get
bits 22 and up from the tte tag and add them to the tte address in
order to index massive tsbs (basically unlimited).

Add traps for physical address hardware watchpoints.

Don't try to pass the window state from the trap table entry point
all the way down to the common trap code.  Its too easy to clobber
and reading it again doesn't cost much.

Fixup some traces.

Fiddle the cwp bits on return from the kernel to user mode so that
the window we are returning to is always the same as the one we
restore to in the trap code.  Strictly speaking this is not necessary,
it only affects return from fork and exec, but setting up the windows
right would require hard coding the right cwp values in cpu_fork and
setregs, basically hard coding the number of frames between syscall and
tl0_ret.  The result of getting it wrong is usually a spill to an invalid
stack pointer; either 0 or pointing into kernel space.  This should also
alleviate the need to context switch the cwp.

Transfer the trap state from locals to alternate globals in the trap
return code so that we can do a restore and rotate the windows before
reloading the trap registers.  If the restore fails we'll trap back
into the kernel, so there's no point in loading the trap registers
before hand.  Its is crucial that the window trap recovery code not
clobber the alternate globals.
2001-10-20 17:06:04 +00:00
Jake Burkholder
2baa1ef450 Align the symbol that demarks the end of the signal code on a 16 byte
boundary.  It must be on at least an 8 byte boundary so that the length
of the signal code is a multiple of 8 (well aligned).  The size is used
in the calculation of the address of the argument and environment vectors
on the user stack; getting it wrong results in the string pointers being
misaligned and causes alignment faults in getenv() among other things.

Allocate a regular stack frame below the signal frame on the user stack
and join up the frame pointer to the previous frame.  This fixes longjmp-ing
out of signal handlers.  Longjmp traverses the stack upwards in order to
find the right frame to return to, so the frame pointers must join up
seamlessly.  I thought this would just work, but obviously the frame
needs to be below the signal frame, not above it like before.  Account
for the extra space in the signal code.

Preload pointers to interrupt data structures in interrupt globals.
This avoids the need to load the pointers from memory in the vectored
interrupt trap handler.

Transfer the first 2 out registers into td_retval in setregs.  We use
the same registers for system call arguments as return values, so these
registers got clobbered by the system call return values on return from
execve.  They now get clobbered by the right values.  We must put the values
in both the out registers in the trapframe and in td_retval because init
calls exec but fails to transfer the return value into the out registers.
This fixes a bug where the first exec after init would pass junk to the
c runtime, instead of a pointer to the argument strings.  A better solution
would be to return EJUSTRETURN on success from execve.

Adjust for change in pmap_bootstraps prototype.

Map the message buffer after the trap table is setup.  We will fault
on it immediately.
2001-10-20 16:36:08 +00:00
Jake Burkholder
6ef2d9a02d Parameterize the size of the kernel virtual address space on KVA_PAGES.
Don't use a hard coded address constant for the virtual address of the
kernel tsb.  Allocate kernel virtual address space for the kernel tsb
at runtime.
Remove unused parameter to pmap_bootstrap.
Adapt pmap.c to use KVA_PAGES.
Map the message buffer too.
Add some traces.
Implement pmap_protect.
2001-10-20 16:17:04 +00:00