Commit Graph

746 Commits

Author SHA1 Message Date
minoura
fc97cb8a94 Correct memory leak.
Use single block transfer when appropriate.
2001-04-30 05:47:31 +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
bouyer
937a7a3ed9 Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
thorpej
1c3a62e066 Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
thorpej
55044638aa Remove pmap_kenter_pgs(). It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-22 23:42:11 +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
thorpej
15f731ee94 pmap_update() should not be equated with "flush entire TLB", it is
used to process deferred pmap operations.  Since these pmaps don't
defer anything, pmap_update() is a noop.
2001-04-21 17:25:01 +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
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
minoura
23d323f4f9 Sync with amiga 1.15.
Make this compile again (when building the LKMs).
2001-03-22 12:47:11 +00:00
minoura
b711716241 A bit of ELF support. From scw. 2001-03-22 12:46:19 +00:00
lukem
723cd818d8 move duplicate definitions for:
pc, lpt, joy, ocis, apm, satlink, i4bctl, i4brbch, i4btel, i4btrc, i4b
from the port-specific arch/*/*/conf.c files into sys/conf.h
2001-03-21 22:25:52 +00:00
soren
912c115675 s/vm_page_alloc_memory/uvm_pglistalloc/ in panic message. 2001-03-21 18:40:28 +00:00
chs
ac3bc537bd eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS			0
KERN_INVALID_ADDRESS		EFAULT
KERN_PROTECTION_FAILURE		EACCES
KERN_NO_SPACE			ENOMEM
KERN_INVALID_ARGUMENT		EINVAL
KERN_FAILURE			various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE		ENOMEM
KERN_NOT_RECEIVER		<unused>
KERN_NO_ACCESS			<unused>
KERN_PAGES_LOCKED		<unused>
2001-03-15 06:10:32 +00:00
minoura
8cba02bdf9 Turn off options JUPITER temporarily.
This may cause problems on some newer accelerators.
We might have to write a more accurate detect code.
2001-03-10 03:23:09 +00:00
thorpej
2c4c690f14 Add the BUS_DMA_STREAMING flag. 2001-03-07 22:42:16 +00:00
minoura
8770ff2900 Sync with news68k:
Remove unneeded COMPAT_HPUX stuff.
2001-03-01 17:11:13 +00:00
jdolecek
f6d22f21da usr1handler(): fix the logerror() call, use string 'shut' 2001-02-21 22:55:51 +00:00
minoura
b675f941fe Use m68k_page_offset and m68k_trunc_page macros,
instead of using PGOFSET directly.
2001-02-21 12:39:16 +00:00
minoura
943f21e2c5 Remove some redundant decls.
Fix some nested decls.
2001-02-21 05:53:35 +00:00
minoura
daa78d567e Make this compile again. 2001-02-21 05:44:32 +00:00
minoura
013971b69b include sunos_exec.h to declare emul_sunos.
From syssrc/sys/arch/news68k/news68k/trap.c:1.12.
2001-02-20 15:55:08 +00:00
minoura
0e8197960f Remove phys_map declaration, which is in <uvm/uvm_extern.h>.
From syssrc/sys/arch/news68k/news68k/vm_machdep.c:1.6.
2001-02-20 15:54:29 +00:00
minoura
a7d2590bf0 Fix some nested extern declarations.
From syssrc/sys/arch/news68k/news68k/machdep.c:1.16.
2001-02-20 15:53:27 +00:00
thorpej
043e519d55 Adjust the way that media is initialized on DP8390-compatible
chips.  The dp8390_softc now has media_init and media_fini
function pointers that do the work.
2001-02-12 18:49:03 +00:00
itohy
a9cd6b907b Performance hack.
Mainly for the Neptune-X Ethernet adaptor,
and improves ftp(1) speed by ~10%.

	get: 219 KB/s -> 246 KB/s
	put: 226 KB/s -> 247 KB/s
	(X68030, MC68030 25MHz)
2001-01-29 01:09:29 +00:00
minoura
42c425801b Use IOCS_S_READEXT only when reading the partition boot from
higher part of the disk than 0x200000.
2001-01-26 17:30:15 +00:00
tv
e58532a4bf No-op commit to force update to a non-"-kk" revision. 2001-01-18 17:47:58 +00:00
fvdl
c7f1462f3e Add machdep file for procfs. Currently only used for linux-style
/proc/cpuinfo (only active when procfs is mounted with -o linux).
For ports other than the i386 this currently produces an empty
string.
2001-01-17 00:07:18 +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
itohy
f3590c636b Make it compile with "options DIAGNOSTIC" (patch from minoura). 2001-01-15 07:04:41 +00:00
martin
a261276f16 The i4b raw b-channel devices actually do have an ioctl routine,
so better add this to the cdevsw entry.
Noted by Bruno Achauer.
2001-01-14 11:17:28 +00:00
thorpej
a3ec356d52 splimp() -> splvm() 2001-01-14 03:22:04 +00:00
thorpej
d85a75f583 Make sure everybody has an splvm() and equate it with splimp() (splimp()
is the historical name for this interrupt level, and the historical name
is going to go away in the near future).
2001-01-14 02:00:37 +00:00
minoura
b2bcd7ceb9 Use MI clock_subr.c. 2001-01-11 16:09:42 +00:00
minoura
9caeb5a28b isinram() argument is not a virtual address but a physical address. 2001-01-11 14:24:04 +00:00
minoura
0ef9589af4 X68k's physical RAM is not at lowram-0xffffffff, but has multiple segments. 2001-01-11 14:00:11 +00:00
minoura
8829b4cc1a Sync. w/ luna68k; eliminate irrelavant code imposed by
the restriction of hp300 hardware and HP-UX compatibility.
2001-01-11 13:18:36 +00:00
minoura
950e1bd9b8 Eliminate EIOMAPSIZE. 2001-01-11 10:40:55 +00:00
minoura
77f3a6ab78 G/C. 2001-01-11 10:36:46 +00:00
martin
5d0c67c603 When adding isdn devices I forgot to check chrtoblktbl.
Fix this know for the affected archs.
2001-01-09 20:51:04 +00:00
minoura
8a3a316883 Do not range_test() unless DIAGNOSTIC.
Suggested by Tetsuya Isaki <isaki@v6.ipc.hiroshima-u.ac.jp>.
2001-01-09 11:38:32 +00:00
lukem
443a19e035 convert to using .WAIT 2001-01-09 03:13:39 +00:00