Commit Graph

456 Commits

Author SHA1 Message Date
thorpej 800e276128 Fix INTRCNT_DEC_550_IRQ_LEN. From Nathan Williams. 2000-03-21 02:17:11 +00:00
thorpej 3c8d09cc56 Update the amask bits. 2000-03-20 02:19:44 +00:00
thorpej ac93a75106 Point back to the alpha_shared_intr in the intrhand structure. This
allows platform-specific code to access the `intr_private' data via
the intrhand structure.
2000-03-19 01:46:18 +00:00
tron e86957458a Install "machineendian_machdep.h". 2000-03-17 22:36:31 +00:00
mycroft 9e21b6555a In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
2000-03-17 00:09:18 +00:00
mycroft 02905321b2 Foolish consistency. Mainly, always use underscores and sys/endian.h. 2000-03-16 15:09:34 +00:00
drochner aa1de89bdf explicitely #include <sys/systm.h> #if BUS_SPACE_DEBUG to get a printf()
prototype
2000-03-15 16:44:48 +00:00
soren 95054da1a1 Fix doubled 'the's in comments. 2000-03-13 23:52:25 +00:00
kleink a9ebf7bb8c Define ISO C99 (unsigned) long long (min, max) symbols. 2000-03-07 19:31:49 +00:00
thorpej 23c5667cfe Use ANSI-style function declarations for the various inline functions
here.  Addresses port-alpha/9056.
2000-03-05 18:46:14 +00:00
thorpej 908f6bc4cd Infrastructure for lazy istream sync in the pmap module:
- Add a bitmask for the CPUs which need an isync before this pmap returns
  to userspace on that CPU.
- Define PMAP_USERRET(), a utility macro for userret() to use to process
  the deferred isync, and call it as appropriate in userret().
2000-03-01 02:22:03 +00:00
thorpej fac7fc369f Put machine check info in cpu_info in the multiprocessor case, and
just have one statically allocate machine check info structure in the
single processor config case.
2000-02-29 22:19:53 +00:00
mycroft 76a60b98d3 Install pio.h. 2000-02-26 22:15:40 +00:00
thorpej 198dbed79d Pull in <sys/types.h> for the benefit of those things which include
<machine/sysarch.h> but don't pull in <sys/types.h>.
2000-02-26 20:12:56 +00:00
thorpej 0958e8149a x86-style PIO ops for USERLAND ONLY! Requires -lalpha. 2000-02-26 19:00:51 +00:00
thorpej df88882d80 - Add a bus space method for getting the translation for a window.
- Add sysarch methods for "get bus window count", "get bus window",
  and "pci conf read/write".

These are a hack, but they're what's necessary in order to make
XFree86 work in its current state.
2000-02-26 18:53:10 +00:00
thorpej 3dacaa322d Protect a few things from userland with _KERNEL. 2000-02-25 01:16:41 +00:00
thorpej de974ff82d Add an internal bus space method alpha_bus_space_translate(), which
provides a method to translate an address on an I/O bus into a sysBus
address, along with acccess method information.
2000-02-25 00:45:04 +00:00
thorpej dded044fc2 Update for the NKMEMPAGES changes. 2000-02-11 19:25:12 +00:00
thorpej 52a2804a5c Add a new function call to the ISA DMA API: isa_dmamaxsize(), which returns
the maximum transfer size for the specified DMA channel.  Make all clients
of ISA DMA use this call to determine their maximum transfer size.
2000-02-07 22:07:27 +00:00
thorpej 0c4f8a876b Implement an internal DMA map flag which prevents coalescing of
adjacent DMA segments.
2000-02-06 01:23:30 +00:00
kleink 36e6bc645e Improve namespace test macros a bit. 2000-02-05 14:04:36 +00:00
cgd 253b179629 clean up (group, sort) __HAVE_* defines 2000-02-05 00:07:30 +00:00
kleink 82464e46d6 Add a C99-style va_copy macro. 2000-02-03 16:16:06 +00:00
danw f77befbc84 #define __HAVE_DEVICE_REGISTER on ports that have it, and check for
that, rather than a list of architecture defines, in config_attach
2000-02-01 04:01:19 +00:00
tsutsui b0fbaa33fb Remove obsoleted macros. 2000-01-26 09:44:10 +00:00
drochner 8eb798e603 define a "BUS_SPACE_MAP_PREFETCHABLE" flag which basically means that
device accesses are idempotent (but should not be cached by the CPU)
2000-01-25 22:13:17 +00:00
kleink 693059feda const -> __const and include <sys/cdefs.h> earlier; fixes PR lib/9052
by Takahiro Kambe.
2000-01-04 14:20:05 +00:00
kleink 11e6c54cfc C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
1999-12-23 10:15:05 +00:00
thorpej 81f44f09a5 - Remove a misguided attempt to use procs as idle contexts for secondary
processors.  Instead, allocate separate idle PCBs for them (including
  the primary -- don't use proc0's for its idle context).
- Use SysValue to store the cpu_info for each processor.
1999-12-16 20:17:22 +00:00
thorpej fd6f6e85b2 Slight changes so that bounce buffers can be implemented for the Jensen. 1999-12-08 23:40:35 +00:00
ragge 0513268399 CL* discarding. 1999-12-04 21:13:19 +00:00
thorpej 08d1d1b378 Actually, the 2100_A500 has 64 interrupts, not 16. 1999-12-04 00:22:54 +00:00
lukem a63bfb3c6a add atomic.h (missed by thorpej; approved by thorpej) 1999-12-04 00:18:15 +00:00
thorpej 5d0a62da53 Remove now-obsolete atomic operations. 1999-12-03 01:13:17 +00:00
thorpej 2a97466824 Rewrite the atomic locking primitives using in-line assembly. 1999-12-03 01:11:34 +00:00
thorpej 9f7d189f05 Inline most of the remaining PALcode calls. 1999-12-02 22:08:04 +00:00
thorpej 0a2ea99c42 Inline the BWX instructions. 1999-12-02 19:41:39 +00:00
thorpej 4106b60175 Move atomic operations into <machine/atomic.h>, and make them in-line
assembly, rather than function calls.

...except alpha_atomic_testset_l(), which will go away completely once
I commit the new <machine/lock.h>.
1999-12-02 01:09:11 +00:00
thorpej c258dfae2f After reading the GCC `documentation' a little more, improve the inline
__asm() statements added previously for PALcode operations.
1999-12-01 18:23:11 +00:00
thorpej 89ae0bf93c Inline several things from pal.s:
- alpha_rpcc(), alpha_mb(), alpha_wmb() -- these are instructions, and
  we win by inlining them: rpcc is generally used for profiling, and
  the memory barriers really should execute as quickly as possible with
  minimal side-effects (like additional loads/stores required to call the
  functions!)
- alpha_pal_imb(), alpha_pal_rdps(), alpha_pal_swpipl(), alpha_pal_tbi(),
  alpha_pal_whami() -- these are PALcode ops.  We must specify some register
  clobbers for these.

We have a very decent size savings as a result.  My test system:
text    data    bss     dec     hex     filename
2671724 235848  377016  3284588 321e6c  /netbsd.bak
2617708 235736  377016  3230460 314afc  /netbsd

Most of this comes from fewer register saves/restores around spl*() calls
(now that alpha_pal_rdps() and alpha_pal_swpipl() are inlined).

Note that alpha_pal_rdps() and alpha_pal_swpipl() remain in pal.s to
maintain binary compatibility with LKMs that may use spl*() functions.
1999-11-30 00:42:46 +00:00
thorpej df2cf70865 - Fix a botch in the IPI bitmasks (they were right-shifted by 1), and
add an IPI which causes the target CPU to perform AST processing when
  it returns to userspace.
- Add a way to get/set a private pointer in the shared interrupt header.
1999-11-29 19:58:39 +00:00
thorpej 94552ad5d6 - Use alpha_atomic_{add,sub}_q() to update the pmap statistics. We now no
longer need to lock the kernel pmap in pmap_kenter_pa() and pmap_kremove().
- Since locking the kernel pmap in interrupt context is no longer required,
  don't go to splimp() when locking the kernel pmap.
- Implement a new pmap_remove() function, not yet enabled by default.  It
  is structured like pmap_protect, and should be *much* faster.  This was
  actually written quite some time ago, but never committed because it
  didn't work properly.  Given the recent bugfix to pmap_protect(), "duh,
  of course it didn't work properly before...".  It seems to work fine now
  (have done several builds and run the UVM regression tests using the new
  code), but it is currently run-time optional so that some performance
  measurements can be easily run against the old and new code.
1999-11-28 19:53:11 +00:00
thorpej 1710fad449 Implement atomic addition and subtraction on quadwords. 1999-11-28 19:47:13 +00:00
kleink 522cbf0248 Update to match new SVR4-style definition names in <sys/exec_elf.h>. 1999-10-25 13:55:06 +00:00
thorpej 11cae42531 Centralize the declaration and clearing of `cold'. 1999-09-17 19:59:35 +00:00
ross f468c5f199 This is required by libsa/loadfile.c. 1999-09-10 07:33:57 +00:00
simonb 3c185af5fd Include <sys/endian.h> after defining whether where are little- or
big-endian.  i386, pc532 and vax still include <machine/byte_swap.h>
and define macros for the {n,h}to{h,n}*() functions.  mips also
defines some endian-independent assembly-code aliases for unaligned
memory accesses.
1999-08-21 05:53:50 +00:00
simonb 06a92524c2 Include <sys/bswap.h> for function prototypes. i386, pc532 and vax
still include <machine/byte_swap.h> and define macros for some of
the bswap*() functions.
1999-08-21 05:39:51 +00:00
thorpej 95755c54bb Pull in <machine/alpha_cpu.h>. 1999-08-16 06:24:07 +00:00