summaryrefslogtreecommitdiffstats
path: root/sys/alpha
Commit message (Collapse)AuthorAgeFilesLines
* MFi386alc2003-07-061-2/+2
| | | | | Updates to cnt.v_wire_count, the global count of wired pages, should be performed using atomic ops.
* Background: pmap_object_init_pt() premaps the pages of a object inalc2003-07-031-105/+4
| | | | | | | | | | | | | | | | order to avoid the overhead of later page faults. In general, it implements two cases: one for vnode-backed objects and one for device-backed objects. Only the device-backed case is really machine-dependent, belonging in the pmap. This commit moves the vnode-backed case into the (relatively) new function vm_map_pmap_enter(). On amd64 and i386, this commit only amounts to code rearrangement. On alpha and ia64, the new machine independent (MI) implementation of the vnode case is smaller and more efficient than their pmap-based implementations. (The MI implementation takes advantage of the fact that objects in -CURRENT are ordered collections of pages.) On sparc64, pmap_object_init_pt() hadn't (yet) been implemented.
* Silly compile fixes from resource_disabled() commit.jhb2003-07-031-1/+1
| | | | | Reported by: tinderbox Pointy hat to: jhb
* - Use the new resource_disabled() helper function to see if devices arejhb2003-07-021-3/+1
| | | | | | | | | | | | disabled. - Change the apm driver to match the acpi driver's behavior by checking to see if the device is disabled in the identify routine instead of in the probe routine. This way if the device is disabled it is never created. Note that a few places (ips(4), Alpha SMP) used "disable" instead of "disabled" for their hint names, and these hints must be changed to "disabled". If this is a big problem, resource_disabled() can always be changed to honor both names.
* Oops, add back a free() call that I mistakenly removed inmux2003-07-011-0/+1
| | | | my last commit.
* Sync with i386's busdma backend. This fixes a few bugs and addsmux2003-07-011-33/+48
| | | | support for the BUS_DMA_NOWAIT flag in bus_dmamap_load().
* Mega busdma API commit.scottl2003-07-013-7/+77
| | | | | | | | | | | | | | | | | | | | | | | | Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg. Lockfunc allows a driver to provide a function for managing its locking semantics while using busdma. At the moment, this is used for the asynchronous busdma_swi and callback mechanism. Two lockfunc implementations are provided: busdma_lock_mutex() performs standard mutex operations on the mutex that is specified from lockfuncarg. dftl_lock() is a panic implementation and is defaulted to when NULL, NULL are passed to bus_dma_tag_create(). The only time that NULL, NULL should ever be used is when the driver ensures that bus_dmamap_load() will not be deferred. Drivers that do not provide their own locking can pass busdma_lock_mutex,&Giant args in order to preserve the former behaviour. sparc64 and powerpc do not provide real busdma_swi functions, so this is largely a noop on those platforms. The busdma_swi on is64 is not properly locked yet, so warnings will be emitted on this platform when busdma callback deferrals happen. If anyone gets panics or warnings from dflt_lock() being called, please let me know right away. Reviewed by: tmm, gibbs
* - Export pmap_enter_quick() to the MI VM. This will permit thealc2003-06-291-3/+1
| | | | | | | | | | | implementation of a largely MI pmap_object_init_pt() for vnode-backed objects. pmap_enter_quick() is implemented via pmap_enter() on sparc64 and powerpc. - Correct a mismatch between pmap_object_init_pt()'s prototype and its various implementations. (I plan to keep pmap_object_init_pt() as the MD hook for device-backed objects on i386 and amd64.) - Correct an error in ia64's pmap_enter_quick() and adjust its interface to match the other versions. Discussed with: marcel
* Implement fuword32() and suword32(). These functions are used inmarcel2003-06-291-1/+40
| | | | kern_thread.c. This is a best effort implementation.
* MFi386alc2003-06-281-4/+9
| | | | Add vm object locking to pmap_object_init_pt().
* enable interrupt routing for mcpcia based systemsticso2003-06-281-53/+44
| | | | Reviewed by: mjacob, gallatin
* Add a machine depended function thread_siginfo, SA signal codedavidxu2003-06-281-0/+19
| | | | | | | will use the function to construct a siginfo structure and use the result to export to userland. Reviewed by: julian
* Do the first and mostly mechanical step of adding mutex support to thescottl2003-06-271-0/+5
| | | | | | | | | bus_dma async callback scheme. Note that sparc64 does not seem to do async callbacks. Note that ia64 callbacks might not be MPSAFE at the moment. Note that powerpc doesn't seem to do async callbacks due to the implementation being incomplete. Reviewed by: mostly silence on arch@
* Add a f_vnode field to struct file.phk2003-06-221-1/+1
| | | | | | | | | | | | Several of the subtypes have an associated vnode which is used for stuff like the f*() functions. By giving the vnode a speparate field, a number of checks for the specific subtype can be replaced simply with a check for f_vnode != NULL, and we can later free f_data up to subtype specific use. At this point in time, f_data still points to the vnode, so any code I might have overlooked will still work.
* Fix a performance bug in all of the various implementations ofalc2003-06-181-1/+1
| | | | | uma_small_alloc(): They always zeroed the page regardless of what the caller requested.
* Don't set TDF_UPCALLING in cpu_set_upcall, it is not only used bydavidxu2003-06-151-2/+0
| | | | SA process.
* Rename P_THREADED to P_SA. P_SA means a process is using schedulerdavidxu2003-06-152-2/+2
| | | | activations.
* Migrate the thread stack management functions from the machine-dependentalc2003-06-143-205/+2
| | | | | | | | | | | | | | | | to the machine-independent parts of the VM. At the same time, this introduces vm object locking for the non-i386 platforms. Two details: 1. KSTACK_GUARD has been removed in favor of KSTACK_GUARD_PAGES. The different machine-dependent implementations used various combinations of KSTACK_GUARD and KSTACK_GUARD_PAGES. To disable guard page, set KSTACK_GUARD_PAGES to 0. 2. Remove the (unnecessary) clearing of PG_ZERO in vm_thread_new. In 5.x, (but not 4.x,) PG_ZERO can only be set if VM_ALLOC_ZERO is passed to vm_page_alloc() or vm_page_grab().
* Move the *_new_altkstack() and *_dispose_altkstack() functions out of thealc2003-06-141-29/+0
| | | | | various pmap implementations into the machine-independent vm. They were all identical.
* GC unused cpu_wait() functionpeter2003-06-111-6/+0
|
* Use __FBSDID().obrien2003-06-1023-47/+70
|
* Use __FBSDID().obrien2003-06-106-15/+17
|
* Use __FBSDID().obrien2003-06-1010-17/+29
|
* Use __FBSDID().obrien2003-06-1040-79/+113
|
* Note that scbus is required for SCSI, not just "required" in general.jmallett2003-06-081-1/+1
| | | | | Submitted by: Edward Kaplan (tmbg37 on IRC) Reviewed by: rwatson (in principle)
* Change the second (and last) argument of cpu_set_upcall(). Previouslymarcel2003-06-041-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | we were passing in a void* representing the PCB of the parent thread. Now we pass a pointer to the parent thread itself. The prime reason for this change is to allow cpu_set_upcall() to copy (parts of) the trapframe instead of having it done in MI code in each caller of cpu_set_upcall(). Copying the trapframe cannot always be done with a simply bcopy() or may not always be optimal that way. On ia64 specifically the trapframe contains information that is specific to an entry into the kernel and can only be used by the corresponding exit from the kernel. A trapframe copied verbatim from another frame is in most cases useless without some additional normalization. Note that this change removes the assignment to td->td_frame in some implementations of cpu_set_upcall(). The assignment is redundant. A previous call to cpu_thread_setup() already did the exact same assignment. An added benefit of removing the redundant assignment is that we can now change td_pcb without nasty side-effects. This change officially marks the ability on ia64 for 1:1 threading. Not tested on: amd64, powerpc Compile & boot tested on: alpha, sparc64 Functionally tested on: i386, ia64
* Rename BUS_DMAMEM_NOSYNC to BUS_DMA_COHERENT.hmp2003-05-301-1/+1
| | | | | | | | | | | | | | | | | The current name is confusing, because it indicates to the client that a bus_dmamap_sync() operation is not necessary when the flag is specified, which is wrong. The main purpose of this flag is to hint the underlying architecture that DMA memory should be mapped in a coherent way, but the architecture can ignore it. But if the architecture does supports coherent mapping of memory, then it makes bus_dmamap_sync() calls cheap. This flag is the same as the one in NetBSD's Bus DMA. Reviewed by: gibbs, scottl, des (implicitly) Approved by: re@ (jhb)
* Bring back bus_dmasync_op_t. It is now a typedef to an int, though thescottl2003-05-272-2/+3
| | | | | | | | BUS_DMASYNC_ definitions remain as before. The does not change the ABI, and reverts the API to be a bit more compatible and flexible. This has survived a full 'make universe'. Approved by: re (bmah)
* De-orbit bus_dmamem_alloc_size(). It's a hack and was never used anyways.scottl2003-05-262-32/+8
| | | | | | No need for it to pollute the 5.x API any further. Approved by: re (bmah)
* sys/sys/limits.h:kan2003-05-192-4/+4
| | | | | | | | | | | | | | | - Fix visibilty test for LONG_BIT and WORD_BIT. `#if defined(__FOO_VISIBLE)' is alays wrong because __FOO_VISIBLE is always defined (to 0 for invisibility). sys/<arch>/include/limits.h sys/<arch>/include/_limits.h: - Style fixes. Submitted by: bde Reviewed by: bsdmike Approved by: re (scottl)
* There's just no reason to not have these in GENERIC.ru2003-05-181-0/+1
| | | | | Found by: release/*/drivers.conf cleaning script Approved by: re (scottl)
* - Merge struct procsig with struct sigacts.jhb2003-05-132-5/+18
| | | | | | | | | | | | | | | | | - Move struct sigacts out of the u-area and malloc() it using the M_SUBPROC malloc bucket. - Add a small sigacts_*() API for managing sigacts structures: sigacts_alloc(), sigacts_free(), sigacts_copy(), sigacts_share(), and sigacts_shared(). - Remove the p_sigignore, p_sigacts, and p_sigcatch macros. - Add a mutex to struct sigacts that protects all the members of the struct. - Add sigacts locking. - Remove Giant from nosys(), kill(), killpg(), and kern_sigaction() now that sigacts is locked. - Several in-kernel functions such as psignal(), tdsignal(), trapsignal(), and thread_stopped() are now MP safe. Reviewed by: arch@ Approved by: re (rwatson)
* Style fixes.kan2003-05-041-9/+12
| | | | | | | | | Remove DBL_DIG, DBL_MIN, DBL_MAX and their FLT_ counterparts, they were marked for deprecation ever since SUSv1 at least. Only define ULLONG_MIN/MAX and LLONG_MAX if long long type is supported. Restore a lost comment in MI _limits.h file and remove it from sys/limits.h where it does not belong.
* Range check the syscall number before looking it up in the syscallnames[]jhb2003-04-301-1/+1
| | | | | | array. Submitted by: pho
* Deprecate machine/limits.h in favor of new sys/limits.h.kan2003-04-291-64/+4
| | | | | | | Change all in-tree consumers to include <sys/limits.h> Discussed on: standards@ Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>
* - Remove unnecessary useracc() calls from osf1_sigreturn().alc2003-04-291-12/+3
|
* Remove unmatched #endif left over incidenntally in last commit.kan2003-04-281-1/+0
|
* - Push down Giant into the sysarch() calls that still need Giant.jhb2003-04-251-1/+1
| | | | | - Standardize on EINVAL rather than EOPNOTSUPP if the sysarch op value is invalid.
* Lock Giant around calls to useracc() in osf1_sigreturn() so that thejhb2003-04-251-1/+5
| | | | function is MP safe.
* Lock Giant around userland_sysctl() to get the hostname in osf1_sysinfo()jhb2003-04-251-0/+5
| | | | | so that the function is MP safe. The rest of the function doesn't need Giant.
* Add an argument to get_mcontext() which specified whether thedeischen2003-04-251-3/+7
| | | | | | | | | | | | | | | | | | | | syscall return values should be cleared. The system calls getcontext() and swapcontext() want to return 0 on success but these contexts can be switched to at a later time so the return values need to be cleared in the saved register sets. Other callers of get_mcontext() would normally want the context without clearing the return values. Remove the i386-specific context saving from the KSE code. get_mcontext() is not i386-specific any more. Fix a bad pointer in the alpha get_mcontext() code. The context was being bcopy()'d from &td->tf_frame, but tf_frame is itself a pointer, so the thread was being copied instead. Spotted by jake. Glanced at by: jake Reviewed by: bde (months ago)
* Add a new sys/limits.h file which in turn depends on machine/_limits.hkan2003-04-231-54/+39
| | | | | | | | | to get actual constant values. This is in preparation for machine/limits.h retirement. Discussed on: standards@ Submitted by: Craig Rodrigues <rodrigc@attbi.com> (*) Modified by: kan
* - Replace inline implementations of sigprocmask() with calls tojhb2003-04-222-203/+68
| | | | | | | kern_sigprocmask() in the various binary compatibility emulators. - Replace calls to sigsuspend(), sigaltstack(), sigaction(), and sigprocmask() that used the stackgap with calls to the corresponding kern_sig*() functions instead without using the stackgap.
* Remove single threading detecting code, these code really should bedavidxu2003-04-221-7/+0
| | | | | replaced by thread_user_enter(), but current we don't want to enable this in trap.
* Add FireWire drivers to GENERIC.simokawa2003-04-211-0/+5
|
* Explicitly declare 'int' parameters.obrien2003-04-211-3/+3
|
* Add device driver support for the ASIX Electronics AX88172 USB 2.0wpaul2003-04-201-0/+1
| | | | | | | | | | | ethernet controller. The driver has been tested with the LinkSys USB200M adapter. I know for a fact that there are other devices out there with this chip but don't have all the USB vendor/device IDs. Note: I'm not sure if this will force the driver to end up in the install kernel image or not. Special magic needs to be done to exclude it to keep the boot floppies from bloating again, someone please advise.
* Synchronize the two linux_clone() implementations which includes a fewjhb2003-04-181-6/+3
| | | | minor cleanups in both.
* Use the proc lock to protect p_singlethread and a P_WEXIT test. Thisjhb2003-04-181-1/+2
| | | | | fixes a couple of potential KSE panics on non-i386 arch's that weren't holding the proc lock when calling thread_exit().
* Hold the proc lock for curproc around sigonstack().jhb2003-04-181-1/+3
|
OpenPOWER on IntegriCloud