summaryrefslogtreecommitdiffstats
path: root/sys/alpha
Commit message (Collapse)AuthorAgeFilesLines
* Regen from syscalls.master 1.52.tjr2003-02-163-5/+11
|
* Mark linux_sigpending() as MPSAFE.tjr2003-02-161-1/+1
|
* Fix the style of the SCHED_4BSD commit.obrien2003-02-131-1/+1
|
* MFi386alc2003-02-131-10/+4
| | | | Remove kptobj. Instead, use VM_ALLOC_NOOBJ.
* Implement fpclassify():mike2003-02-082-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | o Add a MD header private to libc called _fpmath.h; this header contains bitfield layouts of MD floating-point types. o Add a MI header private to libc called fpmath.h; this header contains bitfield layouts of MI floating-point types. o Add private libc variables to lib/libc/$arch/gen/infinity.c for storing NaN values. o Add __double_t and __float_t to <machine/_types.h>, and provide double_t and float_t typedefs in <math.h>. o Add some C99 manifest constants (FP_ILOGB0, FP_ILOGBNAN, HUGE_VALF, HUGE_VALL, INFINITY, NAN, and return values for fpclassify()) to <math.h> and others (FLT_EVAL_METHOD, DECIMAL_DIG) to <float.h> via <machine/float.h>. o Add C99 macro fpclassify() which calls __fpclassify{d,f,l}() based on the size of its argument. __fpclassifyl() is never called on alpha because (sizeof(long double) == sizeof(double)), which is good since __fpclassifyl() can't deal with such a small `long double'. This was developed by David Schultz and myself with input from bde and fenner. PR: 23103 Submitted by: David Schultz <dschultz@uclink.Berkeley.EDU> (significant portions) Reviewed by: bde, fenner (earlier versions)
* Fix a problem in bus_dmamap_load_{mbuf,uio} when the first mbuf or the firstharti2003-02-041-11/+16
| | | | | | | | | | | | uio segment is empty. In this case no dma segment is create by bus_dmamap_load_buffer, but the calling routine clears the first flag. Under certain combinations of addresses of the first and second mbuf/uio buffer this leads to corrupted DMA segment descriptors. This was already fixed by tmm in sparc64/sparc64/iommu.c. PR: kern/47733 Reviewed by: sam Approved by: jake (mentor)
* Convert an instance of "struct timezone tz" use I missed yesterday.phk2003-02-041-1/+5
|
* Split statclock into statclock and profclock, and made the method for drivingjake2003-02-032-15/+19
| | | | | | | | | | | | | statclock based on profhz when profiling is enabled MD, since most platforms don't use this anyway. This removes the need for statclock_process, whose only purpose was to subdivide profhz, and gets the profiling clock running outside of sched_lock on platforms that implement suswintr. Also changed the interface for starting and stopping the profiling clock to do just that, instead of changing the rate of statclock, since they can now be separate. Reviewed by: jhb, tmm Tested on: i386, sparc64
* Add IPv6 support for Linuxlator.ume2003-02-031-0/+1
| | | | | Reviewed by: dwmalone MFC after: 10 days
* Consolidate MIN/MAX macros into one place (param.h).alfred2003-02-021-2/+0
| | | | Submitted by: Hiten Pandya <hiten@unixdaemons.com>
* Reversion of commit by Davidxu plus fixes since applied.julian2003-02-013-4/+4
| | | | | | | | I'm not convinced there is anything major wrong with the patch but them's the rules.. I am using my "David's mentor" hat to revert this as he's offline for a while.
* Implement bus_dmamem_alloc_size() and bus_dmamem_free_size() asscottl2003-01-292-8/+32
| | | | | | | | | | | | | | | | | | | | counterparts to bus_dmamem_alloc() and bus_dmamem_free(). This allows the caller to specify the size of the allocation instead of it defaulting to the max_size field of the busdma tag. This is intended to aid in converting drivers to busdma. Lots of hardware cannot understand scatter/gather lists, which forces the driver to copy the i/o buffers to a single contiguous region before sending it to the hardware. Without these new methods, this would require a new busdma tag for each operation, or a complex internal allocator/cache for each driver. Allocations greater than PAGE_SIZE are rounded up to the next PAGE_SIZE by contigmalloc(), so this is not suitable for multiple static allocations that would be better served by a single fixed-length subdivided allocation. Reviewed by: jake (sparc64)
* Unbreak SMP cases for these architectures.julian2003-01-271-1/+1
| | | | | | statclock_process() changed arguments. note: it may be worth checking if curkse is needed on these architectures.. (and if so, why?)
* Move UPCALL related data structure out of kse, introduce a newdavidxu2003-01-262-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | data structure called kse_upcall to manage UPCALL. All KSE binding and loaning code are gone. A thread owns an upcall can collect all completed syscall contexts in its ksegrp, turn itself into UPCALL mode, and takes those contexts back to userland. Any thread without upcall structure has to export their contexts and exit at user boundary. Any thread running in user mode owns an upcall structure, when it enters kernel, if the kse mailbox's current thread pointer is not NULL, then when the thread is blocked in kernel, a new UPCALL thread is created and the upcall structure is transfered to the new UPCALL thread. if the kse mailbox's current thread pointer is NULL, then when a thread is blocked in kernel, no UPCALL thread will be created. Each upcall always has an owner thread. Userland can remove an upcall by calling kse_exit, when all upcalls in ksegrp are removed, the group is atomatically shutdown. An upcall owner thread also exits when process is in exiting state. when an owner thread exits, the upcall it owns is also removed. KSE is a pure scheduler entity. it represents a virtual cpu. when a thread is running, it always has a KSE associated with it. scheduler is free to assign a KSE to thread according thread priority, if thread priority is changed, KSE can be moved from one thread to another. When a ksegrp is created, there is always N KSEs created in the group. the N is the number of physical cpu in the current system. This makes it is possible that even an userland UTS is single CPU safe, threads in kernel still can execute on different cpu in parallel. Userland calls kse_create to add more upcall structures into ksegrp to increase concurrent in userland itself, kernel is not restricted by number of upcalls userland provides. The code hasn't been tested under SMP by author due to lack of hardware. Reviewed by: julian
* - Introduce the SCHED_ULE and SCHED_4BSD options for compile time selectionjeff2003-01-262-0/+3
| | | | | of the scheduler. - Add SCHED_4BSD as the scheduler for all kernel config files in cvs.
* Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.alfred2003-01-213-10/+10
| | | | Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
* - Add a VM_WAIT in the appropriate cases where vm_page_alloc() fails and flagsjeff2003-01-211-8/+13
| | | | | | | | | | indicate that uma_small_alloc should not. This code should be refactored so that there is not so much cross arch duplication. Reviewed by: jake Spotted by: tmm Tested on: alpha, sparc64 Pointy hat to: jeff and everyone who cut and pasted the bad code. :-)
* Resolve relative relocations in klds before trying to parse the module'sjake2003-01-211-5/+25
| | | | | | | | | | | | metadata. This fixes module dependency resolution by the kernel linker on sparc64, where the relocations for the metadata are different than on other architectures; the relative offset is in the addend of an Elf_Rela record instead of the original value of the location being patched. Also fix printf formats in debug code. Submitted by: Hartmut Brandt <brandt@fokus.gmd.de> PR: 46732 Tested on: alpha (obrien), i386, sparc64
* Move the vm_page_busy() in pmap_dispose_thread() to a place where it isalc2003-01-201-1/+1
| | | | | covered by the page queues lock. (This actually makes alpha's pmap_dispose_thread() look more like the i386's.)
* Remove the last stray NO_GEOM option in our example kernel config files.phk2003-01-191-2/+0
|
* Protect against multiple inclusions.obrien2003-01-181-0/+5
|
* Merge all the various copies of vm_fault_quick() into a singledillon2003-01-161-16/+0
| | | | portable copy.
* Merge all the various copies of vmapbuf() and vunmapbuf() into a singledillon2003-01-151-69/+0
| | | | | | | | portable copy. Note that pmap_extract() must be used instead of pmap_kextract(). This is precursor work to a reorganization of vmapbuf() to close remaining user/kernel races (which can lead to a panic).
* Bow to the whining masses and change a union back into void *. Retaindillon2003-01-131-1/+1
| | | | | removal of unnecessary casts and throw in some minor cleanups to see if anyone complains, just for the hell of it.
* Change struct file f_data to un_data, a union of the correct structdillon2003-01-121-1/+1
| | | | | | | | | | pointer types, and remove a huge number of casts from code using it. Change struct xfile xf_data to xun_data (ABI is still compatible). If we need to add a #define for f_data and xf_data we can, but I don't think it will be necessary. There are no operational changes in this commit.
* Approved by: gallatin (mentor)ticso2003-01-031-0/+12
| | | | | Sync with i386. Don't write crashdumps outside partition boundaries.
* - Use VM_ALLOC_WIRED.alc2002-12-281-5/+7
| | | | | - Hold the page queues lock around calls to vm_page_flag_clear() and vm_page_wakeup().
* Use VM_ALLOC_WIRED in pmap_pinit().alc2002-12-281-4/+1
|
* MB_LEN_MAX is not MD, move it to the MI limits.h.tjr2002-12-222-2/+0
|
* MFi386 revisions 1.375 and 1.376alc2002-12-141-5/+14
| | | | | | | Hold the page queues lock when calling pmap_unwire_pte_hold() or pmap_remove_pte(). Use vm_page_sleep_if_busy() in _pmap_unwire_pte_hold() so that the page queues lock is released when sleeping.
* SCARGS removal take II.alfred2002-12-145-230/+225
|
* Backout removal SCARGS, the code freeze is only "selectively" over.alfred2002-12-135-225/+230
|
* Remove SCARGS.alfred2002-12-135-230/+225
| | | | Reviewed by: md5
* Unbreak the KSE code. Keep track of zobie threads using the Per-CPU storagejulian2002-12-101-1/+1
| | | | | | | | during the context switch. Rearrange thread cleanups to avoid problems with Giant. Clean threads when freed or when recycled. Approved by: re (jhb)
* MFi386alc2002-12-021-0/+2
| | | | | | Hold the page queues lock around vm_page_unhold() in vunmapbuf(). Approved by: re (blanket)
* Under certain circumstances, we were calling kmem_free() frommux2002-11-221-0/+5
| | | | | | | | | | i386 cpu_thread_exit(). This resulted in a panic with WITNESS since we need to hold Giant to call kmem_free(), and we weren't helding it anymore in cpu_thread_exit(). We now do this from a new MD function, cpu_thread_dtor(), called by thread_dtor(). Approved by: re@ Suggested by: jhb
* MFi386 r1.369alc2002-11-181-1/+5
| | | | | | | | | - Clear the PG_WRITEABLE flag in pmap_changebit() if write access is being removed. Return immediately if write access is being removed and PG_WRITEABLE is already clear. Note: For efficiency, pmap_changebit() should be replaced by a function similar to sparc64's pmap_clear_write().
* Add getcontext, setcontext, and swapcontext as system calls.deischen2002-11-165-23/+148
| | | | | | | | | | | Previously these were libc functions but were requested to be made into system calls for atomicity and to coalesce what might be two entrances into the kernel (signal mask setting and floating point trap) into one. A few style nits and comments from bde are also included. Tested on alpha by: gallatin
* Add hints for ISA ATA controllers. At least one Digital AlphaPC 64 hasjhb2002-11-141-0/+6
| | | | | | one such beast. Reported by: Rob Byrnes <rbyrnes@ozemail.com.au>
* Move pmap_collect() out of the machine-dependent code, rename italc2002-11-131-31/+1
| | | | | | | | to reflect its new location, and add page queue and flag locking. Notes: (1) alpha, i386, and ia64 had identical implementations of pmap_collect() in terms of machine-independent interfaces; (2) sparc64 doesn't require it; (3) powerpc had it as a TODO.
* - Clear the page's PG_WRITEABLE flag in the i386's pmap_changebit()alc2002-11-111-2/+1
| | | | | | if we're removing write access from the page's PTEs. - Export pmap_remove_all() on alpha, i386, and ia64. (It's already exported on sparc64.)
* Print real / avail memory in megabytes rather than kilobytes.des2002-11-091-3/+4
|
* Fix warnings when compiled with SIMOS defined.jhb2002-11-081-4/+14
|
* Cast pointers in mem*_io() compat macros to uintptr_t so that they can bejhb2002-11-081-5/+5
| | | | used as bus handles by the bus_space functions implementing these macros.
* - Update the SIMOS fp-stealing code to KSE-II and beyond.jhb2002-11-081-5/+9
| | | | - Wrap a variable only used in !SIMOS case in #ifndef SIMOS.
* Remove #ifdef DEBUG signal debugging code brought over from NetBSD with thejhb2002-11-081-32/+0
| | | | | original signal handling code. It doesn't compile and it seems the rest of the infrastructure was never brought over from NetBSD.
* Move the definitions of the hw.physmem, hw.usermem and hw.availpagestmm2002-11-071-27/+0
| | | | | | | | | | | sysctls to MI code; this reduces code duplication and makes all of them available on sparc64, and the latter two on powerpc. The semantics by the i386 and pc98 hw.availpages is slightly changed: previously, holes between ranges of available pages would be included, while they are excluded now. The new behaviour should be more correct and brings i386 in line with the other architectures. Move physmem to vm/vm_init.c, where this variable is used in MI code.
* Turn on GEOM. It works on Alpha and we are going to need it for installs.jhb2002-11-071-2/+0
|
* Wrap ()'s around an argument before casting it to a void *. If thejhb2002-11-061-6/+6
| | | | | | argument is an expression you can end up casting part of it to void *. This resulted in bogus warnings about pointer arith using void *'s for the ep(4) driver.
* Remove what was a temporary bogus assignment of bits of siginfo_t, as it doesjmallett2002-11-061-4/+0
| | | | | | not look like the prerequisites to fill it in properly will be in the tree for the upcoming release, but it's mostly done, so there is no need for these to stay around to remind us.
OpenPOWER on IntegriCloud