summaryrefslogtreecommitdiffstats
path: root/sys/i386
Commit message (Collapse)AuthorAgeFilesLines
...
* Apply some contributed patches to reduce number of tx buffer allocationwpaul2000-12-152-3/+156
| | | | | | failures and add some support for WEP on Prism II chip. Submitted by: YAMAMOTO Shigeru <shigeru@iij.ad.jp>
* Newbus the if_el (3Com 3c501) driver. Use bus_space_X() functions.wpaul2000-12-152-120/+246
| | | | | | | | | Add detach routine and turn driver into a module so it can be loaded and unloaded. Also take a stab at implementing multicast packet reception so that this NIC will work with IPv6. Promiscuous mode doesn't seem to work, but I'm not sure why. It works well enough that I can run dhclient on it and put it on the office network though. Also ripped out spl stuff and replaced it with mutexes.
* Add the musycc driver to NOTES.phk2000-12-151-0/+1
| | | | | | | | | | This is a driver for the LanMedia/SBE LMC150x E1/T1 family of cards. The driver currently support unframed E1 (2048kbit/s) and framed E1 (nx64). These cards will provision E1/T1 lines for about 1/4 the cost of a cisco router...
* Remove the "machine dependent" KTR trace buffer ddb commands. The code wasjhb2000-12-141-101/+0
| | | | exactly the same on all platforms.
* Use _lapic+offset to access the local apic from assembly languagejake2000-12-145-37/+44
| | | | | files, rather than the symbols in globals.s. The offsets are generated by genassym.
* o Remove the COMPAT_OLDPCI option now that Mike removed it.imp2000-12-131-3/+3
| | | | | | o Add pmtimer device o Shorten scsi settle time to 1 second, since that's what I use and I'm tired of remerging it every time.
* If we fail to emulate a vm86 trap in kernel mode, then we usejhb2000-12-131-0/+1
| | | | | | vm86_trap() to return to the calling program directly. vm86_trap() doesn't return, thus it was never returning to trap() to release Giant. Thus, release Giant before calling vm86_trap().
* - If swap metadata does not fit into the KVM, reduce the number oftanimura2000-12-131-4/+15
| | | | | | | | | | | | | | | struct swblock entries by dividing the number of the entries by 2 until the swap metadata fits. - Reject swapon(2) upon failure of swap_zone allocation. This is just a temporary fix. Better solutions include: (suggested by: dillon) o reserving swap in SWAP_META_PAGES chunks, and o swapping the swblock structures themselves. Reviewed by: alfred, dillon
* Introduce a new potientially cleaner interface for accessing per-cpujake2000-12-1311-122/+132
| | | | | | | | | | | variables from i386 assembly language. The syntax is PCPU(member) where member is the capitalized name of the per-cpu variable, without the gd_ prefix. Example: movl %eax,PCPU(CURPROC). The capitalization is due to using the offsets generated by genassym rather than the symbols provided by linking with globals.o. asmacros.h is the wrong place for this but it seemed as good a place as any for now. The old implementation in asnames.h has not been removed because it is still used to de-mangle the symbols used by the C variables for the UP case.
* Remove the COMPAT_OLDPCI option, it's going away.msmith2000-12-132-3/+1
| | | | Turn 'lnc' off in GENERIC for the moment, pending its update to newbus.
* - Change the allproc_lock to use a macro, ALLPROC_LOCK(how), insteadjake2000-12-132-6/+12
| | | | | | | | of explicit calls to lockmgr. Also provides macros for the flags pased to specify shared, exclusive or release which map to the lockmgr flags. This is so that the use of lockmgr can be easily replaced with optimized reader-writer locks. - Add some locking that I missed the first time.
* Another mismatch found by Gcc:julian2000-12-121-1/+0
| | | | | This is what happenss when you let the patches pile up too long without committing them.. brain rot..
* Remove after repo-copy to sys/compat/linprocfs.des2000-12-125-2290/+0
|
* Reviewed by: Archie@freebsd.orgjulian2000-12-122-5/+13
| | | | | | | | | | | | | This clears out my outstanding netgraph changes. There is a netgraph change of design in the offing and this is to some extent a superset of soem of the new functionality and some of the old functionality that may be removed. This code works as before, but allows some new features that I want to work with and evaluate. It is the basis for a version of netgraph with integral locking for SMP use. This is running on my test machine with no new problems :-)
* Add in symbols needed in the WITNESS_ENTER and WITNESS_EXIT macros injhb2000-12-121-0/+5
| | | | i386/include/mutex.h.
* Fix the assembly mutex macros to call the appropriate witness functions ifjhb2000-12-121-3/+38
| | | | | | the witness code is compiled in. Without this, the witness code doesn't notice that sched_lock is released by fork_trampoline() and thus gets all confused about spin lock order later on.
* - Add code to detect if a system call returns with locks other than Giantjake2000-12-121-0/+10
| | | | | | | | | held and panic if so (conditional on witness). - Change witness_list to return the number of locks held so this is easier. - Add kern/syscalls.c to the kernel build if witness is defined so that the panic message can contain the name of the offending system call. - Add assertions that Giant and sched_lock are not held when returning from a system call, which were missing for alpha and ia64.
* add comment about ispfwmjacob2000-12-111-0/+1
|
* Add the spic driver, which is a simple first attempt at providing accessnsayer2000-12-113-0/+534
| | | | to the jog dial device.
* Remove DDB, it leaked in here with another commit.phk2000-12-111-2/+0
| | | | Submitted by: bde
* Add proc/<pid>/cmdline.des2000-12-093-1/+9
|
* Add a dependency on procfs.des2000-12-091-0/+1
|
* A bunch of fixes that have been rotting in my tree for a month or twodes2000-12-091-71/+91
| | | | | | | | | | | | | | | waiting for procfs to get fixed: - Use fill_eproc() to obtain correct VM stats. Attempt to compute VmLib. - Fill some more fields in proc/<pid>/stat, and add four (unimplemented) fields after studying a recent Linux kernel. - Compute CPU frequency only once instead of twice. - Fix some comments that were OBE. - Fix indentation except where it makes the code less readable.
* Next phase in the PCI subsystem cleanup.msmith2000-12-083-6/+106
| | | | | | | | | | | | | | | | | | | | - Move PCI core code to dev/pci. - Split bridge code out into separate modules. - Remove the descriptive strings from the bridge drivers. If you want to know what a device is, use pciconf. Add support for broadly identifying devices based on class/subclass, and for parsing a preloaded device identification database so that if you want to waste the memory, you can identify *anything* we know about. - Remove machine-dependant code from the core PCI code. APIC interrupt mapping is performed by shadowing the intline register in machine- dependant code. - Bring interrupt routing support to the Alpha (although many platforms don't yet support routing or mapping interrupts entirely correctly). This resulted in spamming <sys/bus.h> into more places than it really should have gone. - Put sys/dev on the kernel/modules include path. This avoids having to change *all* the pci*.h includes.
* Convert more malloc+bzero to malloc+M_ZERO.dwmalone2000-12-0818-76/+47
| | | | | Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net>
* Revert the previous change I made to cpu_switch. It doesn't help asjake2000-12-082-3/+5
| | | | much as I thought it would and according to bde was a pessimization.
* Staticize some malloc M_ instances.phk2000-12-084-5/+7
|
* Fix a jump to the wrong label, <sigh>. Put a period at the end of ajake2000-12-081-2/+2
| | | | | | sentence in a comment. Submitted by: bde
* Argh, revert the clobber changes. Since %ecx and %edx aren't call safe,jhb2000-12-081-9/+9
| | | | | | | calling the C functions mtx_enter_hard() and mtx_exit_hard() clobbers them. Note that %eax is also not call safe, but it is already clobbered due to cmpxchg. However, now we are back to not compiling again, so these macros are still left disabled for now.
* Change the calling conventions of the MTX_ENTER macro to matchjake2000-12-081-11/+13
| | | | | | | that of MTX_EXIT. Don't assume that the reg parameter to MTX_ENTER holds curproc, load it explicitly. Put semi-colons at the end of the macros to be more consistent and so its harder to forget them when these change.
* Well, the previous commit wasn't entirely correct either. For now, justjhb2000-12-081-1/+2
| | | | | disable the optimized mutex micro-operations for the non-I386_CPU case and fall back to the C stubs that call the atomic_foo() inlines.
* Move extern tsc_present outside function to quelch a warning.phk2000-12-071-1/+4
|
* Create a pmtimer device instance for GENERIC and NEWCARD kernels by default.iwasaki2000-12-072-0/+2
| | | | Submitted by: Masayuki FUKUI <fukui@sonic.nm.fujitsu.co.jp>
* Fix broken register restraints that needlessly clobbered registers %ecxjhb2000-12-071-13/+13
| | | | and %edx resulting in gcc not having enough registers left to work with.
* This is kind of a nasty hack, but it appears to solve the Compaq DL360peter2000-12-063-6/+39
| | | | | | | | SMP problem. Compaq, in their infinite wisdom, forgot to put the IO apic intpin #0 connection to the 8259 PIC into the mptable. This hack is to look and see if intpin #0 has *no* table entry and adds a fake ExtInt entry for the remap routines to use. isa/clock.c will still test the interrupts. This entry is only ever used on an already broken system.
* Move io_apic_{read,write} from apic_ipl.s (where they do not belong) intopeter2000-12-063-33/+26
| | | | | | mpapic.c. This gives us the benefit of C type checking. These functions are not called in any critical paths and are not used by the interrupt routines.
* GC unused assembler function apic_eoi()peter2000-12-062-8/+0
|
* Remove the last of the MD netisr code. It is now all MI. Removejake2000-12-054-56/+0
| | | | | | | | spending, which was unused now that all software interrupts have their own thread. Make the legacy schednetisr use an atomic op for setting bits in the netisr mask. Reviewed by: jhb
* Cleanup some leftover lint from the old interrupt system.peter2000-12-0415-430/+90
| | | | | | | | Also, while here, run up to 32 interrupt sources on APIC systems. Normalize INTREN/INTRDIS so they are the same on both UP and SMP systems rather than sometimes a macro, and sometimes a function. Reviewed by: jhb, jakeb
* (1) Allow a stray lock prefix to be compiled out with thejake2000-12-041-16/+24
| | | | | | | | | | | | | MPLOCKED macro (2) Use decimal 12 rather than hex 0xc in an addl (3) Implement MTX_ENTER for the I386_CPU case (4) Use semi-colons between instructions to allow MTX_ENTER and MTX_ENTER_WITH_RECURSION to be assembled (5) Use incl instead of incw to increment the recusion count (6) 10 is not a valid label, use 7, 8 and 9 rather than 8, 9 and 10 (7) Sort numeric labels Submitted by: bde (2, 4, and 5)
* Add the NS DP83815 to the list of supported chips by the sis driver.alex2000-12-031-2/+4
| | | | Inspired by: Oliver Fromme
* Check return value of malloc correctly and use M_ZERO.dwmalone2000-12-031-7/+6
|
* Change cpu_switch to explicitly popl the callers program counter andjake2000-12-032-5/+3
| | | | | | | pushl that of the new process, rather than doing a movl (%esp) and assuming that the stack has been setup right. This make the initial stack setup slightly more sane, and will make it easier to stick an interrupted process onto the run queue without its knowing.
* Namespace cleanup. Remove some #includes in favour of an explicitmarkm2000-12-023-3/+12
| | | | | | declaration. Asked for by: bde
* Protect access to p_stat with sched_lock.jhb2000-12-011-0/+2
|
* Fix this slightly better by using NON_GPROF_RET instead of duplicatingjhb2000-12-011-1/+1
| | | | | | hard-coded asm. Suggested by: bde
* Change doreti to take a trapframe instead of an intrframe.jake2000-12-017-18/+14
| | | | | | Remove associated pushes of dummy units to convert frame. Reviewed by: jhb
* Revert the previous change to this file. We have to hardcode in the opcodejhb2000-11-301-1/+1
| | | | | | | for return because we do Evil Things(tm) with a 'ret' macro in asmacros.h. Noticed by: markm
* remove unneded sys/ucred.h includesalfred2000-11-301-1/+0
|
* Don't use p->p_sigstk.ss_flags to keep state of whether themarcel2000-11-306-27/+32
| | | | | | | | | | | | | | | 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
OpenPOWER on IntegriCloud