29731 Commits

Author SHA1 Message Date
Joerg Wunsch
dda374a24d run IPCP only if we have IPv4 in kernel
Obtained from:	NetBSD (rev 1.19)
MFC after:	1 month
2001-12-30 18:07:26 +00:00
Poul-Henning Kamp
e3f4d3b5e8 Reduce kernel stack usage of ccdinit() by MAXPATHLEN by using MALLOC(9).
Submitted by:	Maxim Konovalov <maxim@macomnet.ru>
MFC after:	1 week
2001-12-30 17:34:19 +00:00
Joerg Wunsch
dd966920a7 Fix a long-standing blatant bug where the operator precedence between
& and && has been botched.  This was likely the cause for some havoc
with various negotiation cases of sppp in the past.

Obtained from:	NetBSD (rev 1.13)
MFC after:	1 week
2001-12-30 17:12:28 +00:00
Joerg Wunsch
d0543e885a Fix compilation without INET (though not really tested yet without
INET).

Obtained from:	NetBSD (rev 1.12)
MFC after:	1 month
2001-12-30 17:00:32 +00:00
Joerg Wunsch
61e3f21a46 Add the `packed' attribute to structures which describe wire protocol
data formats.

Obtained from:	NetBSD (rev 1.6)
MFC after:	1 month
2001-12-30 16:52:40 +00:00
Joerg Wunsch
39b6f10cfb Extend the hack where 0.0.0.1 meant `any address for remote is
acceptable' to addresses 0.0.0.*.  This allows for multiple such
interfaces.

MFC after:	1 month
2001-12-30 16:40:00 +00:00
Thomas Moestl
db8a25bd07 Do not include pcib.h, which only existed in my development tree, and do
not use struct pcib_softc when struct apb_softc would be correct.

Spotted by:	jake
Pointy hat to:	tmm
2001-12-30 16:14:33 +00:00
Joerg Wunsch
64b158ad3c Fix the handling of VJ uncompression. Unfortunately, tcp_uncompress()
makes the implied assumption there were another 128 bytes of space in
front of the packet handed off to it... which is not the case for
sppp.  This could easily end up in corrupting random memory.

This fix is about the same as revs 1.6, 1.8, and 1.9 from our
i4b_ispppsubr.c.

Also fixed IPCP option negotiation to zero out the options when
starting IPCP.  Otherwise, if negotiation parameters change between
various IPCP startups, it could happen that old options would still be
requested (this happened if VJ was turned off, and ended up in half
off the link still negotiating for VJ compression).

IMHO, the base system's sppp is now feature-wise up to date with the
one in the i4b part of the tree, so the latter can be disabled.

MFC after:	1 month
2001-12-30 16:13:35 +00:00
Thomas Moestl
9c5781cdd0 Add bus_common.h, which contains some definiton that apply to both PCI
and SBus.

Obtained from:	NetBSD
2001-12-30 16:13:05 +00:00
Sheldon Hearn
a0de19b9a0 Add PNP Id for Create Labs Phoneblaster.
PR:		kern/32891
Submitted by:	Louis Mamakos <louie@TransSys.COM>
2001-12-30 13:12:50 +00:00
Marcel Moolenaar
f3366cc25b Better implement SMP support:
o  Do not use a special struct to keep track of CPUs we found;
   instead, use struct pcpu. This handles all the magic WRT
   thread creation (yay!).
o  Respect MAXCPU.
o  Use the vhpt_base and vhpt_size values to initialize the AP.
o  Style fixes.

Note that this commit temporarily breaks SMP configurations.
Previously APs didn't do anything, but they now enter the
scheduler. They hold sched_lock for more than 5 secs though
and cause a panic. That's what I call progress :-)
2001-12-30 09:59:02 +00:00
Marcel Moolenaar
0f0658df4c o Reimplement map_pal_code to work with a global variable
ia64_pal_base instead of scanning the EFI tables. This way
   AP startup code can more easily use the function.
o  Initialize ia64_pal_base in ia64_init(). When the PAL code
   doesn't need explicit mapping or no PAL code has been found,
   ia64_pal_base will be 0.
o  Remove some unused global variables.
o  Also in ia64_init(), allocate only 1 page for struct pcpu
   and remove some Alpha leftovers.
o  Initialize pc_pcb in cpu_pcpu_init().
2001-12-30 09:49:39 +00:00
Marcel Moolenaar
7251648208 Make vhpt_base and vhpt_size globals so that they can be used by
the AP startup code.
2001-12-30 09:42:43 +00:00
Marcel Moolenaar
d9eba830b7 Cleanup the IPIs. 2001-12-30 09:41:29 +00:00
Marcel Moolenaar
9d31d833c2 Remove unused MD fields (pc_pending_ipis, pc_next_asn and
pc_current_asngen) and add SMP specific fields (pc_pcb,
pc_lid and pc_awake).
2001-12-30 09:39:41 +00:00
Marcel Moolenaar
badb73a5ba o Remove temporary implementation of cpu_throw in vm_machdep.c
and instead make it an alternate entry-point of cpu_switch()
   in swtch.s
o  Add SMP support to cpu_switch().
2001-12-30 09:34:51 +00:00
Gary Jennejohn
1c6126426b Protect mtx_init() invocations with mtx_intialized() checks to avoid a
reported panic.

Submitted by:	Alexander Leidinger <Alexander@Leidinger.net> (partly)
MFC after:	4 weeks
2001-12-30 09:27:28 +00:00
Marcel Moolenaar
45cc363828 Draft implementation of IPI handling. 2001-12-30 09:24:29 +00:00
Marcel Moolenaar
6dc3bd7b4c Add PC_IDLETHREAD. We need it in cpu_switch. 2001-12-30 09:23:10 +00:00
Marcel Moolenaar
7e3adc7d11 Add missing predicate in interruption_Data_TLB. Without this
predicate we never used the VHPT entry we found.

While here, normalize the compares.
2001-12-30 09:22:08 +00:00
Doug Ambrisko
236f9adc78 Increase the buffer size to hold a bootp/DHCP reply from 256 bytes to
1222 bytes (derived as the maximum that isc-dhcpd uses).  This solves
the problem if a bootp/DHCP reply is over 256 bytes in which the
end of the bootp/DHCP reply will not be found and then the reply will
be ignored.  This happens when swap and root paths are longish or many
parameters are set.

Reviewed by: imp
Approved by: imp
2001-12-30 02:35:09 +00:00
Josef Karthauser
58878b8a68 Sync with NetBSD (1.16 - 1.17)
"Bring the coding style into the 80s, i.e., get rid of __P and use
 ANSI prototypes and declarations."
2001-12-29 20:37:14 +00:00
Josef Karthauser
59aba01b32 Update with missing filenames, merged from NetBSD. 2001-12-29 20:14:14 +00:00
Gary Jennejohn
01ecab4055 Fix an error which could cause a panic if both an ifpi and ifpi2 controller
were installed.

For the ifpi2, change the string in the driver_t from "ifpi2" to
"ifpi2-" so that one sees "ifpi2-0" instead of "ifpi20" at boot time.
2001-12-29 17:19:25 +00:00
Jake Burkholder
92ebc34a9c Make these compile. 2001-12-29 09:55:37 +00:00
Jake Burkholder
40454f863d Remove local change that crept in. 2001-12-29 09:55:10 +00:00
Yaroslav Tykhiy
d0ebc0d2f1 Don't reveal a router in the IPSTEALTH mode through IP options.
The following steps are involved:
a) the IP options related to routing (LSRR and SSRR) are processed
   as though the router were a host,
b) the other IP options are processed as usual only if the packet
   is destined for the router; otherwise they are ignored.

PR:		kern/23123
Discussed in:	freebsd-hackers
2001-12-29 09:24:18 +00:00
Jake Burkholder
18f2fb66c6 Add a header for user trap types required by the sparc abi.
For simplicity the corresponding kernel types use the same
numerical values.
2001-12-29 08:59:33 +00:00
Jake Burkholder
9030565569 Adapt for used by upcoming fp emulation code.
Comment.

Submitted by:	tmm
2001-12-29 08:55:56 +00:00
Jake Burkholder
a536612abe Print the correct v9 opcodes.
Submitted by:	tmm
2001-12-29 08:52:50 +00:00
Jake Burkholder
aa4155a394 Don't concatenate __func__. 2001-12-29 08:49:28 +00:00
Jake Burkholder
ebffbf8c3e sparc64 needs the same alingment fixes that alpha and ia64 do.
Submitted by:	tmm
2001-12-29 08:45:17 +00:00
Jake Burkholder
b0e00dbacb sparc64 needs the same alignment fixes that ia64 and alpha need.
Submitted by:	tmm
2001-12-29 08:44:08 +00:00
Jake Burkholder
c9f4877d7c Change traces in hardclock and statclock to use the KTR_CLK trace
facility, rather than KTR_INTR.
2001-12-29 08:39:57 +00:00
Jake Burkholder
decce32cc3 Update to new constants. 2001-12-29 08:37:58 +00:00
Jake Burkholder
1a0840deca Make cont in ddb work. 2001-12-29 08:37:35 +00:00
Jake Burkholder
3be7dfb8b4 Prototype dcache_inval_phys.
Submitted by:	tmm
2001-12-29 08:35:49 +00:00
Jake Burkholder
1e903121eb Add comments as to why VM_MAXUSER_ADDRESS is magic (abitrary).
Define the KVA_RANGE in terms of ttes, not sttes.
Remove UPT_MIN_ADDRESS.  We no longer use a hard coded address for
the user tsb.
2001-12-29 08:25:43 +00:00
Jake Burkholder
5ff798a5e0 Make tte bit constants explicitly unsigned and long.
Add a wierd soft bit.
Remove struct stte.
2001-12-29 08:24:02 +00:00
Jake Burkholder
a4e1e6e5de Add definitions for dcache color bits, which may move to cache.h.
Add fields to md_page for tracking virtual page color, and pv entry
lists.
Fix pmap_track_modified to work for non-kernel pmaps.  This is due to
kernel virtual addresses potentially overlapping with userland addresses.
2001-12-29 08:19:24 +00:00
Jake Burkholder
e3d6851148 Implement pv entries as separate structures from the ttes, like other
architectures do.
2001-12-29 08:17:16 +00:00
Jake Burkholder
624eb79821 Remove support for multi level tsbs, making this code much simpler and
much less magic, fragile, broken.  Use ttes rather than sttes.
We still use the replacement scheme used by the original code, which
is pretty cool.

Many crucial bug fixes from:	tmm
2001-12-29 08:15:43 +00:00
Jake Burkholder
b45b19a44e Implement pv entries as separate structures from the ttes, as other
architectures do.

Many crucial bug fixes from:	tmm
2001-12-29 08:12:22 +00:00
Jake Burkholder
6e5f166d2c Great pmap rewrite to use a much simpler one level tsb of ttes, instead
of sttes.  Also removes many differences between this and the other pmaps.
Reserve the kva space used by the openfirmware translations.
Use physical addresses directly in pmap_zero_page and pmap_copy_page, now
that we have the cache line shooting support.
Add code to track the virtual cachability of mapped pages.  The dmmu
requires that multiple mappings of the same phsyical address have the
save virtual address bits up to a colour boundary.  Violating this
requires all mappings to be mapped uncacheable.  We do not yet handle
the case of a badly aliased mapping becoming cachable again.

Many crucial bug fixes from:	tmm
2001-12-29 08:11:02 +00:00
Jake Burkholder
bab1ab0654 Use fprs to track floating register usage. Clear it once we've saved
the registers so we don't uselessly save them over and over again for
each context switch until another floating point instruction is executed.
Use a non-specific tlb slot for the tsb, which needs to have a locked
entry.
Remove overly verbose traces.
2001-12-29 08:03:15 +00:00
Jake Burkholder
26a7438b6f Add .register directives for gcc3.
Add macros to atomically increment an integer variable in the data
section and to atomically set a bit in a tte.  Note that the latter
does not return the new value.
Rewrite RESUME_SPILLFILL_MAGIC to use more sensical calculations, and
to preserve all alternate globals religiously.  Must now be called on
alternate globals.
Defer switching to the kernel stack until inside the syscall, trap,
interrupt wrappers.  Splitting the windows is all that's really urgent.
Adapt to new trap types.
Add %xcc where appropriate in order to not use v8 opcodes inadvertantly
(which work fine).
Modify the low level tlb fault handlers to operate on a tsb made up of
ttes, not sttes.  This effectively makes the tsb twice as large.
After atomically updating tte bits in memory, also set the bit in the
register that holds the data which will be loaded into the tlb.  The
macro returns the old value.
Use the preloaded mmu global which holds the address of the current
user tsb.
Add back a low level protection fault handler instead of just punting
into the vm system.  This effectively saves a soft fault per COW fault.
Add a trace to intr_enqueue.
Pass arguments to the trap, interrupt, syscall wrappers in the out
registers instead of some on the stack, some in registers.
Use the preloaded alternate global pcb register.
2001-12-29 07:59:04 +00:00
Jake Burkholder
1b217abc65 Add needed include of fsr.h.
Use fprs to track floating point usage.
Remove misguided comment.
Clear fprs in a child process's new trapframe.
2001-12-29 07:47:33 +00:00
Jake Burkholder
fac346769a 1. Adapt to new trap types.
2. Make trap_pfault more like it is on other architectures.
3. Fix a bug in syscall() which caused system calls with more than
   six arguments that are called through the wild card syscall to
   have their arguments scrambled.  This affected mmap due to the
   (bogus) wrapper in libc.

Submitted by:	tmm (3)
2001-12-29 07:45:49 +00:00
Jake Burkholder
c5297ac5da Add .register directives for gcc3.
Add some traces that can be useful but are also very loud.
Use defines for offsets into jmpbuf instead of magic numbers.
Fix a style bug.
Fixup comments.
2001-12-29 07:34:42 +00:00
Jake Burkholder
37e21e18ac Assert at compile time that structures which need to be a power of
2 really are.
Move a trace to before flushw in case it goes off the deep end.
2001-12-29 07:32:56 +00:00