Commit Graph

68037 Commits

Author SHA1 Message Date
tsutsui
a0795dd18e Use int16_t and int32_t rather than short and int. 2003-11-13 14:06:22 +00:00
manu
b5139de154 Enforce good santity checks with Mach messages sizes:
1) make sure Mach servers will not work on data beyond the end of the
   request message buffer.
2) make sure that on copying out the reply message buffer, we will not
   leak kernel data located after the buffer.
3) make sure that the server will not overwrite memory beyond the end
   of the reply message buffer. That check is the responsability of the
   server, there is just a DIAGNOSTIC test to check everything is in
   good shape. All currently implemented servers in NetBSD have been
   modified to check for this condition

While we are here, build the mach services table (formerly in mach_namemap.c)
and the services prototypes automatically from mach_services.master, just
as this is done for system calls.

The next step would be to fold the message formats in the mach_services.master
file, but this tends to be difficult, as some messages are quite long and
complex.
2003-11-13 13:40:39 +00:00
sekiya
c93054ffbf typo in include directive. 2003-11-13 12:53:05 +00:00
sekiya
959569cd0c bootloader targets have changed, which confused the install rules. 2003-11-13 12:42:18 +00:00
yamt
5ee0718f8f plug memory leak on error. 2003-11-13 11:59:46 +00:00
dsl
55302b835d Add hp300 LIF definitions 2003-11-13 08:17:12 +00:00
sekiya
40c0a4c30b loadfile truth check should be >=0, not >= 1. 2003-11-13 08:06:25 +00:00
sekiya
1ba2b99e3e More bootloader changes:
* if loading from cdrom, assume we're performing an install and
	  fix up bootpath/kernel to load the proper install kernel.
	* maximum filename length in volume header is eight characters.
	  Change boot.elf to ip2xboot, boot.ip32 to ip3xboot, and boot
	  to aoutboot (which matches kernel naming scheme as well).
2003-11-13 08:01:17 +00:00
chs
e07f0b9362 eliminate uvm_useracc() in favor of checking the return value of
copyin() or copyout().

uvm_useracc() tells us whether the mapping permissions allow access to
the desired part of an address space, and many callers assume that
this is the same as knowing whether an attempt to access that part of
the address space will succeed.  however, access to user space can
fail for reasons other than insufficient permission, most notably that
paging in any non-resident data can fail due to i/o errors.  most of
the callers of uvm_useracc() make the above incorrect assumption.  the
rest are all misguided optimizations, which optimize for the case
where an operation will fail.  we'd rather optimize for operations
succeeding, in which case we should just attempt the access and handle
failures due to insufficient permissions the same way we handle i/o
errors.  since there appear to be no good uses of uvm_useracc(), we'll
just remove it.
2003-11-13 03:09:28 +00:00
sekiya
2818624aab Include proper GENERIC32 templates (mechanical edit). 2003-11-13 02:59:37 +00:00
chs
709a3b4e52 two changes in improve scalability:
(1) split the single list of pages allocated to a pool into three lists:
     completely full, partially full, and completely empty.
     there is no longer any need to traverse any list looking for a
     certain type of page.

 (2) replace the 8-element hash table for out-of-page page headers
     with a splay tree.

these two changes (together with the recent enhancements to the wait code)
give us linear scaling for a fork+exit microbenchmark.
2003-11-13 02:44:01 +00:00
sekiya
28bee58d65 Rationalize config file scheme. Discussed at length with rafal@, pooka@, soren@. 2003-11-13 02:31:46 +00:00
jonathan
fa24e6f3f8 Add m_tag_delete_nonpesrsistent(), for deleting all packet tags on
mbuf chains which are recycled (e.g., ICMP reflection, loopback
interface).  A consensus was reached that such recycled packets should
behave (more-or-less) the same way if a new chain had been allocated
and the contents copied to that chain.

Some packet tags may in future be marked as "persistent" (e.g., for
mandatory access controls) and should persist across such deletion.
NetBSD as yet hos no persistent tags, so m_tag_delete_nonpersistent()
just deletes all tags. This should not be relied upon.
2003-11-13 01:48:12 +00:00
christos
a0e314dfe4 add noop wrapper functions for i386 2003-11-13 01:44:36 +00:00
cl
e2c29624f5 Prevent sa_newcachelwp() from creating new LWPs when the process is exiting.
This should fix PR 23418 which was also reported by Thomas Klausner and
Ian Fry (who also provided core dumps for analysis - thanks!).

Also g/c sa_yieldcall since it's now safe to put LWPs back into the cache.
Also return stacks in failure case.
2003-11-12 21:27:46 +00:00
dsl
0342c9586a - Count number of zombies and stopped children and requeue them at the top
of the sibling list so that find_stopped_child can be optimised to avoid
  traversing the entire sibling list - helps when a process has a lot of
  children.
- Modify locking in pfind() and pgfind() to that the caller can rely on the
  result being valid, allow caller to request that zombies be findable.
- Rename pfind() to p_find() to ensure we break binary compatibility.
- Remove svr4_pfind since p_find willnow do the job.
- Modify some of the SMP locking of the proc lists - signals are still stuffed.

Welcome to 1.6ZF
2003-11-12 21:07:37 +00:00
dbj
d3bad238a2 XXX an impossible malloc failure check in set_statfs_info 2003-11-12 20:38:24 +00:00
drochner
038b8b6573 Uhm - the last change broke everything but very simple setups.
(it only allowed to boot an nfs /netbsd automatically)
To make it work for people who can't tell the DHCP server to pass
the right kernel file to pxeboot, without losing flexibility for
people who can, do the following:
Use the filename given by the DHCP server if it contains a ":". A ":"
was already used to seperate filesystem and filename, so we don't
lose anything. Otoh, a path to pxeboot usually doesn't contain a ":",
so it should still work if we got the old pxeboot filename again.
2003-11-12 18:44:08 +00:00
jandberg
79eacc067d amidisplaycc.c:
Add screen types suitable for PAL displays, and fix typos
	in older screen type names; reported by Gunther Nikl.
amidisplay.4:
	Document the new screen types and add some misc information.
2003-11-12 17:42:40 +00:00
jandberg
3f581624a0 Fix bug/typo and rewrite some funnily structured code.
Pointed out by compiler warnings.
2003-11-12 17:26:36 +00:00
itojun
3107b5dcc0 implement net.inet6.ifq 2003-11-12 15:25:19 +00:00
itojun
d46ad3421a KNF 2003-11-12 15:00:05 +00:00
yamt
9a34eb3d5a - fix deadlocks due to using lock_status() from interrupt context.
- process pending queries in EcUnlock() to close a race window.
  now there's no need to do polling for EcQuery().
- reorder inline functions and other prototypes so that
  the formers can get needed prototypes.
- add missing prototypes.
2003-11-12 13:59:23 +00:00
cl
e6bcfbd5e0 catch up with in_ifaddr -> in_ifaddrhead rename 2003-11-12 13:40:16 +00:00
yamt
5980449814 use snprintf("%X") instead of "%x" + strupr(). 2003-11-12 13:18:24 +00:00
dsl
ec098b8a13 Double space for memory disk to 5MB, this costs (almost) nothing on the
install media and the kernels (and sysinst) will still run on a 16MB system.
(They haven't run on an 8MB system for a while - might affect 12MB though.)
The additional space in the root filesystem lets sysinst core dump properly!
2003-11-12 11:47:34 +00:00
augustss
2fecfb383c Don't free non-malloced memory. From mlang@delysid.org 2003-11-12 11:29:12 +00:00
ragge
4a9b211e76 Remove the FAST_MBSEARCH ifdef, send packet prediction is now default. 2003-11-12 10:48:04 +00:00
simonb
bb845a9d67 Use just "type" and not "sc->sc_type" in cominit().
Pointed out by Shoichi Miyake in private mail.
2003-11-12 06:27:59 +00:00
manu
40a3558468 mach_msg_ool_ports_descriptor_t describe a memory region containing
an array of mach_port_name_t, not mach_msg_port_descriptor_t.
2003-11-12 00:00:28 +00:00
fvdl
9d4e217e09 From FreeBSD:
* erratum: disable the nocrc RX bit, as it may cause problems on the 570{1-4}.
  adjust the length of the incoming packet accordingly to trim it.
* the 5704 has a smaller MBUF_POOL, so set a smaller value

Local change:
* Pass the autoneg force flag to mii_attach. Some PHYs need to be kicked
  out of their falsely autoneged 10baseT state with this.
2003-11-11 22:28:58 +00:00
drochner
ca3116d2f1 in_ifaddr -> in_ifaddrhead
use TAILQ_FOREACH macro
2003-11-11 21:41:11 +00:00
enami
67b61c37a8 Prevent mkdep from parsing compiler flags like -pipe. 2003-11-11 21:26:53 +00:00
drochner
14332cf998 fix interface address list traversal in if_detach():
The code was assuming that interface addresses are removed one-by-one.
With IPv6 and multicasts, removal of one address can remove other
addresses as side effect, which caused accesses of free()d memory.
2003-11-11 20:33:46 +00:00
jonathan
79bf8521a5 Change global head-of-local-IP-address list from in_ifaddr to
in_ifaddrhead. Recent changes in struct names caused a namespace
collision in fast-ipsec, which are most cleanly fixed by using
"in_ifaddrhead" as the listhead name.
2003-11-11 20:25:26 +00:00
manu
b6b7d129a1 Added mach_thread_set_state 2003-11-11 18:12:40 +00:00
manu
a2bed85761 Implement mach_thread_get_state.
While we are here, try to tag machine dependent functions in header files.
also transformed darwin_ppc_*_state into mach_ppc_*_state, as this is
what they really are (COMPAT_DARWIN is on the top of COMPAT_MACH, not the
other way around)
2003-11-11 17:31:59 +00:00
manu
95cc30edca Correctly implement task_suspend and task_resume: the struct proc is
taked from mp->mp_data.
2003-11-11 17:26:32 +00:00
pk
bb69a241e8 Remove ancient DDB-dependent `hide/integrate'.
Simplify lewrcsr/lerdcsr; read-back after write doesn't hurt on sun4 so
skip the cpu type test in generic kernels.
2003-11-11 15:01:05 +00:00
manu
6961fe8c08 Fix an unitialized variable bug that caused a crash in mach_task_suspend().
While we are there, resolved another mystery: the unallocated port described
in the comment removed by this commit was in fact allocated by mach_task_pid().
2003-11-11 15:00:09 +00:00
augustss
b87f6623d3 Regen. 2003-11-11 10:55:32 +00:00
augustss
7e013f13c6 Add a Cypress USB2 hub. 2003-11-11 10:54:56 +00:00
scw
f99d0398fb The previous commit had a #endif in the wrong place. 2003-11-11 08:27:16 +00:00
sekiya
b3023f06a5 Rework the boot loader:
* remove dead code,
	* streamline kernel selection logic,
	* various small bugfixes.
2003-11-11 06:47:00 +00:00
sekiya
fdf5374e91 Remove unused variables. 2003-11-11 06:42:15 +00:00
sekiya
f87a5a5324 Add getopt.c 2003-11-11 06:28:15 +00:00
christos
6dc8df292b KASSERT was not the right thing here. Instead only set the type if f_type
has been inititialized. Reported by pooka
2003-11-11 00:44:16 +00:00
jonathan
b86d07f435 Allocate sysctl oid for ipv4 sysctl node "ifq", define symbolic name, and
bump IPCTL_MAXID. (Should have been committed with other ifq sysctl changes).
2003-11-10 20:50:29 +00:00
jonathan
88ba77e705 Make per-protocol network input queue stats visible to userland via
sysctl. Add a protocol-independent sysctl handler to show the per-protocol
"struct ifq' statistics. Add IP(v4) specific call to the handler.
Other protocols can show their per-protocol input statistics by
allocating a sysclt node and calling sysctl_ifq() with their own struct ifq *.

As posted to tech-kern plus improvements/cleanup suggested by Andrew Brown.
2003-11-10 20:03:29 +00:00
rearnsha
31a79ddeb0 In vm_phsyseg_find, use u_int for start, len and try when doing a
binary search.  Avoids the need for signed division by 2.  Approved
by thorpej.
2003-11-10 16:13:05 +00:00