summaryrefslogtreecommitdiff
path: root/sys/arch/powerpc/include
AgeCommit message (Collapse)Author
2008-11-22cpu_unidle for macppcArtur Grabowski
ok drahn@
2008-11-21back out the new interrupt subsystem because some little bug still lurks in ↵Theo de Raadt
there
2008-11-08Get rid of va-ppc.h.Mark Kettenis
ok miod@
2008-10-23Move the va_copy define to <sys/stdrag.h> making sure it is uniformalyMark Kettenis
protected by __ISO_C_VISIBLE > 1999. With a little help from miod@. ok miod@
2008-10-15make random(9) return per-cpu values (by saving the seed in the cpuinfo),Theo de Raadt
which are uniform for the profclock on each cpu in a SMP system (but using a different seed for each cpu). on all cpus, avoid seeding with a value out of the [0, 2^31-1] range (since that is not stable) ok kettenis drahn
2008-10-10Define MAXCPUS on all architectures.Artur Grabowski
For now, sparc64 is arbitrarily set to 256 (only architecture that didn't have a practical limit in the code on the number of cpus).
2008-09-19miod pointed out that some items were multiply defined (patched intoDale Rahn
existance too many times).
2008-09-18Redesign of the powerpc interrupt architecture, use true levels intead ofDale Rahn
blocking specific interrupts. Needs signficant testing to prove that one remaining elusive bug has been squashed.
2008-09-16SMP ddb support, with some feedback from kettenis.Dale Rahn
2008-09-07- replace dtoa w/ David's gdtoa, version 2008-03-15Martynas Venckus
- provide proper dtoa locks - use the real strtof implementation - add strtold, __hdtoa, __hldtoa - add %a/%A support - don't lose precision in printf, don't round to double anymore - implement extended-precision versions of libc functions: fpclassify, isnan, isinf, signbit, isnormal, isfinite, now that the ieee.h is fixed - separate vax versions of strtof, and __hdtoa - add complex math support. added functions: cacos, casin, catan, ccos, csin, ctan, cacosh, casinh, catanh, ccosh, csinh, ctanh, cexp, clog, cabs, cpow, csqrt, carg, cimag, conj, cproj, creal, cacosf, casinf, catanf, ccosf, csinf, ctanf, cacoshf, casinhf, catanhf, ccoshf, csinhf, ctanhf, cexpf, clogf, cabsf, cpowf, csqrtf, cargf, cimagf, conjf, cprojf, crealf - add fdim, fmax, fmin - add log2. (adapted implementation e_log.c. could be more acruate & faster, but it's good enough for now) - remove wrappers & cruft in libm, supposed to work-around mistakes in SVID, etc.; use ieee versions. fixes issues in python 2.6 for djm@ - make _digittoint static - proper definitions for i386, and amd64 in ieee.h - sh, powerpc don't really have extended-precision - add missing definitions for mips64 (quad), m{6,8}k (96-bit) float.h for LDBL_* - merge lead to frac for m{6,8}k, for gdtoa to work properly - add FRAC*BITS & EXT_TO_ARRAY32 definitions in ieee.h, for hdtoa&ldtoa to use - add EXT_IMPLICIT_NBIT definition, which indicates implicit normalization bit - add regression tests for libc: fpclassify and printf - arith.h & gd_qnan.h definitions - update ieee.h: hppa doesn't have quad-precision, hppa64 does - add missing prototypes to gdtoaimp - on 64-bit platforms make sure gdtoa doesn't use a long when it really wants an int - etc., what i may have forgotten... - bump libm major, due to removed&changed symbols - no libc bump, since this is riding on djm's libc major crank from a day ago discussed with / requested by / testing theo, sthen@, djm@, jsg@, merdely@, jsing@, tedu@, brad@, jakemsr@, and others. looks good to millert@ parts of the diff ok kettenis@ this commit does not include: - man page changes
2008-07-21- add proper double_t and float_t definitions for each archMartynas Venckus
- math.h shouldn't define FLT_EVAL_METHOD, but float.h should (per C99). remove from math.h, and add proper definitions in float.h ok millert@
2008-07-18Add a macro that clears the want_resched flag that need_resched sets.Artur Grabowski
Right now when mi_switch picks up the same proc, we didn't clear the flag which would mean that every time we service an AST we would attempt a context switch. For some architectures, amd64 being probably the most extreme, that meant attempting to context switch for every trap and interrupt. Now we clear_resched explicitly after every context switch, even if it didn't do anything. Which also allows us to remove some more code in cpu_switchto (not done yet). miod@ ok
2008-06-26First pass at removing clauses 3 and 4 from NetBSD licenses.Ray Lai
Not sure what's more surprising: how long it took for NetBSD to catch up to the rest of the BSDs (including UCB), or the amount of code that NetBSD has claimed for itself without attributing to the actual authors. OK deraadt@
2008-06-06Remove long dead meat.Miod Vallat
2008-05-21Remove <machine/elf_abi.h> on platforms which have it. Nothing in the treeMiod Vallat
needs the few MD definitions they (sometimes) provide; only binutils is interested in them, but binutils provide their own include files for that purpose anyway. ok deraadt@ kettenis@
2008-05-04Manage interrupts based on priority better, still working on this...Dale Rahn
2008-05-02implement rw_cas, "go for it" miod@Dale Rahn
2008-05-01Implement a nop IPI to signal other CPUs.Mark Kettenis
ok drahn@
2008-04-29PIR is not defined to be a writable register, do not use it.Dale Rahn
2008-04-27FPU/Altivec cleanup and prep for SMP.Dale Rahn
2008-04-27Switch to proc based ast pending for SMP. ok kettenis.Dale Rahn
2008-04-26Changes to get closer to SMP.Dale Rahn
add biglock before interrupt calls into the kernel. switch the clock to using cpuinfo variables instead of globals move cpu_switchto into C code so that on multiprocessor the FPU and Altivec can be saved before switching CPUs. add a lock into pmap when modifying the hash table.
2007-12-04Remove remains of the idle pcb/stack.Mark Kettenis
ok miod@
2007-11-14Turn the spl* macros into functions.Thordur I. Bjornsson
Shaves a few bytes of the kernel. No measurable performance loss. ok drahn@, kettenis@
2007-11-04replace even more ctob/btoc with ptoa/atopMartin Reindl
2007-10-10Make context switching much more MI:Artur Grabowski
- Move the functionality of choosing a process from cpu_switch into a much simpler function: cpu_switchto. Instead of having the locore code walk the run queues, let the MI code choose the process we want to run and only implement the context switching itself in MD code. - Let MD context switching run without worrying about spls or locks. - Instead of having the idle loop implemented with special contexts in MD code, implement one idle proc for each cpu. make the idle loop MI with MD hooks. - Change the proc lists from the old style vax queues to TAILQs. - Change the sleep queue from vax queues to TAILQs. This makes wakeup() go from O(n^2) to O(n) there will be some MD fallout, but it will be fixed shortly. There's also a few cleanups to be done after this. deraadt@, kettenis@ ok
2007-09-10Introduce a md pmap hook, pmap_remove_holes(), which is supposed to markMiod Vallat
the holes a MMU may have from a given vm_map. This will be automagically invoked for newly created vmspaces. On platforms with MMU holes (e.g. sun4, sun4c and vax), this prevents mmap(2) hints which would end up being in the hole to be accepted as valid, causing unexpected signals when the process tries to access the hole (since pmap can not fill the hole anyway). Unfortunately, the logic mmap() uses to pick a valid address for anonymous mappings needs work, as it will only try to find an address higher than the hint, which causes all mmap() with a hint in the hole to fail on vax. This will be improved later.
2007-05-28Move the MSIZE, MCLSHIFT, MCLBYTES and the MCLOFSETThordur I. Bjornsson
mbuf constants from MD param.h to MI param.h. Besides being the same on every arch, things will most probly break if any arch has different values then the others. The NMBCLUSTERS constants needs to be MD though; ok miod@,krw@,claudio@
2007-05-27Move powerpc to vm_page_md, 'throw it in' kettenis@Dale Rahn
2007-05-19Use atomic operations in set_sint() instead of disabling interrupts in theMiod Vallat
function. ok kettenis@
2007-05-16The world of __HAVEs and __HAVE_NOTs is reducing. All architecturesArtur Grabowski
have cpu_info now, so kill the option. eyeballed by jsg@ and grange@
2007-05-15Remove the MI implementation of mutexes and remove the __HAVE_MUTEXArtur Grabowski
option. Every architecture implements mutexes now.
2007-05-05Define MUTEX_OLDIPL where they were missing, will be used (reasonably) shortly.Miod Vallat
2007-05-03Implement pmap_steal_memory() on powerpc. With some help from art@.Miod Vallat
2007-04-26Handle AltiVec Assist exceptions. Fixes a panic when running crashme.Mark Kettenis
ok thib@, deraadt@
2007-04-13Timecounters for macppc. As clean and simple as sparc64. Uses the %tbMark Kettenis
special register. ok drahn@
2007-03-23Define PROC_PC and simplify userret(); ok kettenis@ (and I think drahn@ too)Miod Vallat
2007-03-22Move powerpc to __HAVE_MUTEX. With help from drahn@. Tested by nick@, xsa@,Mark Kettenis
deraadt@. "reads right" deraadt@
2007-03-20Move macppc to __HAVE_CPUINFO, and make locore.S and trap.c suitable forMark Kettenis
MULTIPROCESSOR. From now on sprg0 holds a pointer to struct cpuinfo, which is used to spill registers to during trap instead of the globals we used to use for that purpose. Bits and pieces from NetBSD. Help from drahn@ and art@. Tested by xsa@, thib@, miod@, gwk@, deraadt@. ok drahn@, gwk@
2007-03-17Implement proper atomic.h for powerpc. With help from art@ and drahn@.Mark Kettenis
ok drahn@
2007-03-15Since p_flag is often manipulated in interrupts and without biglockArtur Grabowski
it's a good idea to use atomic.h operations on it. This mechanic change updates all bit operations on p_flag to atomic_{set,clear}bits_int. Only exception is that P_OWEUPC is set by MI code before calling need_proftick and it's automatically cleared by ADDUPC. There's no reason for MD handling of that flag since everyone handles it the same way. kettenis@ ok
2007-02-19only make this interface available to the kernel for now, discussed withaTheo de Raadt
rt and such; tested and ok miod drahn
2007-02-06Add machine/atomic.h to all architectures and define two operationsArtur Grabowski
right now that are supposed to be atomic with respect to interrupts and SMP: atomic_setbits_int and atomic_clearbits_int. All architectures other than i386 and amd64 get dummy implementations since at first we'll be replacing operations that are done with "a |= bit" and "a &= ~bit" today. More proper implementations will follow kettenis@, miod@ ok
2006-11-29Remove cpu_swapin() and cpu_swapout(), they are no longer necessary (exceptMiod Vallat
for cpu_swapin() on hppa* which is kept).
2006-05-29clean userland namespace a bit more; ok miodTheo de Raadt
2006-05-16Add struct fpreg.Mark Kettenis
2006-05-15Implement PT_{GET|SET}FPREGS.Mark Kettenis
"looks good to me" miod@, ok drahn@
2006-04-17Remove unused struct mdproc fields.Miod Vallat
2006-04-09#ifdef lint wraps for va_startTheo de Raadt
2006-03-19Change BLKDEV_IOSIZE down to 2KB like on all other platforms; ok kettenis@Miod Vallat