Stefan Eßer [Mon, 26 May 1997 14:46:23 +0000 (14:46 +0000)]
Add kern/kern_intr.c as a standard kernel component. This file contains
the new interrupt registration code, which is meant to be architecture
indeppendent.
Stefan Eßer [Mon, 26 May 1997 14:42:24 +0000 (14:42 +0000)]
Add support for shared interrupts to the kernel. This code is meant
be (eventually) architecture independent. It provides an emulation
of the ISA interrupt registration function register_intr(), but that
function does no longer manipulated the interrupt controller and
interrupt descriptor table, but calls the architecture dependent
function setup_icu() for that purpose.
After the ISA/EISA bus code has been modified to directly call the new
interrupt registartion functions (intr_create() and intr_connect()),
the emulation of register_intr() should be dropped.
The C level interrupt handler function should take a (void*) argument,
and the function pointer type (inthand2_t) should defined in some other
place than isa_device.h.
This commit is a pre-requisite for the removal of the PCI specific shared
interrupt code.
Stefan Eßer [Mon, 26 May 1997 14:37:43 +0000 (14:37 +0000)]
Add support for shared interrupts to the kernel. This code is meant
be (eventually) architecture independent. It provides an emulation
of the ISA interrupt registration function register_intr(), but that
function does no longer manipulated the interrupt controller and
interrupt descriptor table, but calls the architecture dependent
function setup_icu() for that purpose.
After theISA/EISA bus code has been modified to directly call the new
interrupt registartion functions (intr_create() and intr_connect()),
the emulation of register_intr() should be dropped.
The C level interrupt handler function should take a (void*) argument,
and the function pointer type (inthand2_t) should defined in some other
place than isa_device.h.
This commit is a pre-requisite for the removal of the PCI specific shared
interrupt code.
Steve Passe [Mon, 26 May 1997 09:23:30 +0000 (09:23 +0000)]
Added a test called 'LATE_START'.
This is now the default, it delays most of the MP startup to the function
machdep.c:cpu_startup(). It should be possible to move the 2 functions
found there (mp_start() & mp_announce()) even further down the path once
we know exactly where that should be...
Help from: Peter Wemm <peter@spinner.dialix.com.au>
Peter Wemm [Mon, 26 May 1997 05:15:29 +0000 (05:15 +0000)]
One of the new cvs's features is to be able to run a checker on the
log messages after they've been entered. This is more flexible than
using the editinfo script since it works for all log message types
and doesn't have to deal with trying to run the editor for the user.
The problem is that the verifymsg script can't modify the file like
editinfo can, which makes it useless for cleaning up the message (as is
needed for remote commits etc). This change causes the verifymsg handler
to read back the message after the verify script has run and returned an
"OK" exit code.
Brian Somers [Mon, 26 May 1997 00:44:10 +0000 (00:44 +0000)]
De-couple ppp from libalias. If libalias isn't there, the
alias commands simply won't work. Only root may specify the
location of the alias lib (otherwise, it's hard-coded).
Make logprintf silently fail if LogOpen hasn't been called.
Bill Paul [Sun, 25 May 1997 19:49:33 +0000 (19:49 +0000)]
This commit adds support to ypbind(8) for binding to non-local servers.
The standard SunOS ypbind(8) (and, until now, the FreeBSD ypbind)
only selects servers based on whether or not they respond to clnt_broadcast().
Ypbind(8) broadcasts to the YPPROC_DOMAIN_NONACK procedure and waits
for answers; whichever server answers first is the one ypbind uses
for the local client binding.
This mechanism fails when binding across subnets is desired. In order
for a client on one subnet to bind to a server on another subnet, the
gateway(s) between the client and server must be configured to forward
broadcasts. If this is not possible, then a slave server must be
installed on the remote subnet. If this is also not possible, you
have to force the client to bind to the remote server with ypset(8).
Unfortunately, this last option is less than ideal. If the remote
server becomes unavailable, ypbind(8) will lose its binding and
revert to its broadcast-based search behavior. Even if there are
other servers available, or even if the original server comes back
up, ypbind(8) will not be able to create a new binding since all
the servers are on remote subnets where its broadcasts won't be heard.
If the administrator isn't around to run ypset(8) again, the system
is hosed.
In some Linux NIS implementations, there exists a yp.conf file where
you can explicitly specify a server address and avoid the use of
ypbind altogether. This is not desireable since it removes the
possibility of binding to an alternate server in the event that the
one specified in yp.conf crashes.
Some people have mentioned to me how they though the 'restricted mode'
operation (using the -S flag) could be used as a solution for this
problem since it allows one to specify a list of servers. In fact,
this is not the case: the -S flag just tells ypbind(8) that when it
listens for replies to its broadcasts, it should only honor them if
the replying hosts appear in the specified restricted list.
This behavior has now been changed. If you use the -m flag in conjunction
with the -S flag, ypbind(8) will use a 'many-cast' instead of a broadcast
for choosing a server. In many-cast mode, ypbind(8) will transmit directly
to the YPPROC_DOMAIN_NONACK procedure of all the servers specified in
the restricted mode list and then wait for a reply. As with the broadcast
method, whichever server from the list answers first is used for the
local binding. All other behavior is the same: ypbind(8) continues
to ping its bound server every 60 seconds to insure it's still alive
and will many-cast again if the server fails to respond. The code used
to achieve this is in yp_ping.c; it includes a couple of modified RPC
library routines.
Note that it is not possible to use this mechanism without using
the restricted list since we need to know the addresses of the available
NIS servers ahead of time in order to transmit to them.
Darren Reed [Sun, 25 May 1997 15:49:17 +0000 (15:49 +0000)]
Import version 3.2alpha7
(they're currently in src/contrib/ipfilter/ipfilter/ by mistake, if someone
from core would like to delete that directory with three files as I'm not
meant to do that :)
Peter Wemm [Sun, 25 May 1997 04:13:27 +0000 (04:13 +0000)]
Fix(?) two volatile cast warnings. The buffer is volatile within the
function so as to avoid compiler side effects, but functions calling it
shouldn't be affected (gcc shouldn't cache memory scope past a function
call)
Steve Passe [Sun, 25 May 1997 02:49:03 +0000 (02:49 +0000)]
Broke up parse_mp_table() into 2 passes:
- The 1st (preparse_mp_table()) counts the number of cpus, busses, etc. and
records the LOCAL and IO APIC addresses.
- The 2nd pass (parse_mp_table()) does the actual parsing of info and recording
into the incore MP table.
This will allow us to defer the 2nd pass untill malloc() & private pages
are available (but thats for another day!).
Add rules for building doc back into releases, conditionalized on NODOC.
Also clean up some of the comments at the top. It's 12 o'clock, and
that is all.
Steve Passe [Sat, 24 May 1997 18:35:44 +0000 (18:35 +0000)]
Move the printing of "cpu#%d" to AFTER the general panic argument string.
When a panic occurs early in the SMP boot process 'cpunumber()' hangs,
causing the panic string to be lost. Now the system appears to hang
in 'breakpoint()', but at least the user sees the panic string before the
hang.
Peter Wemm [Sat, 24 May 1997 17:23:11 +0000 (17:23 +0000)]
Attempt to convert the ip_divert code to use the new-style protocol request
switch. I needed 'LINT' to compile for other reasons so I kinda got the
blood on my hands. Note: I don't know how to test this, I don't know if
it works correctly.
Peter Wemm [Sat, 24 May 1997 05:39:19 +0000 (05:39 +0000)]
Bootstrap aid from older releases.. 'make world' can't build xinstall
until the includes are installed, and it doesn't install the includes until
xinstall is built (the previous xinstall binary may not have -C). As a
bandaid, define MAP_FAILED ourselves if <sys/mman.h> didn't. Perhaps it
would be safer to simply disable mmap if all the prerequisites are not
there.
Julian Elischer [Fri, 23 May 1997 22:33:16 +0000 (22:33 +0000)]
submitted by: archie@whistle.com
Don't search for interface addresses matching interface "NULL"
it's likely to cause a page fault..
this can be triggered by the ipfw code rejecting a locally generated
packet (e.g. you decide to make some network unreachable by local users)
Peter Wemm [Fri, 23 May 1997 14:48:05 +0000 (14:48 +0000)]
Import a slightly newer version of 1.9.9 (as at 970523) that has fixed a
few more memory leaks and cleaned up getopt usage. These were done shortly
after the last one I imported. Very little has changed other than that.
(except for some doc updates)
Peter Wemm [Fri, 23 May 1997 12:55:14 +0000 (12:55 +0000)]
Disconnect the FAQ and handbook from the makefiles and remove the files.
The FAQ and handbook have been repository copied to their own top-level
("doc") directory in the cvs tree which will not be branched so as to
avoid the syncing problems. At some point, the sgml text will require
formatting tools that will be from ports rather than the main source tree.
Fix "daemon" class, Apache not works from /etc/rc otherwise.
Among bumping several limits, most interesting thing is that
Apache requires than "filesize=64M" restriction must be removed.
I think it is due to mmap() usage in apache, but I am not shure.
Satoshi Asami [Fri, 23 May 1997 08:38:46 +0000 (08:38 +0000)]
Change CXXINCLUDES to use "g++" explicitly. CXXINCLUDES was defined
with ${CXX} at the end; the only problem was, the directory name is
"g++" and ${CXX} is defined as "c++" in sys.mk.
David E. O'Brien [Fri, 23 May 1997 08:19:19 +0000 (08:19 +0000)]
Updated some wording for 3.x.
Added MASTER_STIE_LOCAL and updated it's location.
Added -N to diff options to ensure the diff includes new files.
Mentioned that USENET news ports should use ${PREFIX}/news.
Refromatted some of the comments w/in the sample Makefile so they wouldn't
wrap in the latin1 format.
General updating and minor word changes.
Brian Somers [Fri, 23 May 1997 04:41:31 +0000 (04:41 +0000)]
Create the alias library. This is currently only used by
ppp (or will be shortly). Natd can now be updated to use
this library rather than carrying its own version of the code.
Steve Passe [Thu, 22 May 1997 22:35:42 +0000 (22:35 +0000)]
Convert all:
panic( "xxxxx\n" );
to:
printf( "xxxxx\n" );
panic( "\n" );
For some as yet undetermined reason the argument to panic() is often NOT
printed, and the system sometimes hangs before reaching the panic printout.
So we hopefully at least print some useful info before the hang, as oppossed to
leaving the user clueless as to what has happened.
Joerg Wunsch [Thu, 22 May 1997 22:15:39 +0000 (22:15 +0000)]
Introduce a third queue per interface, serving only PPP control
protocol packets. This queue is the only one being enabled until
network phase has been reached.