freebsd-dev/sys/sparc64/include
Thomas Moestl a00f3148b6 Fixes for a number of problems in the IOMMU code:
1.) Fix an off-by-one in the DVMA space handling, which would make it
    possible to allocate one page beyond the end of the DVMA area.
    This page was aliased to the first page. Apparently, this bug was
    responsible for the trashed nvram/eeprom some people were reporting,
    in conjunction with a number of unfortunate coincidences.
2.) Fix broken boundary and and lowaddr calculations.
3.) Fix a memory leak on an error path.
4.) Update a outdated comment to reflect the introduction of IOMMU_MAX_PRE,
    make the usage of IOMMU_MAX_PRE more consistent and KASSERT that the
    preallocation size is not 0.
5.) Fix a case where an error return was lost.
6.) When signalling an error to the caller by invoking the callback, do
    not use a segment pointer of NULL for compatability with existing
    drivers.

Also, increase the maximum segment number to 64; it is rather arbitrary,
with the exception of the of the stack space consumed by the segment
array.

Special thanks go to Harti Brandt <brandt@fokus.fraunhofer.de> for
spotting 4 and 5, and testing many iterations of patches.

Pointy hats to:	tmm
2003-01-21 18:22:26 +00:00
..
_inttypes.h Since printf(3) now supports the `j' conversion specifier, use that 2002-06-30 05:48:03 +00:00
_limits.h Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
_stdint.h Create a new header <machine/_stdint.h> for storing MD parts of 2002-07-29 17:41:23 +00:00
_types.h Move several MI types from <machine/_types.h> to <sys/_types.h>. 2002-08-23 16:49:06 +00:00
asi.h Add ASI definitions of UltraSPARC-III (Cu) processors, and add some 2002-07-16 16:22:25 +00:00
asm.h ASM versions of __FBSDID. 2002-03-23 02:01:27 +00:00
asmacros.h Add pmap support for user mappings of multiple page sizes (super pages). 2002-08-18 02:09:27 +00:00
atomic.h Make the atomic arithmetic functions return the old value, since they're 2002-12-21 08:53:26 +00:00
bus_common.h Always initialize the UPA target module id in the interrupt mapping 2002-12-01 23:30:26 +00:00
bus_memio.h
bus_pio.h
bus_private.h Fixes for a number of problems in the IOMMU code: 2003-01-21 18:22:26 +00:00
bus.h Implement bus_space_subregion. 2003-01-08 04:29:00 +00:00
cache.h Add SMP aware cache flushing functions, which operate on a single physical 2002-05-20 16:30:47 +00:00
ccr.h
clock.h Add two extern's for adjkerntz and wall_cmos_clock, all other 2002-10-05 20:14:49 +00:00
cpu.h Add declarations for btext and etext. 2002-07-28 01:01:14 +00:00
cpufunc.h Stage-2 commit of the critical*() code. This re-inlines cpu_critical_enter() 2002-04-01 23:51:23 +00:00
critical.h Stage-2 commit of the critical*() code. This re-inlines cpu_critical_enter() 2002-04-01 23:51:23 +00:00
db_machdep.h
eeprom.h Add missing header for the eeprom driver frontents. 2002-04-05 02:40:54 +00:00
elf.h Make imgact_elf32.c compile on sparc64. 2003-01-05 03:48:55 +00:00
endian.h Be careful not to define GCC-specific optimizations in the non-GCC 2002-09-23 04:32:17 +00:00
exec.h
float.h Remove __P. 2002-03-21 00:06:55 +00:00
floatingpoint.h
fp.h Remove code from trap which is handled in userland now. 2002-06-08 07:17:19 +00:00
frame.h - Expand struct trapframe to 256 bytes, make all fields fixed width and the 2002-10-22 18:03:15 +00:00
fsr.h Clean up a bit, and add some more macros to access %fsr fields. 2002-09-14 17:58:54 +00:00
idprom.h
ieee.h
ieeefp.h Use the definitions in machine/fsr.h instead of duplicating these magic 2002-09-14 18:00:44 +00:00
in_cksum.h
instr.h Add new UltraSPARC-III VIS II instructions. 2002-07-16 17:44:01 +00:00
intr_machdep.h Renamed intr_enqueue to intr_vector and intr_dequeue to intr_fast, to 2002-09-28 03:06:35 +00:00
iommureg.h Some cleanup: 2003-01-06 17:10:07 +00:00
iommuvar.h Change the iommu code to be able to handle more than one DVMA area per 2003-01-06 21:59:54 +00:00
kerneldump.h Add kernel dump support, based on the ia64 version (which was committed 2002-10-20 17:03:15 +00:00
kse.h Add files that are new for KSE. 2002-06-29 07:04:59 +00:00
ktr.h Provide an implementation of KTR_CPU that doesn't use pcpu, so we don't 2002-04-06 08:40:59 +00:00
limits.h Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
lsu.h Add new LSU bits for UltraSPARC-III. 2002-07-16 16:24:03 +00:00
md_var.h Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
metadata.h Use a contrived 'tlb_entry' structure for passing the mappings for the 2002-05-29 05:49:59 +00:00
mutex.h
nexusvar.h
ofw_bus.h Add two new workaround for firmware anomalies: 2002-11-07 16:07:46 +00:00
ofw_machdep.h Add support for starting and stopping cpus with ipis. 2002-03-13 04:59:01 +00:00
ofw_mem.h Add kernel dump support, based on the ia64 version (which was committed 2002-10-20 17:03:15 +00:00
ofw_nexus.h
ofw_upa.h
param.h Get rid of the TODO macro in the few places that still need work; either 2002-10-01 06:34:21 +00:00
pcb.h Explicitely specify an alignment for struct pcb. While all regular pcb's 2002-10-19 15:54:34 +00:00
pcpu.h Store the number of itlb and dtlb entries separately; they may be different. 2002-08-15 05:24:55 +00:00
pmap.h - Reorganize PMAP_STATS to scale a little better. 2003-01-05 05:30:40 +00:00
proc.h Remove unneeded include. 2002-05-08 04:21:58 +00:00
profile.h Add definitions for statistical and high-resolution profiling. The calling 2002-07-30 06:14:34 +00:00
pstate.h
ptrace.h Move the definition of PT_[GS]ET{,DB,FP}REGS from the MD ptrace.h to the 2002-03-16 00:25:53 +00:00
reg.h - Expand struct trapframe to 256 bytes, make all fields fixed width and the 2002-10-22 18:03:15 +00:00
reloc.h
resource.h
runq.h Move the "- 1" into the RQB_FFS(mask) macro itself so that 2002-06-20 06:21:20 +00:00
setjmp.h Fix namespace issues by using visibility conditionals from 2002-10-05 05:47:56 +00:00
sigframe.h
signal.h Split 4.x and 5.x signal handling so that we can keep 4.x signal 2002-10-25 19:10:58 +00:00
smp.h - Add a spin lock to single thread cache invalidation and tlb flush ipis, 2002-12-22 20:50:23 +00:00
stdarg.h o Add conditionals to allow va_list to be defined in other headers. 2002-10-06 22:01:07 +00:00
sysarch.h Add support for an alternate signal trampoline; add a sysarch call to register 2002-04-29 18:08:26 +00:00
tick.h Initialize tick_MHz and related variables much earlier. After the last 2002-10-25 17:42:14 +00:00
tlb.h - Change the way the direct mapped region is implemented to be generally 2002-12-23 23:39:57 +00:00
trap.h Greatly improve readability of trap() by using a table to convert between 2002-10-25 16:00:47 +00:00
tsb.h Add pmap support for user mappings of multiple page sizes (super pages). 2002-08-18 02:09:27 +00:00
tstate.h
tte.h Use memset instead of __builtin_memset. Apparently there's an inline 2002-12-29 08:37:11 +00:00
ucontext.h Don't allow user process to set an invalid window state through sigreturn. 2003-01-10 00:04:56 +00:00
upa.h Lower UPA_MEMSTART to 0x1c000000000. This is required for some larger 2002-04-02 17:38:52 +00:00
utrap.h Don peril sensitive sun glasses and change the default system call vector 2002-10-27 17:22:43 +00:00
varargs.h Add conditionals to allow va_list to be defined in other headers. 2002-10-06 22:02:06 +00:00
ver.h Add two new workaround for firmware anomalies: 2002-11-07 16:07:46 +00:00
vmparam.h Define UMA_MD_SMALL_ALLOC so that uma_small_alloc and uma_small_free will 2002-12-27 19:31:26 +00:00
watch.h
wstate.h Implement a nested window state. This avoids attempting to spill a user 2002-02-25 18:37:17 +00:00