summaryrefslogtreecommitdiffstats
path: root/sys/alpha
Commit message (Collapse)AuthorAgeFilesLines
* Replace the if_name and if_unit members of struct ifnet with new membersbrooks2003-10-311-1/+1
| | | | | | | | | | | | | if_xname, if_dname, and if_dunit. if_xname is the name of the interface and if_dname/unit are the driver name and instance. This change paves the way for interface renaming and enhanced pseudo device creation and configuration symantics. Approved By: re (in principle) Reviewed By: njl, imp Tested On: i386, amd64, sparc64 Obtained From: NetBSD (if_xname)
* style: strcmp() does not return a bool.brooks2003-10-301-1/+1
|
* Add a stub cpu_idle() function for sparc64, alpha, powerpc. This is apeter2003-10-191-0/+6
| | | | MI declared function so it should be everywhere.
* Implement preliminary support for the PT_SYSCALL command to ptrace(2).robert2003-10-091-0/+5
|
* Move pmap_resident_count() from the MD pmap.h to the MI pmap.h.bms2003-10-061-1/+0
| | | | | | | | Add a definition of pmap_wired_count(). Add a definition of vmspace_wired_count(). Reviewed by: truckman Discussed with: peter
* Migrate pmap_prefault() into the machine-independent virtual memory layer.alc2003-10-031-99/+20
| | | | | | | A small helper function pmap_is_prefaultable() is added. This function encapsulate the few lines of pmap_prefault() that actually vary from machine to machine. Note: pmap_is_prefaultable() and pmap_mincore() have much in common. Going forward, it's worth considering their merger.
* OK, I messed up /dev/console with what I had hoped would be compatphk2003-09-261-3/+4
| | | | code. Convert remaining console drivers and hope for the best.
* Initialize cn_name instead of cn_devphk2003-09-262-2/+2
|
* Add sysentvec->sv_fixlimits() hook so that we can catch cases on 64 bitpeter2003-09-254-15/+6
| | | | | | | | | | | | | | | | | | | | | systems where the data/stack/etc limits are too big for a 32 bit process. Move the 5 or so identical instances of ELF_RTLD_ADDR() into imgact_elf.c. Supply an ia32_fixlimits function. Export the clip/default values to sysctl under the compat.ia32 heirarchy. Have mmap(0, ...) respect the current p->p_limits[RLIMIT_DATA].rlim_max value rather than the sysctl tweakable variable. This allows mmap to place mappings at sensible locations when limits have been reduced. Have the imgact_elf.c ld-elf.so.1 placement algorithm use the same method as mmap(0, ...) now does. Note that we cannot remove all references to the sysctl tweakable maxdsiz etc variables because /etc/login.conf specifies a datasize of 'unlimited'. And that causes exec etc to fail since it can no longer find space to mmap things.
* Implement the bus_space_map() function to allocate resources and initializenyan2003-09-231-0/+18
| | | | a bus_handle, but currently it does only initializing a bus_handle.
* Mention the puc(4) glue driver in a commented-out example so the userjoerg2003-09-191-0/+5
| | | | | | | | of "dumb" PCI-based serial/parallel boards get a hint how to enable them. I wasn't sure about the ia64, pc98, powerpc, and sparc64 archs whether they'd support puc(4) or not.
* Add a new parameter to pmap_extract_and_hold() that is needed to eliminatealc2003-09-121-2/+3
| | | | | | Giant from vmapbuf(). Idea from: tegge
* Introduce a new pmap function, pmap_extract_and_hold(). This functionalc2003-09-081-0/+23
| | | | | | | | | atomically extracts and holds the physical page that is associated with the given pmap and virtual address. Such a function is needed to make the memory mapping optimizations used by, for example, pipes and raw disk I/O MP-safe. Reviewed by: tegge
* MFamd64/i386alc2003-09-071-12/+19
| | | | Add necessary page locking to pmap_mincore().
* Fix build breakage caused by the inclusion of <ddb/ddb.h> whilemarcel2003-09-071-1/+2
| | | | | | building a module. Inclusion of option files (opt_ddb.h in this case) is not possible for modules. The inclusion of opt_ddb.h in this header is questionable.
* Standardize idempotentcy ifdefs. Consistently use _MACHINE_VARARGS_H_kan2003-09-011-3/+3
| | | | symbol.
* Migrate the sf_buf allocator that is used by sendfile(2) and zero-copyalc2003-08-291-0/+101
| | | | | | | | | | | sockets into machine-dependent files. The rationale for this migration is illustrated by the modified amd64 allocator. It uses the amd64's direct map to avoid emphemeral mappings in the kernel's address space. On an SMP, the emphemeral mappings result in an IPI for TLB shootdown for each transmitted page. Yuck. Maintainers of other 64-bit platforms with direct maps should be able to use the amd64 allocator as a reference implementation.
* Eliminate the direct uses of vm_page_lookup() on the pte object. Instead,alc2003-08-281-33/+8
| | | | | | | | | | apply PHYS_TO_VM_PAGE() to the physical address obtained from the page table. (This is based upon similar changes made to the amd64 and i386 pmaps and a part of a long-term campaign to eliminate pte objects.) Tested by: wilko
* Add option NO_SIO to work-around the hardcoded dependency on sio(4).marcel2003-08-2513-212/+255
| | | | | | | Without this option it is not possible to omit the driver from the configuration file and successfully build a kernel. This option is specific to alpha.
* Prefer new location of pci include files (which have only been in theimp2003-08-2222-37/+37
| | | | | tree for two or more years now), except in a few places where there's code to be compatible with older versions of FreeBSD.
* - Lock the pte object when performing vm_page_grab().alc2003-08-201-3/+9
| | | | | - Insure that the page table page is zero filled before adding it to the page table.
* Fixup the ELF branding information to point to the new home of rtld.gordon2003-08-171-1/+1
|
* Cleanup <machine/cpu.h> by moving MD prototypes to <machine/md_var.h>marcel2003-08-1735-176/+196
| | | | | | | | | | | | | | | like we have on other platforms. Move savectx() to <machine/pcb.h>. A lot of files got these MD prototypes through the indirect inclusion of <machine/cpu.h> and now need to include <machine/md_var.h>. The number of which is unexpectedly large... osf1_misc.c especially is tricky because szsigcode is redefined in one of the osf1 header files. Reordering of the include files was needed. linprocfs.c now needs an explicit extern declaration. Tested with: LINT
* In vm_thread_swap{in|out}(), remove the alpha specific conditionalmarcel2003-08-161-0/+17
| | | | | | compilation and replace it with a call to cpu_thread_swap{in|out}(). This allows us to add similar code on ia64 without cluttering the code even more.
* Further cleanup <machine/cpu.h> and <machine/md_var.h>: move the MImarcel2003-08-162-4/+6
| | | | | | | | | | | | | | | | | | | prototypes of cpu_halt(), cpu_reset() and swi_vm() from md_var.h to cpu.h. This affects db_command.c and kern_shutdown.c. ia64: move all MD prototypes from cpu.h to md_var.h. This affects madt.c, interrupt.c and mp_machdep.c. Remove is_physical_memory(). It's not used (vm_machdep.c). alpha: the MD prototypes have been left in cpu.h with a comment that they should be there. Moving them is left for later. It was expected that the impact would be significant enough to be done in a seperate commit. powerpc: MD prototypes left in cpu.h. Comment added. Suggested by: bde Tested with: make universe (pc98 incomplete)
* Expand inline the relevant parts of src/COPYRIGHT for Matt Dillon'simp2003-08-122-4/+48
| | | | | | copyrighted files. Approved by: Matt Dillon
* - Convert Alpha over to the new calling conventions for cpu_throw() andjhb2003-08-122-59/+44
| | | | | | | | cpu_switch() where both the old and new threads are passed in as arguments. Only powerpc uses the old conventions now. - Update comments in the Alpha swtch.s to reflect KSE changes. Tested by: obrien, marcel
* Implement cpu_set_upcall_kse(). Further tweaking may be needed aftermarcel2003-08-111-4/+25
| | | | testing.
* MFI386: Acquire the page queues lock in pmap_insert_entry(), fromgallatin2003-08-071-1/+2
| | | | i386/i386/pmap.c 1.423
* - Since td_critnest is now initialized in MI code, it doesn't have to bejhb2003-08-042-14/+0
| | | | | | set in cpu_critical_fork_exit() anymore. - As far as I can tell, cpu_thread_link() has never been used, not even when it was originally added, so remove it.
* Style sync.obrien2003-08-031-7/+7
|
* In set_mcontext(), store the (user) stack pointer and the threadmarcel2003-07-311-0/+3
| | | | | | | | pointer in the PCB of the corresponding thread if it's not the current thread. This is needed for thr_create() to setup the newly created thread from the context provided by the application. This commit finalizes supporting libthr.
* Make sure that when the PV ENTRY zone is created in pmap, that it'sbmilekic2003-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | created not only with UMA_ZONE_VM but also with UMA_ZONE_NOFREE. In the i386 case in particular, the pmap code would hook a special page allocation routine that allocated from kernel_map and not kmem_map, and so when/if the pageout daemon drained the zones, it could actually push out slabs from the PV ENTRY zone but call UMA's default page_free, which resulted in pages allocated from kernel_map being freed to kmem_map; bad. kmem_free() ignores the return value of the vm_map_delete and just returns. I'm not sure what the exact repercussions could be, but it doesn't look good. In the PAE case on i386, we also set-up a zone in pmap, so be conservative for now and make that zone also ZONE_NOFREE and ZONE_VM. Do this for the pmap zones for the other archs too, although in some cases it may not be entirely necessarily. We'd rather be safe than sorry at this point. Perhaps all UMA_ZONE_VM zones should by default be also UMA_ZONE_NOFREE? May fix some of silby's crashes on the PV ENTRY zone.
* Deal with 'options KSTACK_PAGES' being a global option.peter2003-07-314-0/+7
|
* In cpu_thread_setup(), set md_pcbpaddr to the physical address ofmarcel2003-07-311-1/+2
| | | | | the pcb. We use the physical address for context switching. While here, fix a nearby style(9) bug.
* In get_mcontext(), if we need to clear the return value, clearmarcel2003-07-301-0/+1
| | | | FRAME_A3 as well. Otherwise swapcontext() will return -1.
* Reset the per-CPU unique value at boot and clear it in the PCB of themarcel2003-07-273-3/+9
| | | | | | child when forking. This provides a consistent initial state. Note that cpu_set_upcall() does not clear the per-CPU unique value as it is followed by a call to set_mcontext(), which sets it accordingly.
* - Introduce a new busdma flag BUS_DMA_ZERO to request for zero'edmux2003-07-272-8/+12
| | | | | | | memory in bus_dmamem_alloc(). This is possible now that contigmalloc() supports the M_ZERO flag. - Remove the locking of Giant around calls to contigmalloc() since contigmalloc() now grabs Giant itself.
* MFi386 revision 1.416alc2003-07-251-7/+10
| | | | | | Add vm object locking to pmap_prefault(). Note: powerpc and sparc64 do not implement this function.
* Implement casuptr().marcel2003-07-242-7/+29
|
* In get_mcontext() and set_mcontext() save and restore the currentmarcel2003-07-241-3/+15
| | | | thread pointer.
* Implement alpha_pal_wrunique() and alpha_pal_rdunique(). Both aremarcel2003-07-241-0/+17
| | | | | used to set and get the thread pointer. Note that a context switch will automaticly save and restore the thread pointer.
* Use a spare for the thread pointer (mc_thrptr). The thread pointermarcel2003-07-241-1/+2
| | | | | is only read and written by set_mcontext() and get_mcontext() for use by threading libraries.
* Enable eisa support on alpha.ticso2003-07-212-0/+2
| | | | | We need eisa bridge support on some models, which now depends on having eisa in the kernel.
* Rename thread_siginfo to cpu_thread_siginfo.davidxu2003-07-151-1/+1
| | | | Suggested by: jhb
* 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.
OpenPOWER on IntegriCloud