aboutsummaryrefslogtreecommitdiff
path: root/sys/pc98
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't waste a page of KVA for the boot-time memory test on x86. For amd64,John Baldwin2014-02-111-2/+2
| | | | | | | | | | | reuse the first page of the crashdumpmap as CMAP1/CADDR1. For i386, remove CMAP1/CADDR1 entirely and reuse CMAP3/CADDR3 for the memory test. Reviewed by: alc, peter MFC after: 2 weeks Notes: svn path=/head/; revision=261781
* Move <machine/apicvar.h> to <x86/apicvar.h>.John Baldwin2014-01-232-7/+1
| | | | Notes: svn path=/head/; revision=261087
* Fix a typo.John Baldwin2013-12-051-1/+1
| | | | Notes: svn path=/head/; revision=259015
* Make process descriptors standard part of the kernel. rwhod(8) alreadyPawel Jakub Dawidek2013-11-301-1/+0
| | | | | | | | | | | requires process descriptors to work and having PROCDESC in GENERIC seems not enough, especially that we hope to have more and more consumers in the base. MFC after: 3 days Notes: svn path=/head/; revision=258768
* - For kernel compiled only with KDTRACE_HOOKS and not any lock debuggingAttilio Rao2013-11-251-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | option, unbreak the lock tracing release semantic by embedding calls to LOCKSTAT_PROFILE_RELEASE_LOCK() direclty in the inlined version of the releasing functions for mutex, rwlock and sxlock. Failing to do so skips the lockstat_probe_func invokation for unlocking. - As part of the LOCKSTAT support is inlined in mutex operation, for kernel compiled without lock debugging options, potentially every consumer must be compiled including opt_kdtrace.h. Fix this by moving KDTRACE_HOOKS into opt_global.h and remove the dependency by opt_kdtrace.h for all files, as now only KDTRACE_FRAMES is linked there and it is only used as a compile-time stub [0]. [0] immediately shows some new bug as DTRACE-derived support for debug in sfxge is broken and it was never really tested. As it was not including correctly opt_kdtrace.h before it was never enabled so it was kept broken for a while. Fix this by using a protection stub, leaving sfxge driver authors the responsibility for fixing it appropriately [1]. Sponsored by: EMC / Isilon storage division Discussed with: rstone [0] Reported by: rstone [1] Discussed with: philip Notes: svn path=/head/; revision=258541
* x86: Allow users to change PSL_RF via ptrace(PT_SETREGS...)Ed Maste2013-11-141-33/+3
| | | | | | | | | | | | | | | | Debuggers may need to change PSL_RF. Note that tf_eflags is already stored in the signal context during signal handling and PSL_RF previously could be modified via sigreturn, so this change should not provide any new ability to userspace. For background see the thread at: http://lists.freebsd.org/pipermail/freebsd-i386/2007-September/005910.html Reviewed by: jhb, kib Sponsored by: DARPA, AFRL Notes: svn path=/head/; revision=258135
* MFi386: r254619Jung-uk Kim2013-08-221-17/+0
| | | | | | | | | Reimplement atomic_load_acq_64() and atomic_store_rel_64() for i386. Noticed by: tinderbox Notes: svn path=/head/; revision=254663
* Add process descriptors support to the GENERIC kernel. It is already beingPawel Jakub Dawidek2013-08-181-0/+1
| | | | | | | | | | | | used by the tools in base systems and with sandboxing more and more tools the usage should only increase. Submitted by: Mariusz Zaborski <oshogbo@FreeBSD.org> Sponsored by: Google Summer of Code 2013 MFC after: 1 month Notes: svn path=/head/; revision=254480
* Replace kernel virtual address space allocation with vmem. This providesJeff Roberson2013-08-071-4/+2
| | | | | | | | | | | | | | | | transparent layering and better fragmentation. - Normalize functions that allocate memory to use kmem_* - Those that allocate address space are named kva_* - Those that operate on maps are named kmap_* - Implement recursive allocation handling for kmem_arena in vmem. Reviewed by: alc Tested by: pho Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=254025
* Back out r253779 & r253786.David E. O'Brien2013-07-311-1/+0
| | | | Notes: svn path=/head/; revision=253845
* Decouple yarrow from random(4) device.David E. O'Brien2013-07-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Make Yarrow an optional kernel component -- enabled by "YARROW_RNG" option. The files sha2.c, hash.c, randomdev_soft.c and yarrow.c comprise yarrow. * random(4) device doesn't really depend on rijndael-*. Yarrow, however, does. * Add random_adaptors.[ch] which is basically a store of random_adaptor's. random_adaptor is basically an adapter that plugs in to random(4). random_adaptor can only be plugged in to random(4) very early in bootup. Unplugging random_adaptor from random(4) is not supported, and is probably a bad idea anyway, due to potential loss of entropy pools. We currently have 3 random_adaptors: + yarrow + rdrand (ivy.c) + nehemeiah * Remove platform dependent logic from probe.c, and move it into corresponding registration routines of each random_adaptor provider. probe.c doesn't do anything other than picking a specific random_adaptor from a list of registered ones. * If the kernel doesn't have any random_adaptor adapters present then the creation of /dev/random is postponed until next random_adaptor is kldload'ed. * Fix randomdev_soft.c to refer to its own random_adaptor, instead of a system wide one. Submitted by: arthurmesh@gmail.com, obrien Obtained from: Juniper Networks Reviewed by: obrien Notes: svn path=/head/; revision=253779
* MFi386: revision 251039Yoshihiro Takahashi2013-06-011-1/+1
| | | | | | | Use slightly more idiomatic expression to get the address of array. Notes: svn path=/head/; revision=251222
* Tidy up some CVS workarounds.Peter Wemm2013-05-122-2/+0
| | | | Notes: svn path=/head/; revision=250544
* - Correct mispellings of word resourceGabor Kovesdan2013-04-171-2/+2
| | | | | | | Submitted by: Christoph Mallon <christoph.mallon@gmx.de> Notes: svn path=/head/; revision=249586
* Merge from projects/counters: counter(9).Gleb Smirnoff2013-04-081-0/+6
| | | | | | | | | | | | | | | | Introduce counter(9) API, that implements fast and raceless counters, provided (but not limited to) for gathering of statistical data. See http://lists.freebsd.org/pipermail/freebsd-arch/2013-April/014204.html for more details. In collaboration with: kib Reviewed by: luigi Tested by: ae, ray Sponsored by: Nginx, Inc. Notes: svn path=/head/; revision=249268
* Remove all legacy ATA code parts, not used since options ATA_CAM enabled inAlexander Motin2013-04-042-2/+0
| | | | | | | | | | | | most kernels before FreeBSD 9.0. Remove such modules and respective kernel options: atadisk, ataraid, atapicd, atapifd, atapist, atapicam. Remove the atacontrol utility and some man pages. Remove useless now options ATA_CAM. No objections: current@, stable@ MFC after: never Notes: svn path=/head/; revision=249083
* Switch the vm_object mutex to be a rwlock. This will enable in theAttilio Rao2013-03-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | future further optimizations where the vm_object lock will be held in read mode most of the time the page cache resident pool of pages are accessed for reading purposes. The change is mostly mechanical but few notes are reported: * The KPI changes as follow: - VM_OBJECT_LOCK() -> VM_OBJECT_WLOCK() - VM_OBJECT_TRYLOCK() -> VM_OBJECT_TRYWLOCK() - VM_OBJECT_UNLOCK() -> VM_OBJECT_WUNLOCK() - VM_OBJECT_LOCK_ASSERT(MA_OWNED) -> VM_OBJECT_ASSERT_WLOCKED() (in order to avoid visibility of implementation details) - The read-mode operations are added: VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(), VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED() * The vm/vm_pager.h namespace pollution avoidance (forcing requiring sys/mutex.h in consumers directly to cater its inlining functions using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h consumers now must include also sys/rwlock.h. * zfs requires a quite convoluted fix to include FreeBSD rwlocks into the compat layer because the name clash between FreeBSD and solaris versions must be avoided. At this purpose zfs redefines the vm_object locking functions directly, isolating the FreeBSD components in specific compat stubs. The KPI results heavilly broken by this commit. Thirdy part ports must be updated accordingly (I can think off-hand of VirtualBox, for example). Sponsored by: EMC / Isilon storage division Reviewed by: jeff Reviewed by: pjd (ZFS specific review) Discussed with: alc Tested by: pho Notes: svn path=/head/; revision=248084
* MFcalloutng:Davide Italiano2013-02-281-6/+7
| | | | | | | | | | | | | | When CPU becomes idle, cpu_idleclock() calculates time to the next timer event in order to reprogram hw timer. Return that time in sbintime_t to the caller and pass it to acpi_cpu_idle(), where it can be used as one more factor (quite precise) to extimate furter sleep time and choose optimal sleep state. This is a preparatory change for further callout improvements will be committed in the next days. The commmit is not targeted for MFC. Notes: svn path=/head/; revision=247454
* Remove support for plip from the GENERIC kernel as no systems in theEitan Adler2013-02-011-1/+0
| | | | | | | | | | | | | | last 10 years require this support. Discussed with: db Discussed with: kib Reviewed by: imp Reviewed by: jhb Reviewed by: -hackers Approved by: cperciva (mentor) Notes: svn path=/head/; revision=246222
* MFi386: Make similar changes that were made to atkbdc in r245315.Warner Losh2013-01-111-7/+9
| | | | Notes: svn path=/head/; revision=245317
* MFi386: r232521Yoshihiro Takahashi2013-01-041-33/+0
| | | | | | | Exclude USB drivers (except umass and ukbd) from main kernel image. Notes: svn path=/head/; revision=245035
* As discussed on -current last October, remove the firewire drivers fromDag-Erling Smørgrav2013-01-031-1/+0
| | | | | | | GENERIC. Notes: svn path=/head/; revision=244992
* Reduce diffs against i386.Yoshihiro Takahashi2012-11-101-1/+3
| | | | Notes: svn path=/head/; revision=242869
* Fix some KASSERTs.Yoshihiro Takahashi2012-11-101-1/+3
| | | | | | | They are missing changes from r208833, r227394 and r227442. Notes: svn path=/head/; revision=242868
* MFi386: r211924Yoshihiro Takahashi2012-11-101-1/+10
| | | | | | | Register an interrupt vector for DTrace return probes. Notes: svn path=/head/; revision=242867
* Use ANSI prototype to fix build with clang.Yoshihiro Takahashi2012-11-101-77/+43
| | | | | | | MFC after: 1 week Notes: svn path=/head/; revision=242866
* The 'testing memory' patch gets printed too many timesEitan Adler2012-10-221-2/+0
| | | | | | | Approved by: cperciva (implicit) Notes: svn path=/head/; revision=241880
* Explain the upcoming delay by printing a message when the kernelEitan Adler2012-10-221-0/+2
| | | | | | | | | | | is about to begin testing memory. Reviewed by: dteske, adri Approved by: cperciva MFC after: 1 week Notes: svn path=/head/; revision=241850
* Add an unified macro to deny ability from the compiler to reorderAttilio Rao2012-10-091-1/+1
| | | | | | | | | | | | | instruction loads/stores at its will. The macro __compiler_membar() is currently supported for both gcc and clang, but kernel compilation will fail otherwise. Reviewed by: bde, kib Discussed with: dim, theraven MFC after: 2 weeks Notes: svn path=/head/; revision=241374
* Reverts r234074,234105,234564,234723,234989,235231-235232 and part ofAttilio Rao2012-10-091-5/+0
| | | | | | | | | | | r234247. Use, instead, the static intializer introduced in r239923 for x86 and sparc64 intr_cpus, unwinding the code to the initial version. Reviewed by: marius Notes: svn path=/head/; revision=241371
* MFi386: revision 237445Yoshihiro Takahashi2012-09-231-4/+11
| | | | | | | | | | | | | Commit changes missed from r237435. Properly calculate the signal trampoline addresses after the shared page is enabled. Handle FreeBSD ABIs without shared page support too. MFi386: revision 238792 Introduce curpcb magic variable. Notes: svn path=/head/; revision=240855
* Grammar fix: s/NIC's/NICs/Glen Barber2012-08-261-1/+1
| | | | | | | MFC after: 3 days Notes: svn path=/head/; revision=239699
* Partially revert r217515 so that the mem_range_softc variable is alwaysJohn Baldwin2012-07-091-0/+3
| | | | | | | | | | present on x86 kernels. This fixes the build of kernels that include 'device acpi' but do not include 'device mem'. MFC after: 1 month Notes: svn path=/head/; revision=238310
* Implement mechanism to export some kernel timekeeping data toKonstantin Belousov2012-06-221-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | usermode, using shared page. The structures and functions have vdso prefix, to indicate the intended location of the code in some future. The versioned per-algorithm data is exported in the format of struct vdso_timehands, which mostly repeats the content of in-kernel struct timehands. Usermode reading of the structure can be lockless. Compatibility export for 32bit processes on 64bit host is also provided. Kernel also provides usermode with indication about currently used timecounter, so that libc can fall back to syscall if configured timecounter is unknown to usermode code. The shared data updates are initiated both from the tc_windup(), where a fast task is queued to do the update, and from sysctl handlers which change timecounter. A manual override switch kern.timecounter.fast_gettime allows to turn off the mechanism. Only x86 architectures export the real algorithm data, and there, only for tsc timecounter. HPET counters page could be exported as well, but I prefer to not further glue the kernel and libc ABI there until proper vdso-based solution is developed. Minimal stubs neccessary for non-x86 architectures to still compile are provided. Discussed with: bde Reviewed by: jhb Tested by: flo MFC after: 1 month Notes: svn path=/head/; revision=237433
* MFprojects/zfsd:Alexander Motin2012-05-241-1/+1
| | | | | | | Generalize and unify ses device description. Notes: svn path=/head/; revision=235898
* Add SMP/i386 suspend/resume support.Mitsuru IWASAKI2012-05-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most part is merged from amd64. - i386/acpica/acpi_wakecode.S Replaced with amd64 code (from realmode to paging enabling code). - i386/acpica/acpi_wakeup.c Replaced with amd64 code (except for wakeup_pagetables stuff). - i386/include/pcb.h - i386/i386/genassym.c Added PCB new members (CR0, CR2, CR4, DS, ED, FS, SS, GDT, IDT, LDT and TR) needed for suspend/resume, not for context switch. - i386/i386/swtch.s Added suspendctx() and resumectx(). Note that savectx() was not changed and used for suspending (while amd64 code uses it). BSP and AP execute the same sequence, suspendctx(), acpi_wakecode() and resumectx() for suspend/resume (in case of UP system also). - i386/i386/apic_vector.s Added cpususpend(). - i386/i386/mp_machdep.c - i386/include/smp.h Added cpususpend_handler(). - i386/include/apicvar.h - kern/subr_smp.c - sys/smp.h Added IPI_SUSPEND and suspend_cpus(). - i386/i386/initcpu.c - i386/i386/machdep.c - i386/include/md_var.h - pc98/pc98/machdep.c Moved initializecpu() declarations to md_var.h. MFC after: 3 days Notes: svn path=/head/; revision=235622
* Clean up the intr* MD KPI from the SMP dependency, removing a cause ofAttilio Rao2012-04-261-2/+0
| | | | | | | | | | | | | | discrepancy between modules and kernel, but deal with SMP differences within the functions themselves. As an added bonus this also helps in terms of code readability. Requested by: gibbs Reviewed by: jhb, marius MFC after: 1 week Notes: svn path=/head/; revision=234723
* MFi386: revisions 234074 and 234105Yoshihiro Takahashi2012-04-221-0/+7
| | | | | | | - Adding the BSP as an interrupt target directly in cpu_startup(). Notes: svn path=/head/; revision=234564
* Move the legacy(4) driver to x86.John Baldwin2012-03-301-6/+0
| | | | Notes: svn path=/head/; revision=233707
* Remove pty(4) from our kernel configurations.Ed Schouten2012-03-211-1/+0
| | | | | | | | | | | | | | As of FreeBSD 8, this driver should not be used. Applications that use posix_openpt(2) and openpty(3) use the pts(4) that is built into the kernel unconditionally. If it turns out high profile depend on the pty(4) module anyway, I'd rather get those fixed. So please report any issues to me. The pty(4) module is still available as a kernel module of course, so a simple `kldload pty' can be used to run old-style pseudo-terminals. Notes: svn path=/head/; revision=233271
* Copy amd64 sysarch.h to x86 and merge with i386 sysarch.h. ReplaceTijl Coosemans2012-03-191-1/+1
| | | | | | | amd64/i386/pc98 sysarch.h with stubs. Notes: svn path=/head/; revision=233209
* Copy i386 specialreg.h to x86 and merge with amd64 specialreg.h. ReplaceTijl Coosemans2012-03-191-1/+1
| | | | | | | amd64/i386/pc98 specialreg.h with stubs. Notes: svn path=/head/; revision=233207
* Copy i386 psl.h to x86 and replace amd64/i386/pc98 psl.h with stubs.Tijl Coosemans2012-03-191-1/+1
| | | | Notes: svn path=/head/; revision=233204
* Copy i386 reg.h to x86 and merge with amd64 reg.h. Replace i386/amd64/pc98Tijl Coosemans2012-03-181-1/+1
| | | | | | | | | | | | | | | | | | | | reg.h with stubs. The tREGISTER macros are only made visible on i386. These macros are deprecated and should not be available on amd64. The i386 and amd64 versions of struct reg have been renamed to struct __reg32 and struct __reg64. During compilation either __reg32 or __reg64 is defined as reg depending on the machine architecture. On amd64 the i386 struct is also available as struct reg32 which is used in COMPAT_FREEBSD32 code. Most of compat/ia32/ia32_reg.h is now IA64 only. Reviewed by: kib (previous version) Notes: svn path=/head/; revision=233124
* - Fix to build a native i386 kernel without the SMP and atpic.Yoshihiro Takahashi2012-03-161-0/+20
| | | | | | | | | | | | - Merge r232744 changes to pc98. (Allow a kernel to be built with 'nodevice atpic'.) - Move ICU related defines from x86/isa/atpic.c to x86/isa/icu.h and use them in x86/x86/intr_machdep.c. Reviewed by: jhb Notes: svn path=/head/; revision=233031
* Disable the option VFS_ALLOW_NONMPSAFE by default on all the supportedAttilio Rao2012-03-061-3/+0
| | | | | | | | | | | | | | | platforms. This will make every attempt to mount a non-mpsafe filesystem to the kernel forbidden, unless it is expressely compiled with VFS_ALLOW_NONMPSAFE option. This patch is part of the effort of killing non-MPSAFE filesystems from the tree. No MFC is expected for this patch. Notes: svn path=/head/; revision=232619
* Copy amd64 ptrace.h to x86 and merge with i386 ptrace.h. ReplaceTijl Coosemans2012-03-041-1/+1
| | | | | | | | | | | | | amd64/i386/pc98 ptrace.h with stubs. For amd64 PT_GETXSTATE and PT_SETXSTATE have been redefined to match the i386 values. The old values are still supported but should no longer be used. Reviewed by: kib Notes: svn path=/head/; revision=232520
* Copy amd64 trap.h to x86 and replace amd64/i386/pc98 trap.h with stubs.Tijl Coosemans2012-03-041-1/+1
| | | | Notes: svn path=/head/; revision=232492
* Copy amd64 float.h to x86 and merge with i386 float.h. ReplaceTijl Coosemans2012-03-041-1/+1
| | | | | | | amd64/i386/pc98 float.h with stubs. Notes: svn path=/head/; revision=232491
* Copy amd64 stdarg.h to x86 and replace amd64/i386/pc98 stdarg.h with stubs.Tijl Coosemans2012-02-281-1/+1
| | | | Notes: svn path=/head/; revision=232276