summaryrefslogtreecommitdiffstats
path: root/sys/alpha
Commit message (Collapse)AuthorAgeFilesLines
* Gigacommit to improve device-driver source compatibility betweenphk2003-03-033-39/+25
| | | | | | | | | | | | | branches: Initialize struct cdevsw using C99 sparse initializtion and remove all initializations to default values. This patch is automatically generated and has been tested by compiling LINT with all the fields in struct cdevsw in reverse order on alpha, sparc64 and i386. Approved by: re(scottl)
* Clean up whitespace and remove register keyword.des2003-03-031-1/+1
|
* More caddr_t removal, in conjunction with copy{in,out}(9) this time.des2003-03-031-3/+3
| | | | Also clean up some egregious casts and incorrect use of sizeof.
* MFi386 revision 1.88alc2003-03-011-6/+0
| | | | Remove some long unused declarations.
* Change the process flags P_KSES to be P_THREADED.julian2003-02-271-1/+1
| | | | This is just a cosmetic change but I've been meaning to do it for about a year.
* cat KSE > /dev/nulldavidxu2003-02-271-1/+0
|
* Implemented "nooption" and "nomakeoption" config(8) tokens.ru2003-02-261-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | Fixed memory leak in the "nodevice" option implementation. Use these instead of sed(1) in MD NOTES. Use a single makefile (sys/conf/makeLINT.mk) to generate LINT for all architectures. (Previous versions missed the LINT dependency on Makefile, and i386 version also missed the dependency on ${NOTES}.) Fixed bugs in the previous NOTES conversion using the "nodevice" token and sed(1): - i386 LINT lost "device pst". - pc98 LINT lost SC_*, MAXCONS and KBD_DISABLE_KEYMAP_LOAD options, and got needless DPT_* options. - Added nooptions PPC_DEBUG, PPC_PROBE_CHIPSET, KBD_INSTALL_CDEV to sparc64 LINT so that it has a chance to config(8). This basically returns us to where we were before.
* Correctly set BUS_SPACE_MAXSIZE in all the busdma backends.mux2003-02-262-2/+2
| | | | | It was bogusly set to 64 * 1024 or 128 * 1024 because it was bogusly reused in the BUS_DMAMAP_NSEGS definition.
* Move most everything back to a MI NOTES, and use "nodevice" in MD NOTESobrien2003-02-252-189/+3
| | | | | | | Where needed. Use 'sed' for now in place of "nooptions". Add a sparc64 MD NOTES. Reviewed by: arch@
* Cleanup of the d_mmap_t interface.mux2003-02-252-9/+3
| | | | | | | | | | | | | | | | | | | | | | | | | - Get rid of the useless atop() / pmap_phys_address() detour. The device mmap handlers must now give back the physical address without atop()'ing it. - Don't borrow the physical address of the mapping in the returned int. Now we properly pass a vm_offset_t * and expect it to be filled by the mmap handler when the mapping was successful. The mmap handler must now return 0 when successful, any other value is considered as an error. Previously, returning -1 was the only way to fail. This change thus accidentally fixes some devices which were bogusly returning errno constants which would have been considered as addresses by the device pager. - Garbage collect the poorly named pmap_phys_address() now that it's no longer used. - Convert all the d_mmap_t consumers to the new API. I'm still not sure wheter we need a __FreeBSD_version bump for this, since and we didn't guarantee API/ABI stability until 5.1-RELEASE. Discussed with: alc, phk, jake Reviewed by: peter Compile-tested on: LINT (i386), GENERIC (alpha and sparc64) Runtime-tested on: i386
* Remove support for running in SimOS. The support has rotted overmarcel2003-02-258-96/+1
| | | | | | | | time and there's no indication that it will improve anytime soon. By removing support for SimOS it is possible to build LINT on Alpha, which is considered more important at the moment. Not objected to on: alpha@
* Move MD devices to <machine>/conf/NOTES.nyan2003-02-231-0/+187
|
* Workaround for compiling LINT. Large kernels (like LINT) can havemarcel2003-02-231-20/+32
| | | | | | | | | | | branch targets that are too far apart for the BRADDR relocation. This is caused by the branch prediction optimizationi in the atomic inlines here, because they jump across sections. The workaround is to suppress jumping to a different section when compiling LINT. To generate correct code in that case, the section directives are replaced by a branch and a label to deal with the fall-through case. Reasonably good C compilers will optimize this away anyway, so the end result isn't really that bad.
* It is pretty evident that nobody loves this file anymore, so retire itphk2003-02-221-65/+0
| | | | | to the Attic from where it can be picked up again, should it ever again become fashionable to run an alpha simulator.
* Change the console interface to pass a "struct consdev *" instead of aphk2003-02-209-21/+22
| | | | | | | | | dev_t to the method functions. The dev_t can still be found at struct consdev *->cn_dev. Add a void *cn_arg element to struct consdev which the drivers can use for retrieving their softc.
* Back out M_* changes, per decision of the TRB.imp2003-02-193-10/+10
| | | | Approved by: trb
* Move a bunch of flags from the KSE to the thread.julian2003-02-172-10/+7
| | | | | | | | I was in two minds as to where to put them in the first case.. I should have listenned to the other mind. Submitted by: parts by davidxu@ Reviewed by: jeff@ mini@
* - Split the struct kse into struct upcall and struct kse. struct kse willjeff2003-02-171-1/+1
| | | | | | | soon be visible only to schedulers. This greatly simplifies much the KSE code. Submitted by: davidxu
* - Move ke_sticks, ke_iticks, ke_uticks, ke_uu, ke_su, and ke_iu back intojeff2003-02-171-2/+2
| | | | | | | the proc. These counters are only examined through calcru. Submitted by: davidxu Tested on: x86, alpha, UP/SMP
* zero the end of the memory cluster we're disposing of. Otherwise tehgallatin2003-02-161-0/+1
| | | | | | | vm page startup code finds a 20GB cluster on this wacky alphaserver I'm working on.. MFC After: 7 days
* Change "dev_t gdbdev" to "void *gdb_arg", some possible paths for GDBphk2003-02-161-5/+5
| | | | will not have a dev_t.
* When trimming memory to fit Maxmem, and we discard an entire cluster,gallatin2003-02-161-0/+1
| | | | | | | make certain to subtract its pages from physmem. Otherwise we end up running phys_avail_cnt negative, and bad stuff happens. MFC After: 1 week
* Remove #include <sys/dkstat.h>phk2003-02-162-2/+0
|
* 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().
OpenPOWER on IntegriCloud