summaryrefslogtreecommitdiff
path: root/sys/arch/alpha/include
AgeCommit message (Collapse)Author
2001-12-18We haven't done ECOFF for a long time; garbage-collect all thethorpej
__ELF__ #ifdefs (thus setting ELF in stone).
2001-12-18Add a memory clobber to alpha_pal_swapctx() and alpha_pal_swpipl();thorpej
the former affects the address space, and the latter can let interrupt handlers in to clobber memory.
2001-12-18Disable .loc in macros for now; the new assembler is a lot morethorpej
picky about having the file number defined.
2001-12-17Fix constraints in __asm statements (err, again). Kernels compiledthorpej
with GCC 2.95.3 work now.
2001-12-09Add support for dumping ELF-cormat core files.thorpej
2001-11-15MAXSLP is defined to be a machine-independent scheduling parameter,soren
so move it into sys/param.h.
2001-11-01protect against multiple inclusiondrochner
2001-10-31Rather than using a NetBSD-specific header file <machine/int_types.h>thorpej
and non-standard inttype-like types, pull in <sys/types.h> if _KERNEL or _STANDALONE and <inttypes.h> otherwise, and use standard inttype types. Discussed with and OK'd by Christos.
2001-10-31Use <machine/elf_machdep.h> to override Elf64_Word and Elf64_Swordthorpej
on the Alpha (which uses a non-standard definitions for historical reasons), rather than #ifdef __alpha__ (which is not cross-tool safe).
2001-10-31Split elf32 vs. elf64 handling in loadfile(), including support forthorpej
each separately and explicitly. BOOT_ELF is now BOOT_ELF32 and BOOT_ELF64, and ELFSIZE should no longer be defined in loadfile_machdep.h.
2001-10-05Multiple include protection.simonb
2001-09-22*int_fast64_t should be "long", not "long long".simonb
From Klaus Klein.
2001-09-19Remove alpha/include/fbio.h -- it hasn't been used for a Long Time.thorpej
2001-09-19Fix typo in PRId64.simonb
2001-09-10Update pmap_update to now take the updated pmap as an argument.chris
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment. Currently this is a no-op on most platforms, so they should see no difference. Reviewed by Jason.
2001-09-05The return address register ($ra) is callee-saved, not caller-saved.nathanw
2001-09-04Implement bus_space_mmap().thorpej
2001-07-27Rework the interrupt code, shaving some cycles off in the process.thorpej
Rather than an "iointr" routine that decomposes a vector into an IRQ, we maintain a vector table directly, hooking up each "iointr" routine at the correct vector. This also allows us to hook device interrupts up to specific vectors (c.f. Jensen). We can shave even more cycles off, here, and I will, but it requires some changes to the alpha_shared_intr stuff.
2001-07-19Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-endthorpej
at dmamap load time that the mapping will be used for a unidirectional transfer of the specified direction.
2001-07-19Simplify the SGMAP code a bit, and move SGVA allocation out of athorpej
common routine into the individual load routines, since each load routine needs to muddle with the "internals" of this operation. Add a `prefetch threshold' member to the bus_dma_tag_t, so that eventually we can determine whether or not to allocate a spill page on a per-mapping basis.
2001-07-17Protect userland from the inlines and kernel variable decls.thorpej
2001-07-15Defer sending shootdown IPIs a bit longer. Reduces traffic a fairthorpej
bit more.
2001-07-15- Tweak the pmap locking protocol slightly -- require that a pmap mustthorpej
be locked before it can be marked as `active' on a processor. - Require that pmaps other than the kernel pmap be locked when they are passed to pmap_tlb_shootdown(). This, combined with the locking protocol tweak, allow us to get a consistent view of `activeness' of a pmap, which means we can optmize away a lot of TLB shootdown traffic for user pmaps. - Borrow an idea from the i386mp branch; use the normal SHOOTDOWN IPI to deal with hitting the entire TLB, and garbage-collect the TBIA and TBIAP IPIs.
2001-07-14Cosmetic change.thorpej
2001-06-21constraint, not contraint.wiz
2001-06-14Don't need to prototype child_return() here, it's in <sys/proc.h>.thorpej
2001-06-08For ports that wire up pciide in compatibility mode, havesimonb
them define __HAVE_PCIIDE_MACHDEP_COMPAT_INTR_ESTABLISH in pci_machdep.h and pciide_map_compat_intr() only calls pciide_machdep_compat_intr_establish() if that preprocessor define exists. Ports that don't need to do this no longer need to supply a dummy function.
2001-05-30use _KERNEL_OPTmrg
2001-05-27Assorted microtime fixes (similar to fixes I made yesterday whensommerfeld
porting this code to i386mp branch): - call microset() early on each cpu so that calls to microtime() before the first clock interrupt don't return trash. this manifested itself as garbage runtimes in "ps" for kernel threads. - avoid races between hardclock updating "time" and microset on a different cpu reading it by adding a "microset_time" global which is initialized from "time" on the primary cpu. - call microset every hz ticks, not every hz+1 (cosmetic)
2001-05-26replace vm_page_t with struct vm_page *.chs
2001-05-14o Deal with stray machine checksross
o Add for alpha a security-sensitive rate-limiting printf(9) wrapper based on ratecheck(9): void rlprintf(struct timeval *t, const char *fmt, ...);
2001-05-03Add systype for "Titan" systems (systype 38).thorpej
2001-05-01Delete the pmap_copy() calls.thorpej
2001-05-01Use a single linked list for PV entries. This saves 1MB of spacethorpej
on my 1G RAM AlphaServer.
2001-05-01Per discussion w/ chuck and chuck, restructure the md page stuffthorpej
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD and __HAVE_PMAP_PHYSSEG.
2001-04-29Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data forthorpej
each vm_page structure. Add a VM_MDPAGE_INIT() macro to init this data when pages are initialized by UVM. These macros are mandatory, but ports may #define them to nothing if they are not needed/used. This deprecates struct pmap_physseg. As a transitional measure, allow a port to #define PMAP_PHYSSEG so that it can continue to use it until its pmap is converted to use VM_MDPAGE_MEMBERS. Use all this stuff to eliminate a lot of extra work in the Alpha pmap module (it's smaller and faster now). Changes to other pmap modules will follow.
2001-04-29Add glue for page zero'ing in the idle loop.thorpej
2001-04-28* Move definitions of exact-width integer types from <machine/types.h>kleink
to <sys/types.h> and <sys/stdint.h>. * Add a new C99 <stdint.h> header, which provides integer types of explicit width, related limits and integer constant macros. * Extend <inttypes.h> to provide <stdint.h> definitions and format macros for printf() and scanf(). * Add C99 strtoimax() and strtoumax() functions. * Use the latter within scanf(). * Add C99 %j, %t and %z printf()/scanf() conversions for intmax_t, pointer-type and size_t arguments.
2001-04-28Add a microtime() implementation that interpolates between ticksthorpej
using the cycle counter. MP-safeness is achieved by giving each CPU its own PCC frequency variables, and kicking the non-primary processors via an IPI once per second. Based on the sample code from David Mills' "A Kernel Model for Precision Timekeeping".
2001-04-26Add definitions for C99 fastest minimum-width integer types.kleink
2001-04-26o IEEE 754 floating-point completion code.ross
o Implement the architected FP_C "Floating Point Control Quadword"
2001-04-24Delete a couple of statistics that are not really worth keeping.thorpej
2001-04-24Gather ASN info into a single structure, and place a variable-lengththorpej
array of those structures at the end of the pmap structure. We compute the size of the pmap structure based on the maximum CPU ID for a particular machine. This gives us better cache behavior and better memory footprint for the ASN info.
2001-04-22Undo a misguided previous change to the pmap_update() API.thorpej
2001-04-22Give pmap_update() an argument (a pmap_t) so that it knows whichthorpej
pmap it should be updating.
2001-04-21#define away pmap_update() in <machine/pmap.h> so that no functionthorpej
call overhead is incurred as we start sprinkling pmap_update() calls throughout the source tree (no pmaps currently defer operations, but we are adding the infrastructure to allow them to do so).
2001-04-21Adjust the way the cpu_info[] array works (array of pointersthorpej
rather than array of structures). Keep a list of active CPUs and define a CPU_INFO_FOREACH to traverse them. This fixes cpustates statistics tracking.
2001-04-20Nonfunctional change split out from pending functional commit.ross
2001-04-20SPINLOCK_INTERLOCK_RELEASE_HOOK should actually bethorpej
SPINLOCK_SPIN_HOOK, so that we actually check for pending IPIs on the Alpha more than once. Also, when we call alpha_ipi_process(), make sure to go to splipi().
2001-04-20Add splipi() to block interprocessor interrupts (which come in at IPL 5).thorpej