summaryrefslogtreecommitdiffstats
path: root/sys/i386/include
Commit message (Collapse)AuthorAgeFilesLines
* Fixed syntax errors and style bugs in previous commit. The syntaxbde2000-06-143-6/+6
| | | | | | errors were normally harmless because they were in unreachable code and gcc apparently doesn't check the syntax inside asm statements that it optimizes away.
* Further fixes for multiple-IO-APIC systems from Tor Egge:msmith2000-05-312-7/+3
| | | | | | | | | | | | | | | | | | | | | | | Further experimentation showed that some Dell 2450 machines with the prevention kludge installed still got T_RESERVED traps. CPU interrupt vector 0x7A was observed to be triggered. This might have been the bitwise OR of two different vectors sent from each of the IOAPICs at the same time. IOAPIC #0: 0x68 --> irq 8: RTC timer interrupt IOAPIC #1: 0x32 --> irq 18: scsi host adapter or network interface ---- 0x7a --> T_RESERVED Both IOAPICs had ID 0. Appendix B.3 in the MP spec indicates that the operating system is responsible for assigning unique IDs to the IOAPICs. The enclosed patch programs the IOAPIC IDs according to the IOAPIC entries in the MP table. Submitted by: tegge
* Bump the default NBUS value to 8, in lieu of actually sizing itmsmith2000-05-311-1/+1
| | | | dynamically. Too many systems have more than 4 busses now.
* Pack the SWI bits to save some time and space.bde2000-05-311-2/+2
|
* Add SWI_TQ_MASK to all interrupt masks except SWI_CLOCK_MASK. Use abde2000-05-311-12/+12
| | | | | | | new macro SWI_LOW_MASK to give the mask for low priority SWIs instead of hard-coding this mask as SWI_CLOCK_MASK. Reviewed by: dfr
* Sync with sys/i386/include/bus_at386.h revision 1.9.nyan2000-05-311-4/+15
|
* Add taskqueue system for easy-to-use SWIs among other things.dfr2000-05-281-0/+3
| | | | Reviewed by: arch
* Back out the previous change to the queue(3) interface.jake2000-05-261-4/+4
| | | | | | It was not discussed and should probably not happen. Requested by: msmith and others
* Change the way that the queue(3) structures are declared; don't assume thatjake2000-05-231-4/+4
| | | | | | | | the type argument to *_HEAD and *_ENTRY is a struct. Suggested by: phk Reviewed by: phk Approved by: mdodd
* Implement an optimization of the VM<->pmap API. Pass vm_page_t's directlypeter2000-05-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to various pmap_*() functions instead of looking up the physical address and passing that. In many cases, the first thing the pmap code was doing was going to a lot of trouble to get back the original vm_page_t, or it's shadow pv_table entry. Inspired by: John Dyson's 1998 patches. Also: Eliminate pv_table as a seperate thing and build it into a machine dependent part of vm_page_t. This eliminates having a seperate set of structions that shadow each other in a 1:1 fashion that we often went to a lot of trouble to translate from one to the other. (see above) This happens to save 4 bytes of physical memory for each page in the system. (8 bytes on the Alpha). Eliminate the use of the phys_avail[] array to determine if a page is managed (ie: it has pv_entries etc). Store this information in a flag. Things like device_pager set it because they create vm_page_t's on the fly that do not have pv_entries. This makes it easier to "unmanage" a page of physical memory (this will be taken advantage of in subsequent commits). Add a function to add a new page to the freelist. This could be used for reclaiming the previously wasted pages left over from preloaded loader(8) files. Reviewed by: dillon
* We use a MI version of this now, which is mostly this file repo copied toobrien2000-05-191-24/+0
| | | | dev/ppbus/lptio.h.
* Implement real read/write barriers for the i386. Despite the comment inmsmith2000-05-182-8/+30
| | | | previous versions of this file, some barrier functionality is required.
* When using _asm{} in GCC, one must specify the operand's size if oneobrien2000-05-101-9/+9
| | | | | | specifies the instruction's operation size. GCC will default to 32-bit operands reguardless of the prototype (ie, formal parameters' type) of an inline function.
* Fixed bus_space_{read,write}_region_* functions.nyan2000-05-071-60/+18
| | | | Pointed out: Motomichi Matsuzaki <mzaki@e-mail.ne.jp>
* Make in_cksum() a macro call to in_cksum_skip(), since it provides thejlemon2000-05-061-3/+2
| | | | | | | same functionality. Sharing code should help cache issues. Remove in_cksum_partial, since its not being used, and we now have a way to compute partial checksums on mbuf chains.
* Add $FreeBSD$peter2000-05-015-0/+8
|
* * Use sys/sys/random.h rather than a i386 specific one.obrien2000-04-241-90/+0
| | | | | * There was nothing that should be machine dependant about i386/isa/random_machdep.c, so it is now sys/kern/kern_random.c.
* Some more i386-only BIOS-friendliness:msmith2000-04-161-0/+11
| | | | | | | | | - Add support for using the PCI BIOS functions for configuration space accesses, and make this the default. - Make PNPBIOS the default (obsoletes the PNPBIOS config option). - Add two new boot-time tunables to disable each of the above.
* Add multiple #include protectionroger2000-04-041-0/+6
| | | | Submitted by: Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
* Add support for "green" saver mode.hm2000-03-311-1/+2
|
* Make sysv-style shared memory tuneable params fully runtime adjustablepeter2000-03-301-7/+0
| | | | | | | | 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.
* Change the mbuf size from 128 -> 256. Increasing the mbuf header sizejlemon2000-03-291-1/+1
| | | | | | | | caused some headers not to fit in MHLEN any more. This matches the current size on the alpha, so it shouldn't cause problems. Problem observed by: Geoff Rehmet <geoff@is.co.za> Originally suggested by: shin
* Added indirect pio into the bus space stuff for the NEC PC-98. bus.hkato2000-03-295-1415/+544
| | | | | | | | | | | includes one of bus_at386.h and bus_pc98.h. Becuase only bus_pc98.h supports indirect pio and bus_at386.h is identical to old bus.h, there is no functional change in PC-AT's kernels. That is, it cannot cause performance loss. Submitted by: nyan Reviewed by: imp bde and luoqi provided useful comments for earlier version.
* The SMP cleanup commit broke UP compiles. Make UP compiles work again.dillon2000-03-281-1/+18
|
* pcvt cleanup.hm2000-03-281-70/+20
| | | | remove obsolete stuff resulting from the pcvt kernel part cleanup.
* Commit major SMP cleanups and move the BGL (big giant lock) in thedillon2000-03-289-162/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | syscall path inward. A system call may select whether it needs the MP lock or not (the default being that it does need it). A great deal of conditional SMP code for various deadended experiments has been removed. 'cil' and 'cml' have been removed entirely, and the locking around the cpl has been removed. The conditional separately-locked fast-interrupt code has been removed, meaning that interrupts must hold the CPL now (but they pretty much had to anyway). Another reason for doing this is that the original separate-lock for interrupts just doesn't apply to the interrupt thread mechanism being contemplated. Modifications to the cpl may now ONLY occur while holding the MP lock. For example, if an otherwise MP safe syscall needs to mess with the cpl, it must hold the MP lock for the duration and must (as usual) save/restore the cpl in a nested fashion. This is precursor work for the real meat coming later: avoiding having to hold the MP lock for common syscalls and I/O's and interrupt threads. It is expected that the spl mechanisms and new interrupt threading mechanisms will be able to run in tandem, allowing a slow piecemeal transition to occur. This patch should result in a moderate performance improvement due to the considerable amount of code that has been removed from the critical path, especially the simplification of the spl*() calls. The real performance gains will come later. Approved by: jkh Reviewed by: current, bde (exception.s) Some work taken from: luoqi's patch
* Add support for offloading IP/TCP/UDP checksums to NIC hardware whichjlemon2000-03-271-0/+25
| | | | supports them.
* Update sysinstall to use struct uc_device instead of struct isa_devicejhb2000-03-241-0/+73
| | | | | | for generating /boot/kernel.conf. Since this structure is shared, move its definition out to a header file, just as struct isa_device was defined in a header file. This fixes the sysinstall breakage in -current.
* Exchange numerical values for FPE_INTDIV and FPE_INTOVF, so that theycracauer2000-03-201-2/+2
| | | | | | are compatible with the older ones implemented in FreeBSD 3.x. PR: 15488
* - Add Support for the following PS/2 mice:yokota2000-03-181-4/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Microsoft IntelliMouse Explorer: 2 buttons on top, 2 side buttons and a wheel which also acts as the middle button. The mouse is recognized as "IntelliMouse Explorer". - Genius NetScroll Optical: 2 buttons on top, 2 side buttons and a wheel which also acts as the middle button. The mouse is recognized as "NetMouse/NetScroll Optical". - MouseSystems SmartScroll Mouse (OEM from Genius?): 3 buttons on top, 1 side button and a wheel. The mouse is recognized as Genius "NetScroll". - IBM ScrollPoint: 2 buttons on top and a stick between the buttons. The stick can perform "horizontal scroll" in W*ndows environment. The horizontal movement of the stick is detected. It is currently mapped to the Z axis movement in the same way as the first wheel. The mouse is recognized as "MouseMan+", as it is considered to be a variation of MouseMan. - A4 Tech 4D and 4D+ mice. These mice have two wheels! The movement of the second wheel is reported as the Z axis movement in the same way as the first wheel. These mice are recognized as "4D Mouse" and "4D+ Mouse". - Tweak IntelliMouse support code a bit so that less-than-compatible wheel mice can work properly with the psm driver. - Add driver configuration flags which correspond to the kernel options PSM_HOOKRESUME and PSM_RESETAFTERSUSPEND, so that we don't need to recompile the kernel when we need these functions. - Properly keep track of the irq resource. - Add a watchdog timer in case interrupts are lost (experimental). - Add `detach' function (experimental).
* Change the default FPU control word so that exceptions for newcracauer2000-03-101-34/+4
| | | | | | | processes are now masked until set by fpsetmask(3). Submitted by: bde Approved by: jkh, bde
* Patches that eliminate extra context switches in FIFO case.dufault2000-03-021-2/+3
| | | | | | | Fixes p1003_1b regression test in the simple case of no RR and FIFO processes competing. Reviewed by: jkh, bde
* Fix an __asm operand constraint which broke the -O3 and -O0 builds.bsd2000-02-211-6/+6
| | | | | Submitted by: Seigo Tanimura <tanimura@freebsd.org> Approved by: jkh
* Don't forget to reset the hardware debug registers when a process thatbsd2000-02-202-0/+51
| | | | | | | | | | was using them exits. Don't allow a user process to cause the kernel to take a TRCTRAP on a user space address. Reviewed by: jlemon, sef Approved by: jkh
* Document the support in the kernel for hardware debug registers on theobrien2000-02-121-0/+3
| | | | | | ix86 platform which allows for hardware watchpoints, etc... Submitted by: Brian Dean <brdean@unx.sas.com>
* Add support for WEP (encryption) for silver and gold WaveLAN/IEEE turbo cards.wpaul2000-02-021-0/+15
| | | | | | | | | | | | Also update wicontrol to enable/disable encryption, set WEP keys and set the TX key index. Silver cards only have 40-bit keys. This is something of a quick hack, but it works well enough for me to commit this from the LinuxWorld exhibit floor. The WEP support only shows up if you have a card that supports it. Would have been approved by: jkh, if he hadn't wandered off somewhere Approved in his place by: msmith, who's standing right here
* Fixed the profiling version ALTENTRY(). Again. The previous versionbde2000-01-251-5/+9
| | | | | didn't set up the frame pointer before calling mcount, and then jumped to the wrong place in ENTRY() to defeat the point of the jump.
* Update to driver 2.07roger2000-01-241-1/+2
| | | | Add new Channel Set for France. Submitted by Daniel Dagneaux <dagneaux@lure.u-psud.fr>
* Remove old specialix pre-newbus specialix driver. It lives on inpeter2000-01-241-495/+0
| | | | sys/dev/si now, including with a theoretically working eisa attachment.
* Move ENTRY and ALTENTRY definitions to asm.h where they belong.jasone2000-01-201-1/+4
| | | | | | Unbreak profiling. Again. Submitted by: bde
* Protect the i386 machine-dependant type definitions of __int64_tsheldonh2000-01-141-0/+2
| | | | and __uint64_t from lint(1) with /* LONGLONG */ comments.
* Allow SMP systems with an MCA bus to work properly.mdodd2000-01-132-4/+7
| | | | Reviewed by: peter
* Fixed style bugs related to the access functions for the bsfl and bsrlbde2000-01-091-31/+24
| | | | i386 instructions.
* Allow SMP && NCPU == 1 to work. From now on, there's no restriction on theluoqi2000-01-072-2/+6
| | | | | value of NCPU relative to the number of cpus physically present, the actual number of cpus utilized will be the smaller of the two.
* ISA device drivers use the ISA source interrupt number in locations wheretegge2000-01-042-6/+66
| | | | | | | | | | | | | | the low level interrupt handler number should be used. Change setup_apic_irq_mapping() to allocate low level interrupt handler X (Xintr${X}) for any ISA interrupt X mentioned in the MP table. Remove an assumption in the driver for the system clock (clock.c) that interrupts mentioned in the MP table as delivered to IOAPIC #0 intpin Y is handled by low level interrupt handler Y (Xintr${Y}) but don't assume that low level interrupt handler 0 (Xintr0) is used. Don't allocate two low level interrupt handlers for the system clock. Reviewed by: NOKUBI Hirotaka <hnokubi@yyy.or.jp>
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"peter1999-12-2930-59/+64
| | | | | | is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
* update to isdn4bsd beta release 0.90hm1999-12-146-14/+60
|
* Reclaim UPAGES_HOLE (8k) that was chopped out of process address space.peter1999-12-112-3/+1
| | | | | | | The UPAGES have not been there since Jan '96, but the hole was preserved for BSD/OS binary compatability. This has been fixed other ways (%ebx now has a pointer to PS_STRINGS), and the stack is nowhere near where it used to be so this hack isn't required anymore.
* User ldt sharing.luoqi1999-12-062-3/+24
|
* Switch over to using the generic joy driverpeter1999-12-051-20/+0
|
OpenPOWER on IntegriCloud