Commit Graph

477 Commits

Author SHA1 Message Date
thorpej
cc2c493bc4 Use PAGE_SIZE rather than NBPG. 2003-04-02 07:35:54 +00:00
thorpej
d3f30fc625 We use 8K VM pages on Sun4U, so make PAGE_SIZE, PAGE_SHIFT, and PAGE_MASK
into compile-time constants.
2003-04-01 16:05:30 +00:00
nakayama
b1a9940dae PCI-CardBus bridge support for sparc64:
- add MD part of cardbus support.
2003-03-22 06:36:18 +00:00
nakayama
11529a0609 PCI-CardBus bridge support for sparc64:
- add splsoftserial.
2003-03-22 06:34:28 +00:00
tshiozak
31e2cbf0b5 add some ISO C 1995 I18N functions and types:
btowc, wctrans, towctrans, wcscoll, wcsxfrm, wctype_t and wctrans_t.
2003-03-02 22:18:11 +00:00
nakayama
e3e4805068 Replace machine/rnd.h with more appropriate name to share it
with cycle counter based microtime in kern/kern_microtime.c.
2003-02-05 13:57:50 +00:00
nakayama
8920acd333 Switch to use cycle counter (%tick) based microtime().
This is derived from alpha/microtime.c and i386/tsc_microtime.c,
and will share with both ports.

This should fix PR port-sparc64/18452.
(approved by martin)
2003-02-05 12:06:51 +00:00
martin
1ecf66db9f Make the pmap count resident/wired mappings on the fly instead of
walking the page tables whenever this information is needed.

Add an option PMAP_COUNT_DEBUG to assert the new counts and the
page table walk agree.

The old solution had very bad performance impact, for example
by the high CPU load when running top(1).

Thanks to Simon Burge for pointing at the cause of the problem and
to Valeriy E. Ushakov for optimizing my simple minded assembler code.
2003-01-31 19:05:55 +00:00
martin
dc63778c66 Sparc64 already had a BUS_DMA_NOCACHE - remove one of the two definitions.
Fortunately the old (local) one had the same semantics as the new one.
2003-01-30 13:32:25 +00:00
kent
cd7d9faeaf Introduce BUS_DMA_NOCACHE, and bus_dmamem_map() of i386 supports it. 2003-01-28 01:07:51 +00:00
martin
8772c68807 Rename the DIV0 traps to avoid confusion with the usage on the sparc
port: T_IDIV0 is the hardware trap generated on integer division by
zero, T_DIV0 is the software trap used to signal the same event.

This makes 32 bit kernels able to run sparc code with the v7 multiply/
divide library.

Spotted by Valeriy E. Ushakov.
2003-01-21 19:46:49 +00:00
thorpej
d2275d51e1 Merge the nathanw_sa branch. 2003-01-18 06:55:21 +00:00
thorpej
b346ea724a Merge sparc and sparc64 <machine/signal.h>. 2003-01-09 23:25:24 +00:00
wiz
1035faff1d writable, not writeable. 2003-01-06 20:30:28 +00:00
pk
725a6aebf7 Remove the `flags' argument from bus_intr_establish(). 2002-12-10 13:44:47 +00:00
pk
68817a2024 bus_intr_establish() signature change.
The additional `fast trap' argument is ignored in these drivers.
BUS_INTR_ESTABLISH_FASTTRAP and BUS_INTR_ESTABLISH_SOFTINTR are no longer used.
2002-12-10 12:24:05 +00:00
thorpej
78ea2dd367 Use __LDPGSZ (which must be == USRTEXT) as the text address for a.out
executables, and eliminate the USRTEXT constant, which was only used
by the a.out exec code.
2002-12-10 05:14:24 +00:00
pk
4cd21bc0aa Sync machdep sysctls with sparc. 2002-11-27 18:00:27 +00:00
lukem
0635de35a3 Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more. 2002-11-26 23:30:07 +00:00
scw
cb52115837 In preparation for COMPAT_NETBSD32 on SH-5:
- The MD netbsd32_machdep.h header now defines the 32-bit pointer type
   instead of using u_int32_t everywhere,
 - The MD netbsd32_machdep.h header now defines a macro (at least on
   current implementations) which converts a 32-bit pointer to its 64-bit
   equivalent,
 - Change the MI code to utilise the above two items in all the right places,
 - Implement netbsd32___sigaction_sigtramp().

Tested on Sparc64 by Matt Green.
2002-10-23 13:16:38 +00:00
martin
fdeb300692 We are not going to get a "upa at mainbus" autoconfig entity, since
UPA is just a physical incarnation of our mainbus0.

Evidence:

 - There can only be one!
 - The firmware node coresponding to it is the root of the OF tree

So: remove the unused (and uncompilable) upa.c, remove upavar.h after
moving the only declaration used from it to autoconf.h.
2002-10-20 15:53:16 +00:00
martin
44a2c6cb31 All sparc64 CPUs do __HAVE_CPU_COUNTER (aka %tick). 2002-10-07 13:26:56 +00:00
abs
ae80876d99 #include "kbd.h" for NKBD and only override cn_isconsole to check cn_hw if set.
Fixes compilation without kbd.
2002-09-30 09:43:13 +00:00
chs
50403f5ce2 remove some vestigial FPU and cache code that's not need on ultrasparcs.
misc tidiness.
2002-09-29 04:12:02 +00:00
chs
70d1ddac15 avoid reading %pil in splx() if !SPLDEBUG.
misc tidiness.
2002-09-29 04:06:20 +00:00
chs
f54a093e81 many improvements:
- use struct vm_page_md for attaching pv entries to struct vm_page
 - change pseg_set()'s return value to indicate whether the spare page
   was used as an L2 or L3 PTP.
 - use a pool for pv entries instead of malloc().
 - put PTPs on a list attached to the pmap so we can free them
   more efficiently (by just walking the list) in pmap_destroy().
 - use the new pmap_remove_all() interface to avoid flushing the cache and TLB
   for each pmap_remove() that's done as we are tearing down an address space.
 - in pmap_enter(), handle replacing an existing mapping more efficiently
   than just calling pmap_remove() on it.  also, skip flushing the
   TSB and TLB if there was no previous mapping, since there can't be
   anything we need to flush.  also, preload the TSB if we're pre-setting
   the mod/ref bits.
 - allocate hardware contexts like the MIPS pmap:
   allocate them all sequentially without reuse, then once we run out
   just invalidate all user TLB entries and flush the entire L1 dcache.
 - fix pmap_extract() for the case where the va is not page-aligned and
   nothing is mapped there.
 - fix calculation of TSB size.  it was comparing physmem (which is
   in units of pages) to constants that only make sense if they are
   in units of bytes.
 - avoid sleeping in pmap_enter(), instead let the caller do it.
 - use pmap_kenter_pa() instead of pmap_enter() where appropriate.
 - remove code to handle impossible cases in various functions.
 - tweak asm code to pipeline a little better.
 - remove many unnecessary spls and membars.
 - lots of code cleanup.
 - no doubt other stuff that I've forgotten.

the result of all this is that a fork+exit microbenchmark is 34% faster
and a fork+exec+exit microbenchmark is 28% faster.
2002-09-22 07:19:43 +00:00
gehenna
77a6b82b27 Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

	device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
  by using this grammer.

- Added the new naming convention.
  The name of the device switch must be <prefix>_[bc]devsw for auto-generation
  of device switch tables.

- The backward compatibility of loading block/character device
  switch by LKM framework is broken. This is necessary to convert
  from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
  We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
  the LKM framework will refer it to assign device major number dynamically.
2002-09-06 13:18:43 +00:00
thorpej
c9dafdb84c Increase the default stack limit to 2M (from 512K on sparc and 1M
on sparc64).
2002-09-03 16:24:35 +00:00
uwe
082c4cf032 Make sun ports use common keyboard/firm events related includes
from dev/sun.
2002-08-27 09:47:41 +00:00
thorpej
8b7cc1c1d2 Protect against multiple inclusion. 2002-08-23 02:45:44 +00:00
thorpej
de6a644cea * Refine the comment describing openprom_addr.
* Add openprom_range and openprom_intr structures.
2002-08-23 01:08:45 +00:00
petrov
e879a86b97 Add sab. 2002-08-16 08:52:48 +00:00
briggs
0b956d0b8b Implement pmc(9) -- An interface to hardware performance monitoring
counters.  These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface.  Initially, the Intel XScale
counters are the only ones supported.
2002-08-07 05:14:47 +00:00
mrg
321856e31b merge with sparc. 2002-07-29 07:07:15 +00:00
mrg
154a2d2a42 use <sparc/foo.h> where appropriate. now these files become very
very difficult to get out of sync.  add bootinfo.h and promlib.h
(using the same method) so that sparc64 headers can build sparc
stand (not yet finished.)
2002-07-20 11:52:21 +00:00
thorpej
29b1d0613b Remove CPU_ISSUN4MOR4U, CPU_ISSUN4OR4C, and CPU_ISSUN4COR4M. 2002-07-17 04:56:49 +00:00
thorpej
011d4d5f44 Add kernel support for having userland provide the signal trampoline:
* struct sigacts gets a new sigact_sigdesc structure, which has the
  sigaction and the trampoline/version.  Version 0 means "legacy kernel
  provided trampoline".  Other versions are coordinated with machine-
  dependent code in libc.
* sigaction1() grows two more arguments -- the trampoline pointer and
  the trampoline version.
* A new __sigaction_sigtramp() system call is provided to register a
  trampoline along with a signal handler.
* The handler is no longer passed to sensig() functions.  Instead,
  sendsig() looks up the handler by peeking in the sigacts for the
  process getting the signal (since it has to look in there for the
  trampoline anyway).
* Native sendsig() functions now select the appropriate trampoline and
  its arguments based on the trampoline version in the sigacts.

Changes to libc to use the new facility will be checked in later.  Kernel
version not bumped; we will ride the 1.6C bump made recently.
2002-07-04 23:32:02 +00:00
thorpej
f427b80c27 Add ENTRY_NOPROFILE(). 2002-06-24 01:13:34 +00:00
eeh
5f3262977c Don't use smaller trapframes. Causes more problems that it's worth right now. CVS: ---------------------------------------------------------------------- 2002-05-16 23:29:42 +00:00
eeh
a48bd3e3b4 Make the PCI code actually work. 2002-05-16 20:28:33 +00:00
thorpej
204183c0fa * Add "pcitag_t *pba_bridgetag" to pci_attach_args. This is set to
NULL for root PCI busses.  For busses behind a bridge, it points to
  a persistent copy of the bridge's pcitag_t.  This can be very useful
  for machine-dependent PCI bus enumeration code.
* Implement a machine-dependent pci_enumerate_bus() for sparc64 which
  uses OFW device nodes to enumerate the bus.  When a PCI bus that is
  behind a bridge is attached, pci_attach_hook() allocates a new PCI
  chipset tag for the new bus and sets it's "curnode" to the OFW node
  of the bridge.  This is used as a starting point when enumerating
  that bus.  Root busses get the OFW node of the host bridge (psycho).
* Garbage-collect "ofpci" and "ofppb" from the sparc64 port.
2002-05-16 01:01:28 +00:00
thorpej
dada8613e1 Let machine-dependent code specify how to enumerate the bus.
Currently, everyone uses pci_enumerate_bus_generic().
2002-05-15 19:23:51 +00:00
thorpej
11fa11094e Garbage-collect __PCI_DEV_FUNCORDER. 2002-05-15 18:37:54 +00:00
thorpej
a91677eb7b Implement pci_decompose_tag(). 2002-05-15 17:40:11 +00:00
eeh
d295742774 Have CLKF_BASEPRI() always return false for now to prevent hardclock
from being blocked by softclock.
2002-05-14 21:21:45 +00:00
eeh
e8ff5b27c8 Trapframes only have locals or ins if the kernel is compiled DEBUG. 2002-05-14 02:34:14 +00:00
thorpej
8606fff875 Don't define _LP64 here. 2002-05-03 17:56:29 +00:00
thorpej
9cbd451a98 Revert revision 1.20. 2002-05-03 17:55:55 +00:00
eeh
be9ab3e5db Provide _LP64 definition if we are generating LP64 binaries. 2002-05-03 00:06:55 +00:00
eeh
dcb399fc7c Don't need to flush the d$ for MMU bypass accesses. 2002-04-24 23:54:24 +00:00
eeh
bb8f4cc510 Calculate NBPG from PGSHFT. 2002-04-18 16:31:47 +00:00
eeh
690711542d We want pages modulo 16K not modulo 32K. 2002-04-16 23:11:20 +00:00
eeh
15d074fe26 Add a nice 64-bit mstohz() and clean out some cruft. 2002-04-08 21:05:30 +00:00
eeh
a1649fc334 Parenthesise macro arguments. 2002-03-21 00:43:42 +00:00
eeh
47ef6a5146 Overhaul bus space.
bus_space_handle_t now holds an address and two ASIs, one for normal accesses
and one for streaming accesses.  This allows to map individual handles
different ways, so some can use MMU bypass accesses and others use virtual
addresses.  bus_space_map() will now create handles that use bypass accesses
unles BUS_SPACE_MAP_LINEAR is passed in.  So only pass in BUS_SPACE_MAP_LINEAR
if you absolutely *need* to use bus_space_vaddr().  This removes at least one
extra level of indirection and should reduce TLB misses.

32-bit kernels have problems accessing 64-bit addresses, so they always use
virtual addresses.
2002-03-20 18:54:46 +00:00
eeh
bd22d9d0f1 Add PTE_WIRED bit to keep track of wired pages. 2002-03-20 18:41:53 +00:00
eeh
2db5a5e82f Get PCI working with the new bus_space*. 2002-03-15 07:06:23 +00:00
eeh
77de9a3aca Get rid of bus_space_map2(). 2002-03-14 20:46:11 +00:00
chs
b0263218b6 override cn_trap() with zs_abort() so we can drop to the monitor
if there's no DDB.  fixes PR 12547.
2002-03-11 07:11:26 +00:00
martin
7d9d648a64 For aesthetical reasons use bus_addr_t instead of paddr_t in the BUS_ADDR
makro. Requested by uwe.
2002-03-01 11:34:36 +00:00
martin
feaf0ddd87 Cast the "io" parameter of BUS_ADDR to paddr_t before it gets shifted.
This makes this makro work with smaller values passed for io. No functional
change.
2002-03-01 07:19:29 +00:00
simonb
4324f37586 Use "#define<tab>". 2002-02-28 03:17:23 +00:00
christos
6b030ee036 - define other DEV_ constants that the local port uses.
- delete cdev_decl(mm) since <sys/conf.h> does it.
2002-02-27 01:19:03 +00:00
eeh
1eb3484425 Fix PR# port-sparc64/13811: PCITAG_SETNODE() is defined using x' insted of t'.
from URA Hiroshi
2002-02-26 22:39:14 +00:00
simonb
d9ab16ba2f Purge CLSIZE, CLSIZELOG2 and MCLOFSET.
Be consistant in the way that MSIZE, MCLSHIFT, MCLBYTES and NMBCLUSTERS
  are defined.
Remove old VM constants from cesfic port.
Bump MSIZE to 256 on mipsco (the only one that wasn't already 256).
2002-02-26 15:13:19 +00:00
simonb
2d8577fb83 Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
 - Use the above for the __infinity and __nan constants on all
   architectures that use the standard ieee754 representation of
   those constants.
 - Add a single copy of various ieee754 math functions (frexp, isinf,
   isnan, ldexp and modf) that had numerous duplicates among the
   arch-specific directories.
 - Use the above functions on all architectures where the generic C
   versions where used.  Architectures that had local assembly
   routines are untouched (for those functions only).
2002-02-19 13:08:12 +00:00
eeh
c068b28bac Increase NMBCLUSTERS. 2002-02-09 04:58:53 +00:00
eeh
c42bdc6b14 Correctly take into account the satck bias in CLKF_INTR(). 2002-02-09 04:50:13 +00:00
eeh
6390142ec0 Make bus_space_barrier() an inline instead of a function vector. 2002-02-07 21:36:54 +00:00
eeh
59339eac04 Make PHYS_ASI() also recognize little-endian ASIs. 2002-01-14 20:44:30 +00:00
eeh
cc61f43486 Use a more efficient PIC_PROLOG(). 2002-01-14 16:37:36 +00:00
briggs
e44b2beeac Add OPIOCFINDDEVICE to match dev/ofw/openfirmio.[ch]. 2002-01-10 20:38:11 +00:00
mrg
3f49c27162 clean up 2002-01-03 06:43:23 +00:00
mrg
5d06ed3c94 move sparc specific ioctl handling (fb & openprom) into arch/sparc64. 2002-01-03 02:29:39 +00:00
thorpej
51535d4bf5 Add support for dumping ELF-cormat core files. 2001-12-09 23:05:56 +00:00
darrenr
8f8a0fb2c2 defopt "options SUN4*", put #define for each of SUN4, SUN4C, SUN4M and SUN4U
into opt_arch_sparc.h and include this wherever they are used.
2001-12-04 00:53:18 +00:00
soren
662f877587 MAXSLP is defined to be a machine-independent scheduling parameter,
so move it into sys/param.h.
2001-11-15 18:06:11 +00:00
thorpej
47514a31be Remove unneeded declarations of the db_machine_init() function. The
ARM ports are the only ones that actually have one, and it is about
to change.
2001-11-09 06:52:23 +00:00
thorpej
88ff68974a Changes from Martin Husemann and myself:
- Make the 32-bit SPARC profile support work with the GCC 2.95.3
  SPARC ELF compiler, which uses a different name for mcount.
- Make the 64-bit SPARC profile support header look more like the 32-bit
  SPARC header (no functional change -- 64-bit SPARC already used the
  correct mcount name).
2001-11-03 20:24:42 +00:00
eeh
3def251af0 Disable __PCI_DEV_FUNCORDER since it's now badly borken. 2001-10-18 23:47:16 +00:00
kleink
a84ae73f33 Unify sparc{,64} headers once again; restore 32-bit sparc64 ABI. 2001-10-15 19:49:16 +00:00
kleink
7dcab228e8 Fix a pasto in the __COMPILER_INT64__-based definition of {u,}intmax_t. 2001-10-14 20:11:11 +00:00
thorpej
e797da0ffb Make this match int_mwgwtypes.h (not that that header is really
correct, but they should at least be in-sync -- a PR has been
filed against int_mwgwtypes.h).
2001-10-06 01:21:40 +00:00
eeh
2375794907 Make OF_interpret() handle input and output arguments. 2001-10-05 21:52:43 +00:00
pooka
40ca91c19c prototype rominterpret() 2001-10-05 15:27:56 +00:00
eeh
98ecb5b215 getprop* -> PROM_getprop* 2001-09-26 20:53:05 +00:00
eeh
766a9b8c9c Change bus_space_mmap() signature to the official one. 2001-09-24 23:49:31 +00:00
chs
59c12af6f5 implement pmap_wired_count(). 2001-09-23 09:01:13 +00:00
eeh
53ebc1b431 Correct the `fast' int types. 2001-09-22 19:51:48 +00:00
eeh
ec10c45552 Define proper constants for 128-bit floating point. 2001-09-21 20:48:02 +00:00
eeh
f8e6b3bc07 Correct values for different rounding modes. 2001-09-21 20:32:32 +00:00
wiz
d5e1bab856 Update copyright, fix typo and remove too many '/'.
Ok'd by eeh.
2001-09-21 15:30:41 +00:00
eeh
6138deb0d4 Handle DMA boundaries a bit better. 2001-09-21 03:04:09 +00:00
thorpej
92df2aecae Use <dev/sun/fbio.h>, not our own copy. 2001-09-19 16:46:49 +00:00
chris
0e7661f023 Update pmap_update to now take the updated pmap as an argument.
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-10 21:19:08 +00:00
eeh
e29b0dab62 Change some debug printfs to make gcc happy. 2001-09-10 14:56:33 +00:00
mrg
be4df68bb5 don't explicitly size the intrhand[] array; fixes PR#13859 from <martti.kuparinen@iki.fi> 2001-09-03 13:07:21 +00:00
martin
c51e03edde Move struct segmap declaration inside #ifndef _LOCORE to make locore.s
compilable again.
2001-08-31 18:06:13 +00:00
mrg
10516949e9 add some sun4/sun4c/sun4m compat code so we can build 32 bit kvm. (these files are not even vaguely syncable.) 2001-08-30 09:32:23 +00:00
mrg
48fcc1a2c3 update a comment about R_UA_32 relocs. 2001-08-25 15:03:19 +00:00
eeh
20df032dec Make lint happier. 2001-08-18 03:47:18 +00:00
eeh
c633b30dd4 Add some alternate spellings for ASIs.
Make sure ASI_PRIMARY_NOFAULT is always restored.
Garbage collect some old code.
2001-08-06 23:55:34 +00:00
eeh
830be13fa2 Dump some enums that make lint unhappy and we never really use anyway. 2001-07-31 06:55:46 +00:00
eeh
57b56da169 Garbage collect. 2001-07-24 19:32:11 +00:00
eeh
1fead733d9 PCI overhaul. 2001-07-20 00:07:12 +00:00
eeh
0c4549ab71 Don't bother flushing cache lines for un-cached accesses. 2001-07-19 23:47:37 +00:00
thorpej
babefc5331 Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
2001-07-19 15:32:10 +00:00
eeh
a2cda80fea Also handle FPU registers. 2001-07-07 15:16:13 +00:00
eeh
5df2260776 Add the shorter version of block ASIs used by Sun. 2001-06-29 23:56:05 +00:00
eeh
8009aa2033 Allow multiple 4MB pages for both kernel text and kernel data.
Note: DEBUG checks will not allow accesses to the hole between
text and data segments, so you may need to update programs that
use libkvm before relocating the start of kernel data.
2001-06-21 00:24:22 +00:00
wiz
f3f6c5b675 accessible' only has one a'. 2001-06-19 12:52:20 +00:00
thorpej
8eb3b954f1 Don't need to prototype child_return() here, it's in <sys/proc.h>. 2001-06-14 22:56:55 +00:00
mrg
67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
kleink
9e162d4ea5 Delint my previous change. 2001-05-12 22:42:07 +00:00
kleink
58a818769b * Fix remaining 32-bit vs. native pointer problems in data structures;
reviewed by Eduardo.
* Define the size of uc_pad, so ucontext32_t will have the correct size.
2001-05-11 17:37:14 +00:00
kleink
1d8e184b6b svr4_32_mcontext.gwin is a pointer 32 bits wide. 2001-05-11 16:49:22 +00:00
kleink
e0b29e0491 Sync with native emul: rename sc_tstate to sc_psr. 2001-05-09 20:21:50 +00:00
kleink
aec2bbb42f Sync sc_psr comments with reality. 2001-05-09 19:50:49 +00:00
kleink
7dbfdb5508 In the 32-bit ABI case:
* rename sigcontext.sc_tstate to sc_psr, since this is how it is known to
  the 32-bit API, and also used for;
* don't try to squeeze the tstate into it, just emulate the ICC bits.

Per discussion with Eduardo.
2001-05-09 19:46:22 +00:00
thorpej
cf67ac7122 Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
2001-05-01 02:19:13 +00:00
thorpej
2b27ac7a99 Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
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-29 22:44:31 +00:00
kleink
fe3c9ceaf7 * Move definitions of exact-width integer types from <machine/types.h>
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-28 15:41:28 +00:00
kleink
99054d7a6c Add definitions for C99 fastest minimum-width integer types. 2001-04-26 16:25:19 +00:00
thorpej
69abdbf60c Undo a misguided previous change to the pmap_update() API. 2001-04-22 23:19:26 +00:00
thorpej
4738622712 Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
2001-04-22 00:33:59 +00:00
thorpej
7f10ba88b1 #define away pmap_update() in <machine/pmap.h> so that no function
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-21 23:51:14 +00:00
kleink
40c8d08347 Oops, intptrs are always long integers. 2001-04-17 13:46:02 +00:00
kleink
f06533a1ee Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink
739cb75837 Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
kleink
cdcf9f46c5 Add definitions of C99 integer constant macros.
Tidy Makefiles up a little.
2001-04-14 22:46:19 +00:00
kleink
a7c20e5788 Add definitions of C99 integer constant macros. 2001-04-14 22:38:33 +00:00
kleink
7affdab52e Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00
thorpej
bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
kleink
9133b51cd8 Replace the 'unsigned __COMPILER_INT64__' construct with a new name,
__COMPILER_UINT64__, to be supplied - if such a case is made, it shouldn't
be assumed that the unsigned type-specifier may be applied to it.
2001-04-12 22:01:18 +00:00
lukem
20ba07f2fe - add dev_noimpl(xxx,yyy) macro to replace "(dev_type_xxx((*))) yyy",
and use appropriately

- create more helper macros:
   . cdev__xyz_init(c,n), such as cdev__ocri_init() for
     /* open, close, read, ioctl */, etc.
   . cdev__xRy_init(c,n), where nullop is used instead of enodev to dummy out
     method `R' and the comments now read /* xxx (read) yyy */ instead
   . cdev__xyz_t_init(c,n,t) - as per cdev__xyz_init, but sets d_type = t
     as well

- use seltrue instead of dev_noimpl(poll,*), as (IIRC) cdevsw.d_poll should
  always DTRT WRT returning a valid result.  (a few devices previously
  incorrectly returned ENODEV)

- use dev_noimpl(stop,enodev) instead of dev_noimpl(stop,nullop) if tty
  == 0, because it doesn't matter if dev_type_stop isn't implemented in that
  case, and it allows the use of the cdev__xyz_init macros. certain ports
  (sparc,sparc64,x68k) used the nullop method for dev_type_stop in a few
  drivers, whereas everything else uses enodev

- ensure that the comments are accurate WRT the behaviour of a given entry
2001-03-26 12:33:22 +00:00
thorpej
2c4c690f14 Add the BUS_DMA_STREAMING flag. 2001-03-07 22:42:16 +00:00
mrg
3125147a72 oops; make this build with a 32 bit compiler again. 2001-03-04 09:28:35 +00:00
mrg
23fecf2b24 clean up slightly; prepare to make this identical to sparc/frame.h. 2001-03-02 07:40:18 +00:00
mrg
3c31d4fccb clean up slightly. 2001-03-02 07:36:57 +00:00
mrg
7a1cb1dbc2 use pci_bus_devorder() and pci_dev_funcorder() 2001-03-02 06:34:06 +00:00
eeh
121d97c255 Somehow this didn't get checked in with the rest of the SVR4 64-bit fixes. 2001-02-22 22:08:06 +00:00
eeh
b0e3d231c4 Define VM_MASUSER_ADDRESS32. 2001-02-16 16:00:29 +00:00
eeh
d8405328df Add support for COMPAT_SVR4_32. 2001-02-11 00:39:37 +00:00
eeh
6e928d620b Add some new gunk Sun uses. 2001-02-11 00:18:49 +00:00
eeh
1ac34a6a98 A register is 64-bits unless we're emulating 32-bit. 2001-02-11 00:17:03 +00:00
eeh
945c9cac5f Increase limits slightly. We're still not using all 32 address bits yet,
let alone 64.....
2001-02-11 00:09:45 +00:00
eeh
1671aa6706 Increase NKMEMPAGES to a more useful value. 2001-02-11 00:07:10 +00:00
eeh
3e47436b79 Add some extra fields to a dmamap to track what's being mapped. 2001-02-11 00:05:47 +00:00
thorpej
d74e432ed3 Make softclock a generic soft interrupt of the API is available,
adding the requisite void * argument to softclock().
2001-01-15 20:19:50 +00:00
thorpej
45de366b2e Rename __GENERIC_SOFT_INTERRUPTS to __HAVE_GENERIC_SOFT_INTERRUPTS,
and place the definition in <machine/types.h>.  This can now be used
as a flag to indicate whether or not <machine/intr.h> can be included
to get the generic soft interrupt API.
2001-01-14 23:50:28 +00:00