summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
Commit message (Collapse)AuthorAgeFilesLines
* unifdef -DVM_STACK - it's been on for a while for x86 and was checkedpeter1999-04-192-112/+2
| | | | and appeared to be working for the Alpha some time ago.
* Removed all traces of `p_switchtime'. The relevant timestamp is per-cpu,bde1999-02-281-2/+1
| | | | | | | | | | | | | not per-process. Keep it in `switchtime' consistently. It is now clear that the timestamp is always valid in fork_trampoline() except when the child is running on a previously idle cpu, which can only happen if there are multiple cpus, so don't check or set the timestamp in fork_trampoline except in the (i386) SMP case. Just remove the alpha code for setting it unconditionally, since there is no SMP case for alpha and the code had rotted. Parts reviewed by: dfr, phk
* Adjust idle zero-page fill hysteresis based on tests. Use 2/3 and 4/5dillon1999-02-082-8/+16
| | | | | | | zero-fill levels. Adjust comment for ozfod in vmmeter.h - this counter represents non-optimal ( on the fly ) zero fills, not prefills.
* Add hysteresis to alpha version of vm_page_zero_idle().dillon1999-02-082-28/+34
|
* Rip out PQ_ZERO queue. PQ_ZERO functionality is now combined in withdillon1999-02-082-12/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | PQ_FREE. There is little operational difference other then the kernel being a few kilobytes smaller and the code being more readable. * vm_page_select_free() has been *greatly* simplified. * The PQ_ZERO page queue and supporting structures have been removed * vm_page_zero_idle() revamped (see below) PG_ZERO setting and clearing has been migrated from vm_page_alloc() to vm_page_free[_zero]() and will eventually be guarenteed to remain tracked throughout a page's life ( if it isn't already ). When a page is freed, PG_ZERO pages are appended to the appropriate tailq in the PQ_FREE queue while non-PG_ZERO pages are prepended. When locating a new free page, PG_ZERO selection operates from within vm_page_list_find() ( get page from end of queue instead of beginning of queue ) and then only occurs in the nominal critical path case. If the nominal case misses, both normal and zero-page allocation devolves into the same _vm_page_list_find() select code without any specific zero-page optimizations. Additionally, vm_page_zero_idle() has been revamped. Hysteresis has been added and zero-page tracking adjusted to conform with the other changes. Currently hysteresis is set at 1/3 (lo) and 1/2 (hi) the number of free pages. We may wish to increase both parameters as time permits. The hysteresis is designed to avoid silly zeroing in borderline allocation/free situations.
* Mostly remove the VM_STACK OPTION.julian1999-01-262-2/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the definitions of a few items so that structures are the same whether or not the option itself is enabled. This allows people to enable and disable the option without recompilng the world. As the author says: |I ran into a problem pulling out the VM_STACK option. I was aware of this |when I first did the work, but then forgot about it. The VM_STACK stuff |has some code changes in the i386 branch. There need to be corresponding |changes in the alpha branch before it can come out completely. what is done: | |1) Pull the VM_STACK option out of the header files it appears in. This |really shouldn't affect anything that executes with or without the rest |of the VM_STACK patches. The vm_map_entry will then always have one |extra element (avail_ssize). It just won't be used if the VM_STACK |option is not turned on. | |I've also pulled the option out of vm_map.c. This shouldn't harm anything, |since the routines that are enabled as a result are not called unless |the VM_STACK option is enabled elsewhere. | |2) Add what appears to be appropriate code the the alpha branch, still |protected behind the VM_STACK switch. I don't have an alpha machine, |so we would need to get some testers with alpha machines to try it out. | |Once there is some testing, we can consider making the change permanent |for both i386 and alpha. | [..] | |Once the alpha code is adequately tested, we can pull VM_STACK out |everywhere. | Submitted by: "Richard Seaman, Jr." <dick@tar.com>
* Various changes to support OSF1 emulation:dfr1998-12-302-10/+10
| | | | | | | | | | | * Move the user stack from VM_MAXUSER_ADDRESS to a place below the 32bit boundary (needed to support 32bit OSF programs). This should also save one pagetable per process. * Add cvtqlsv to the set of instructions handled by the floating point software completion code. * Disable all floating point exceptions by default. * A minor change to execve to allow the OSF1 image activator to support dynamic loading.
* Removed bogus casts of USRSTACK and/or the other operand in binarybde1998-12-162-8/+8
| | | | expressions involving USRSTACK.
* Implement 'software completion' for floating point arithmetic. On thedfr1998-12-042-2/+26
| | | | | | | | | | | | | | | | | | alpha, operations involving non-finite numbers or denormalised numbers or operations which should generate such numbers will cause an arithmetic exception. For programs which follow some strict code generation rules, the kernel trap handler can then 'complete' the operation by emulating the faulting instruction. To use software completion, a program must be compiled with the arguments '-mtrap-precision=i' and '-mfp-trap-mode=su' or '-mfp-trap-mode=sui'. Programs compiled in this way can use non-finite and denormalised numbers at the expense of slightly less efficient code generation of floating point instructions. Programs not compiled with these options will receive a SIGFPE signal when non-finite or denormalised numbers are used or generated. Reviewed by: John Polstra <jdp@polstra.com>
* * Add hooks to allow the X server to access I/O ports and memory.dfr1998-11-151-1/+7
| | | | | | | | | * Update drivers to the latest version of the bus interface. The ISA drivers' use of the new resource api is minimal. Garrett has some much cleaner drivers which should be more easily shared between i386 and alpha. This has only been tested on cia based machines. It should work on lca and apecs but I might have broken something.
* Add the ability to specify where on the at_shutdown queue a handler ismsmith1998-10-301-2/+1
| | | | | | | | | installed. Remove cpu_power_down, and replace it with an entry at the end of the SHUTDOWN_FINAL queue in the only place it's used (APM). Submitted by: Some ideas from Bruce Walter <walter@fortean.com>
* A small fragment of new ISA framework: manifest constants for the resourceswollman1998-10-291-0/+43
| | | | implemented by the i386 root nexus.
* R_ALPHA_RELATIVE relocations need to add the value to the existing memorydfr1998-10-181-3/+3
| | | | contents.
* *gulp*. Jordan specifically OK'ed this..peter1998-10-161-33/+41
| | | | | | | | This is the bulk of the support for doing kld modules. Two linker_sets were replaced by SYSINIT()'s. VFS's and exec handlers are self registered. kld is now a superset of lkm. I have converted most of them, they will follow as a seperate commit as samples. This all still works as a static a.out kernel using LKM's.
* Change a bogus cast to the correct one.dfr1998-10-152-4/+4
|
* Typo fix.peter1998-10-141-2/+2
|
* Initial attempt to update the Alpha loader and kernel to use the machinepeter1998-10-141-2/+8
| | | | | | | | | | | | | | | | | | | | independent elf loader and have access to kld modules. Jordan and I were not sure how to create boot floppies, and the things we tried just made SRM laugh in our faces - but it was upset at boot1 which was not touched by these changes. Essentially this has been untested. :-( What this does is to steal the last three slots from the nine spare longs in the bootinfo_v1 struct to pass the module base pointer through. The startup code now to set up and fills in the module and environment structures, hopefully close enough to the i386 layout to be able to use the same kernel code. We now pass though the updated end of the kernel space used, rather than _end. (like the i386). If this does not work, it needs to be beaten into shape pronto. Otherwise it should be backed out before 3.0. Pre-approved in principle by: dfr
* Add support for adjkerntz (largely untested).dfr1998-10-061-1/+2
|
* Automatically detect which disk was booted and change the root to that disk.dfr1998-09-261-1/+3
|
* Add new functions fill_fpregs() and set_fpregs(), like fill_regs()jdp1998-09-142-17/+10
| | | | | | | | and set_regs() but for the floating point register state. The code is stolen from procfs_machdep.c, and moved out of there into machdep.c. These functions are needed for generating ELF core dumps.
* Machine dependant relocations for KLD.dfr1998-09-111-0/+111
|
* Add declaration of {aquire,release}_timer2().dfr1998-07-221-1/+3
|
* Overhaul the spl system so that it actually works properly.dfr1998-07-121-1/+2
|
* Don't bother calling pmap_emulate_reference() from cpu_fork(). It isn'tdfr1998-07-122-22/+2
| | | | needed and it panics a DIAGNOSTIC kernel.
* Add definition of p_switchtime.dfr1998-07-121-1/+2
|
* Add declaration of the NetBSD/alpha bootinfo.dfr1998-07-051-0/+59
|
* Major changes to the generic device framework for FreeBSD/alpha:dfr1998-06-141-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Eliminate bus_t and make it possible for all devices to have attached children. * Support dynamically extendable interfaces for drivers to replace both the function pointers in driver_t and bus_ops_t (which has been removed entirely. Two system defined interfaces have been defined, 'device' which is mandatory for all devices and 'bus' which is recommended for all devices which support attached children. * In addition, the alpha port defines two simple interfaces 'clock' for attaching various real time clocks to the system and 'mcclock' for the many different variations of mc146818 clocks which can be attached to different alpha platforms. This eliminates two more function pointer tables in favour of the generic method dispatch system provided by the device framework. Future device interfaces may include: * cdev and bdev interfaces for devfs to use in replacement for specfs and the fixed interfaces bdevsw and cdevsw. * scsi interface to replace struct scsi_adapter (not sure how this works in CAM but I imagine there is something similar there). * various tailored interfaces for different bus types such as pci, isa, pccard etc.
* Add missing copyrights. Thanks to Jason Thorpe for politely noting thedfr1998-06-102-0/+1032
| | | | mistake...
* Add initial support for the FreeBSD/alpha kernel. This is very much adfr1998-06-105-0/+451
| | | | | | | | | | work in progress and has never booted a real machine. Initial development and testing was done using SimOS (see http://simos.stanford.edu for details). On the SimOS simulator, this port successfully reaches single-user mode and has been tested with loads as high as one copy of /bin/ls :-). Obtained from: partly from NetBSD/alpha
* Disallow reading the current kernel stack. Only the user structure andtegge1998-05-191-1/+5
| | | | | the current registers should be accessible. Reviewed by: David Greenman <dg@root.com>
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notpeter1997-02-223-3/+3
| | | | ready for it yet.
* Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-143-3/+3
| | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
* Add commands for ptrace get/set registers.. (Same numbers as NetBSD)peter1996-01-241-3/+11
|
* Don't define CLK_TCK here.bde1995-02-032-12/+6
| | | | Uniformize idempotency ifdef.
* Added $Id$dg1994-08-023-0/+3
|
* The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch.rgrimes1994-05-252-46/+86
| | | | | Reviewed by: Rodney W. Grimes Submitted by: John Dyson and David Greenman
* BSD 4.4 Lite Kernel Sourcesrgrimes1994-05-251-0/+40
|
* First pass at adding locale support. This code only deals with the LC_CTYPEwollman1994-04-042-6/+6
| | | | | | | | | | | | | | | | | | | | | class of locale data, but could be extended to handle other locale classes, as well as message catalogues and other non-locale i18n support. I have left the old _ctype_ array in place, and moved the ctype.h header to octype.h, so that existing shared binaries will still be able to find and use it as they require. See /usr/src/share/locale for information on how to create new locale data files (eventually this procedure will be improved). I'd like to have a family of locale files for various countries, languages, and character sets, so please contribute some. This code was originally written by Paul Borman and contributed to 4.4; I did the integration, and have somewhat tested it. crt0.c probably ought to call setlocale() if it doesn't already, but I'd like for people to create some locale files and try things manually first before I make every program do this.
* Bump CLK_TCK to more precise value (128)ache1994-02-262-4/+4
| | | | | If you want more precise, use directly getrusage(), because clock() emulated via it.
* adding libc/quad:alm1993-12-192-2/+16
| | | | | | added _QUAD_HIGH/LOW added (U_)QUAD_MAX/MIN (from NetBSD)
* Made all header files idempotent and moved incorrect common data fromwollman1993-11-072-2/+10
| | | | | headers into a related source file. Added cons.h as first step towards moving i386/i386/cons.h to machine/cons.h where it belongs.
* Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, somergrimes1993-10-162-2/+4
| | | | minor cleanup. Added $Id$ to files that did not have any version info, etc
* Initial import, 0.1 + pk 0.2.4-B1rgrimes1993-06-122-0/+114
OpenPOWER on IntegriCloud