summaryrefslogtreecommitdiffstats
path: root/sys/ia64/include
Commit message (Collapse)AuthorAgeFilesLines
* Believe it or not, I ran into the 32MB stack size limit using a nativelypeter2002-03-191-1/+1
| | | | hosted gcc.
* Move the definition of PT_[GS]ET{,DB,FP}REGS from the MD ptrace.h to thedes2002-03-161-8/+0
| | | | | MI ptrace.h, since all platforms define them. Keep the MD ptrace.h around for FIX_SSTEP (which is currently only needed on Alpha).
* Add a field to hold the current pmap of a thread.dfr2002-03-141-0/+1
|
* Add ia64_sync_i(), ia64_get_tpr() and ia64_set_tpr().dfr2002-03-141-0/+29
|
* Add debug code to print SAPIC registers.dfr2002-03-141-0/+3
|
* Fix some -Wunused warnings by "using" a macro argumentpeter2002-03-121-7/+7
|
* o Don't require long long support in bswap64() functions.mike2002-03-091-12/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | o In i386's <machine/endian.h>, macros have some advantages over inlines, so change some inlines to macros. o In i386's <machine/endian.h>, ungarbage collect word_swap_int() (previously __uint16_swap_uint32), it has some uses on i386's with PDP endianness. Submitted by: bde o Move a comment up in <machine/endian.h> that was accidentially moved down a few revisions ago. o Reenable userland's use of optimized inline-asm versions of byteorder(3) functions. o Fix ordering of prototypes vs. redefinition of byteorder(3) functions, so that the non-GCC (libc asm) case has proper prototypes. o Add proper prototypes for byteorder(3) functions in <sys/param.h>. o Prevent redundant duplicate prototypes by making use of the _BYTEORDER_PROTOTYPED define. o Move the bswap16(), bswap32(), bswap64() C functions into MD space for platforms in which asm versions don't exist. This significantly reduces the complexity of some things at the cost of duplicate code. Reviewed by: bde
* Add the following functions/macros to support byte order conversions andtmm2002-02-272-23/+81
| | | | | | | | | | | | | | | | | | | | | | | | device drivers for bus system with other endinesses than the CPU (using interfaces compatible to NetBSD): - bwap16() and bswap32(). These have optimized implementations on some architectures; for those that don't, there exist generic implementations. - macros to convert from a certain byte order to host byte order and vice versa, using a naming scheme like le16toh(), htole16(). These are implemented using the bswap functions. - stream bus space access functions, which do not perform a byte order conversion (while the normal access functions would if the bus endianess differs from the CPU endianess). htons(), htonl(), ntohs() and ntohl() are implemented using the new functions above for kernel usage. None of the above interfaces is currently exported to user land. Make use of the new functions in a few places where local implementations of the same functionality existed. Reviewed by: mike, bde Tested on alpha by: mike
* Add C++ support.mike2002-02-191-0/+5
|
* o Move NTOHL() and associated macros into <sys/param.h>. These aremike2002-02-181-56/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | deprecated in favor of the POSIX-defined lowercase variants. o Change all occurrences of NTOHL() and associated marcros in the source tree to use the lowercase function variants. o Add missing license bits to sparc64's <machine/endian.h>. Approved by: jake o Clean up <machine/endian.h> files. o Remove unused __uint16_swap_uint32() from i386's <machine/endian.h>. o Remove prototypes for non-existent bswapXX() functions. o Include <machine/endian.h> in <arpa/inet.h> to define the POSIX-required ntohl() family of functions. o Do similar things to expose the ntohl() family in libstand, <netinet/in.h>, and <sys/param.h>. o Prepend underscores to the ntohl() family to help deal with complexities associated with having MD (asm and inline) versions, and having to prevent exposure of these functions in other headers that happen to make use of endian-specific defines. o Create weak aliases to the canonical function name to help deal with third-party software forgetting to include an appropriate header. o Remove some now unneeded pollution from <sys/types.h>. o Add missing <arpa/inet.h> includes in userland. Tested on: alpha, i386 Reviewed by: bde, jake, tmm
* Resurrect one of the easiest changes from my big include files roll-upwollman2002-02-151-0/+1
| | | | | | patch from a year ago: give file flags their own type. This does not (yet) change the type used by system calls or library functions. The underlying type was chosen to match what is returned by stat().
* Declare ddb_regs as extern to avoid creating a tentative definition.marcel2002-01-181-1/+1
| | | | | This fixes the link failure caused by disabling the emission of common symbols.
* Cleanup the IPIs.marcel2001-12-301-8/+7
|
* Remove unused MD fields (pc_pending_ipis, pc_next_asn andmarcel2001-12-301-3/+3
| | | | | pc_current_asngen) and add SMP specific fields (pc_pcb, pc_lid and pc_awake).
* Fix CRITICAL_FORK so that it compiles.dfr2001-12-231-1/+1
|
* Modify the critical section API as follows:jhb2001-12-183-15/+7
| | | | | | | | | | | | | | | | | | | - The MD functions critical_enter/exit are renamed to start with a cpu_ prefix. - MI wrapper functions critical_enter/exit maintain a per-thread nesting count and a per-thread critical section saved state set when entering a critical section while at nesting level 0 and restored when exiting to nesting level 0. This moves the saved state out of spin mutexes so that interlocking spin mutexes works properly. - Most low-level MD code that used critical_enter/exit now use cpu_critical_enter/exit. MI code such as device drivers and spin mutexes use the MI wrappers. Note that since the MI wrappers store the state in the current thread, they do not have any return values or arguments. - mtx_intr_enable() is replaced with a constant CRITICAL_FORK which is assigned to curthread->td_savecrit during fork_exit(). Tested on: i386, alpha
* Overhaul the per-CPU support a bit:jhb2001-12-115-163/+14
| | | | | | | | | | | | | | | | | | | | | | | | | - The MI portions of struct globaldata have been consolidated into a MI struct pcpu. The MD per-CPU data are specified via a macro defined in machine/pcpu.h. A macro was chosen over a struct mdpcpu so that the interface would be cleaner (PCPU_GET(my_md_field) vs. PCPU_GET(md.md_my_md_field)). - All references to globaldata are changed to pcpu instead. In a UP kernel, this data was stored as global variables which is where the original name came from. In an SMP world this data is per-CPU and ideally private to each CPU outside of the context of debuggers. This also included combining machine/globaldata.h and machine/globals.h into machine/pcpu.h. - The pointer to the thread using the FPU on i386 was renamed from npxthread to fpcurthread to be identical with other architectures. - Make the show pcpu ddb command MI with a MD callout to display MD fields. - The globaldata_register() function was renamed to pcpu_init() and now init's MI fields of a struct pcpu in addition to registering it with the internal array and list. - A pcpu_destroy() function was added to remove a struct pcpu from the internal array and list. Tested on: alpha, i386 Reviewed by: peter, jake
* style(9)obrien2001-12-091-10/+9
|
* Add multiple inclusion protection.jhb2001-12-061-0/+5
|
* o Stop abusing MD headers with non-MD types.mike2001-12-011-2/+0
| | | | | | | | | | | | | | | o Hide nonstandard functions and types in <netinet/in.h> when _POSIX_SOURCE is defined. o Add some missing types (required by POSIX.1-200x) to <netinet/in.h>. o Restore vendor ID from Rev 1.1 in <netinet/in.h> and make use of new __FBSDID() macro. o Fix some miscellaneous issues in <arpa/inet.h>. o Correct final argument for the inet_ntop() function (POSIX.1-200x). o Get rid of the namespace pollution from <sys/types.h> in <arpa/inet.h>. Reviewed by: fenner Partially submitted by: bde
* Initial cut at calling the EFI-provided FPSWA (Floating Point Softwarepeter2001-11-191-0/+1
| | | | | Assist) driver to handle the "messy" floating point cases which cause traps to the kernel for handling.
* Use some (now) spare space for passing through a pointer to the FPSWApeter2001-11-191-1/+2
| | | | Interface provided by EFI (Floating Point SoftWare Assist).
* Remove bootinfo.bi_kernel. It isn't used by the kernel. struct bootinfopeter2001-11-191-1/+1
| | | | | should go away on ia64, we should be loader metadata based since that is the only way we can boot (loader, skiload).
* * Make sure we increment pm_stats.resident_count in pmap_enter_quickdfr2001-11-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | * Re-organise RID allocation so that we don't accidentally give a RID to two different processes. Also randomise the order to try to reduce collisions in VHPT and TLB. Don't allocate RIDs for regions which are unused. * Allocate space for VHPT based on the size of physical memory. More tuning is needed here. * Add sysctl instrumentation for VHPT - see sysctl vm.stats.vhpt * Fix a bug in pmap_prefault() which prevented it from actually adding pages to the pmap. * Remove ancient dead debugging code. * Add DDB commands for examining translation registers and region registers. The first change fixes the 'free/cache page %p was dirty' panic which I have been seeing when the system is put under moderate load. It also fixes the negative RSS values in ps which have been confusing me for a while. With this set of changes the ia64 port is reliable enough to build its own kernels, even with a 20-way parallel build. Next stop buildworld.
* Define PS and VE fields of region register correctly.dfr2001-11-091-2/+2
|
* Implement <machine/ieeefp.h>dfr2001-11-031-14/+36
|
* o Add new header <sys/stdint.h>.mike2001-11-024-0/+470
| | | | | | | | | | | | | | | | | | | | | o Make <stdint.h> a symbolic link to <sys/stdint.h>. o Move most of <sys/inttypes.h> into <sys/stdint.h>, as per C99. o Remove <sys/inttypes.h>. o Adjust includes in sys/types.h and boot/efi/include/ia64/efibind.h to reflect new location of integer types in <sys/stdint.h>. o Remove previously symbolicly linked <inttypes.h>, instead create a new file. o Add MD headers <machine/_inttypes.h> from NetBSD. o Include <sys/stdint.h> in <inttypes.h>, as required by C99; and include <machine/_inttypes.h> in <inttypes.h>, to fill in the remaining requirements for <inttypes.h>. o Add additional integer types in <machine/ansi.h> and <machine/limits.h> which are included via <sys/stdint.h>. Partially obtain from: NetBSD Tested on: alpha, i386 Discussed on: freebsd-standards@bostonradio.org Reviewed by: bde, fenner, obrien, wollman
* * Factor out common code for manipulating the RSE backing store.dfr2001-10-292-0/+76
| | | | | | | | | * Implement a fairly simplistic parser for unwinding stack frames. * Use unwind records for DDB's 'trace' command. Also add support for tracing past exceptions to the context which generated the exception. The stack unwind code requires a toolchain based on binutils-2.11.2 or later and gcc-3.0.1 or later.
* The size of the ELF hash table changed from 64 bits in the prototypepeter2001-10-291-1/+1
| | | | | | toolchains to 32 bits in 2.11.2. Obtained from: dfr
* Add an IPI used for testing proper operation of delivering IPIs.marcel2001-10-291-1/+2
|
* o Do not parse the MADT as a side-effect in AcpiOsGetRootPointer,marcel2001-10-292-15/+22
| | | | | | | | | | | | | | | | | | do it as a side-effect of probing for MP hardware. This allows us to scan for local SAPICs early (especially before MBUF initialization). o Fix the Local SAPIC structure so that matches the Local SAPIC table entry. Now that the Local SAPIC info is the same as the Local APIC info, stop dumping the Local APIC entries. o For every Local SAPIC entry in the MADT that's not disabled, let the SMP code know about it. They represent actual CPUs. o Register the OS_BOOT_RENDEZ entry point and provide a (bogus) implementation for the entry point. o Provide a mapping for internal IPI numbers to ExtINT vectors. o In a MP system, announce the CPUs and start them by sending IPI_AP_WAKEUP to each of them. Not that it makes a difference at this time :-) o Miscellaneous style fixes and other adjustments.
* Add data serialisations after ptc and mov to rr[] instructions.dfr2001-10-231-5/+6
|
* Remove funky right justification.mike2001-10-231-9/+9
| | | | Pointed out by: bde
* [partially forced commit due to pilot error in earlier commit attempt]des2001-10-212-4/+10
| | | | | | | | | | | | | | | | | {set,fill}_{,fp,db}regs() fixup: - Add dummy {set,fill}_dbregs() on architectures that don't have them. - KSEfy the powerpc versions (struct proc -> struct thread). - Some architectures had the prototypes in md_var.h, some in reg.h, and some in both; for consistency, move them to reg.h on all platforms. These functions aren't really MD (the implementation is MD, but the interface is MI), so they should move to an MI header, but I haven't figured out which one yet. Run-tested on i386, build-tested on Alpha, untested on other platforms.
* Add ia64_set_fpsr().dfr2001-10-211-0/+9
|
* Add define for the PIB default address and include a reference tomarcel2001-10-211-1/+6
| | | | the SDM.
* Reserve space for signal state.dfr2001-10-201-1/+4
|
* Make this compile under option SMP.marcel2001-10-201-4/+4
|
* Try two on the preprocessing logic.ru2001-10-191-1/+1
| | | | Reviewed by: obrien
* Blah, fix braino where ru had to remind me of proper preprocessor syntax.obrien2001-10-191-1/+1
| | | | Bad fingers, no cookie.
* Rework pmap so that it separates the PTE structure from the pv_entrydfr2001-10-191-1/+6
| | | | | | | | | | | | | structure. This makes it possible to pre-allocate PTEs for the kernel, which is necessary for a reliable implementation of pmap_kenter(). This also avoids wasting space (about 48 bytes per page) for kernel mappings and user mappings of memory-mapped devices. This also fixes a bug with the previous version where the implementation required the pv_entry structure to be physically contiguous but did not enforce this (the structure size was not a power of two). This meant that the pv_entry free list was quickly corrupted as soon as the system was even mildly loaded.
* Shift the code which packs and unpacks instruction bundles out of DDBdfr2001-10-182-4/+11
| | | | | since it is useful for various emulations duties (e.g. unaligned trap handling).
* Add support for "__gnuc_va_list". Some overly "smart" libraries assumeobrien2001-10-181-1/+7
| | | | | | | the existence of the __gnuc_va_list type[*] because our compiler is GCC. [*] __gnuc_va_list is defined in the GCC ginclude/stdarg.h replacement headerwhich we don't use.
* Implement MCOUNT hook for assembler. Probably doesn't work right.dfr2001-10-111-3/+1
|
* Implement mcount trampoline (untested).dfr2001-10-111-114/+64
|
* Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loaderps2001-10-101-1/+1
| | | | | | | tunable. Reviewed by: peter MFC after: 2 weeks
* Add a definition for the ia64's special PLT_RESERVE entry in the _DYNAMICdfr2001-10-101-0/+4
| | | | section.
* Implement inline versions of ntohl etc.dfr2001-10-071-3/+33
|
* Assume round-to-nearest mode for floating point.dfr2001-10-061-5/+1
|
* o Change ia64_memory_address to explicitly take a u_int64_tmarcel2001-10-061-2/+50
| | | | | | o Add memcpy_fromio, memcpy_io, memcpy_toio, memset_io, memsetw and memsetw_io. I'm not sure this is the right place for it, though.
OpenPOWER on IntegriCloud