almost every time someone uses an address. This file is probably not
the right place to keep track of the unused addresses (or used
addresses :->).
Fixed comments on #endif's to match code.
Added defines for ASC and GSC sizes. This file is not the right place
to keep track of scanner addresses, but while there here and we
pretend to keep track of unused addresses, the sizes need to be here
too.
Sorted IO_*SIZE defines.
floppies must have been random in 2.x since we reintroduced sorting
on b_pblkno on 1995/03/18. Drivers still initialize b_cylin/b_resid
although this is no longer used.
Removed unused, wrong function fdsize(). (Returning 0 means that the
device exists and has size 0, not that the device doesn't exist.
swaponvp() allows for size 0 by stupidly calling the d_psize function
twice if the size isn't 0. setdumpdev() doesn't allow for it.)
Continued removing /* ARGSUSED */ from drivers.
introduced.
Fixed the device-driverness of atapi.c and spkr.c.
These changes are actually no-ops because ${DRIVER_C} is the same as
${NORMAL_C} for the i386. I could do without magic CFLAGS. Special
handling should be in the sources if possible.
boot to display "Booting the kernelel...done" instead of "Booting
the kernel".
Removed save and restore of BIOS memory. kzipped kernels haven't
ever overlaid the BIOS memory.
Fixed the type of isdn_check(). A trailing arg was missing.
Included "conf.h" to get some prototypes.
Completed function declarations.
Added prototypes.
Removed some useless includes.
#include <i386/isa/isa_device.h>
#include <i386/eisa/eisaconf.h>
#include <pci/pcireg.h>
#include <pci/pcivar.h>
#include <scsi/scsi_all.h>
#include <scsi/scsiconf.h>
they are not needed, and slows down compilation.
from a string to an identifier so that it can be used to generate
declarations and strings. It's much easier to stringize an identifier
than to identifize a string. A uniform naming scheme must be used
for the automatically generated things to apply. This is a feature.
Used the module identifer to generate prototypes for the module load,
unload and stat functions. Removed the few prototypes for these that
already existed.
Used the module identifier to generate a unique struct tag in MOD_DEV().
This should probably be done for all the MOD_*() macros.
Moved the trailing semicolon from the MOD_*() macro definitions to the
macro invocations that didn't already (bogusly) have it.
Staticized the module load and unload functions.
Added function return types for the module load, unload and stat functions.
lkm/ibcs2/ibcs2.c:
Included <sys/sysproto.h> to get everything prototyped.
Cleaned up #includes.
lkm/ibcs2/ipfw.c:
Cleaned up #includes.
lkm/linux/linux.c:
The module name had to change from "linux_emulator" to "linux_mod" to
be automatically generated.
Cleaned up #includes.
lkm/syscons/*/*_saver.c:
Completed delcarations of function pointers.
sys/i386/isa/atapi.c:
The module name had to change from "atapi" to "atapi_mod" to be
automatically generated.
sys/i386/isa/wcd.c:
Used the fixed MOD_DEV(). This module has two devices and expanded the
macro in the source instead of fixing it.
The module names had to change from "wcd" and "rwcd" to "wcd_mod" and
"rwcd_mod" to be automatically generated.
sys/pccard/pcic.c:
The module name had to change from "pcic" to "pcic_mod" to be
automatically generated.
structs and prototypes for syscalls.
Ifdefed duplicated decentralized declarations of args structs. It's
convenient to have this visible but they are hard to maintain. Some
are already different from the central declarations. 4.4lite2 puts
them in comments in the function headers but I wanted to avoid the
large changes for that.
Note that pppd doesn't have an ipxcp.c module for negotiating and confuguring
IPX at startup, but after these mods, you can manually ifconfig IPX addresses
on the interface and it will probably work.. :-)
for certain common combinations of directory sizes, cluster sizes, and i/o
sizes (e.g., 4K, 4K, and 4K). The fix in rev. 1.21 was incomplete.
Reviewed by: dfr
Obtained from: party from NetBSD
much as I'd like to, but the malloc stunt I tried for an interim for
sure does worse.
Now we can read and write from any kind of address-space, not only
user and kernel, using callbacks.
This may be over-generalization for now, but it's actually simpler.
The fix for this in Lite-2 is more complete, but these quick hacks of mine
are safer for now. I plan to integrate the additional Lite-2 stuff at some
later time. Should completely fix PR810.
This closes a probably rare but nonetheless real window that would result
in a process hanging or the system panicing.
Reviewed by: dyson, davidg
Submitted by: kato@eclogite.eps.nagoya-u.ac.jp (KATO Takenori)
Included <sys/sysproto.h> to get central declarations for syscall args
structs and prototypes for syscalls.
Ifdefed duplicated decentralized declarations of args structs. It's
convenient to have this visible but they are hard to maintain. Some
are already different from the central declarations. 4.4lite2 puts
them in comments in the function headers but I wanted to avoid the
large changes for that.
structs and prototypes for syscalls.
Ifdefed duplicated decentralized declarations of args structs. It's
convenient to have this visible but they are hard to maintain. Some
are already different from the central declarations. 4.4lite2 puts
them in comments in the function headers but I wanted to avoid the
large changes for that.
NetBSD interface.
Increased the bogusness of the args list for mmap(). The args lists for
most of the memory mapping functions are bogus. The args lists in
syscalls.master are a little better than the ones in the args structs
currently being used, but the improvement for mmap() changed the object
code and I don't want to worry about that now.
Increased the bogusness of the args list for fcntl. BSD4.4lite2/NetBSD
uses `void *' instead of int for the third arg. This has the advantage
of working when `void *'s are longer than ints, but requires extra bogus
casts that I hope to avoid.
Fixed the args list for uname. `struct outsname' seems to be a typo,
not an old interface.
Added comments about bogus args lists for open, mount, msync, munmap,
mprotect, madvise, mincore, fcntl, semsys, msgsys and shmsys.
- collapsed #if-#elses that became null.
- removed dead comments.
Moved #defines that always have the same value to the tables.
Collapsed more #if-#elses that became null. None are left.
Removed repetitive comments.
Most of this is cleaning up, but there are some functional changes,
doc/comment improvements, error checking, gcc -Wall cleanups. Input buffer
flushing is enabled now, although I'm still not quite certain it's right.
Included <sys/vnode.h> and its prerequisite <sys/proc.h>, and cleaned
up includes. The vop_t changes made the non-inclusion of vnode.h
fatal instead of just sloppy.
i386_bitops.h:
Changed `extern inline' to `static inline'. `extern inline' is a
Linuxism that stops things from compiling without -O. Fixed
idempotency identifier.
Misc:
Added prototypes. Staticized some functions so that prototypes are
unnecessary. Added casts. Cleaned up includes.
it 1138 times (:-() in casts and a few more times in declarations.
This change is null for the i386.
The type has to be `typedef int vop_t(void *)' and not `typedef
int vop_t()' because `gcc -Wstrict-prototypes' warns about the
latter. Since vnode op functions are called with args of different
(struct pointer) types, neither of these function types is any use
for type checking of the arg, so it would be preferable not to use
the complete function type, especially since using the complete
type requires adding 1138 casts to avoid compiler warnings and
another 40+ casts to reverse the function pointer conversions before
calling the functions.
Handle kdc registration correctly. Catch ISA devices that use eisa
registration and output probe information accordingly.
lsdev will have to be updated to handle EISA devices correctly.
aic7770.c:
Set kdc_isa0 as the parent for 284X cards since its a VL card.
Should anybody out there wonder about this vendetta against global
variables, it is basically to make it more visible what our interfaces
in the kernel really are.
I'm almost convinced we should have a
#define PUBLIC /* public interface */
and use it in the #includes...
This is here now. We can now access (the new) sysctl variables from the
kernel too and using functions to handle access is more sane now.
I will now attack sysctl variables in the rest of the kernel and get them
all converted to newspeak.
Changed vnodep -> vp for consistency with the rest of the kernel, and
changed iparams -> imgp for brevity.
kern_exec.c:
Explicitly initialized some additional parts of the image_params struct
to avoid bzeroing it. Rewrote the set-id code to reduce the number of
logical tests. The rewrite exposed a mostly benign bug in the algorithm:
traced set-id images would get ktracing disabled even if the set-id didn't
happen for other reasons.
cards like the Adaptec 284x that use EISA ID registers for identification
even when in stalled in non-EISA systems.
Use one format throught the files.
-Wall fixes.
earlier discussions with DG, and a recent email exchange with SEF, I
decided to allow UFS to run wide-open on an experimental basis. We
will probably support eventually multiple async modes, and this is
the fastest the we can expect. Just use the -o async flag on the
UFS mount. Good luck...
These functions went away:
enosys (hasn't been used for some time)
enxio
enodev
enoioctl (was used only once, actually for a vop)
if_tun.c:
Continued cleaning up...
conf.h:
Probably fixed the type of d_reset_t. It is hard to tell the correct
type because there are no non-dummy device reset functions.
Removed last vestige of ambiguous sleep message strings.
file for GPL restrictions. This code was ported to the BSD platform
by Godmar Back <gback@facility.cs.utah.edu> and specifically to FreeBSD
by John Dyson. This code is still green and should be used with caution.
Additional changes to UFS necessary to make this code work will be commited
seperately.
Submitted by: Godmar Back <gback@facility.cs.utah.edu>
Obtained from: Lites/Mach4
dangerous than the original MNT_ASYNC. There might be some minor
security considerations due to data writes not being posted as promptly
as before. Meta-data operations are still not quite as fast as Linux,
but streaming I/O is still higher.
by functions.
tty_conf.c:
Cleaned up formatting of tables.
Removed another ARGSUSED for consistency.
conf.h:
Introduced typedefs for line discipline functions.
Backed out most of previous revision (it is done elsewhere).
I've moved the #include <machine/conf.h> inside the #ifdef KERNEL
becuause things like modload #include <sys/conf.h> for the cdevsw definitions
but dont need the conflicting prototype for fdopen in stdio.h and
machine/conf.h.
Bruce may have a better fix for this, but for now I need a make world..
Start the revamp of the initialiation process. New routines include
ahc_alloc, ahc_free, and ahc_reset. These help divide the work of staring
up a board more logically between probe and attach.
ahcintr now takes a (void *) and returns int. The pci code uses it directly.
Until the PCI code for shared edged triggered interrupts is removed, the
eisa code uses a stub (ahc_eisa_intr) that throws away the int returned
by ahcintr.
Use MHz instead of MB/s for printing out sync rates.
Print out "aic7880" instead of "aic7870" for the new aic7880 chips.
in here to do some conflict detection. The new code doesn't do conflict
detection yet, but it will be implemented in another way.
aic7770.c moved to i386/eisa
be the beginning of our move to a more dynamic (configuration manager)
based setup for all drivers. Everything seems to work except for
some devconf problems. Only the aic7xxx driver will be using this
interface until it is reviewed, revised and accepted as a good configuration
interface.
Adapt aic7770.c to use new eisaconf.
eisadevs.c is replaced by a linker set.
misplaced extern declarations (mostly prototypes of interrupt handlers)
that this exposed. The prototypes should be moved back to the driver
sources when the functions are staticalized.
Added idempotency guards to <machine/conf.h>. "ioconf.h" can't be
included when building LKMs so define a wart in bsd.kmod.mk to help
guard against including it.
/dev/random is now a part of the kernel! you will need to make
the device in /dev: sh MAKEDEV random
and take a look at some test code in src/tools/test/random.
incompatible with the type of a PCI interrupt handler.
Fixed the type of pdc_pci_ifintr(). The type of a PCI interrupt handler
is too generic to pass arbitrary struct pointers.
incompatible with the type of a PCI interrupt handler. A new entry
point `ahc_pci_intr()' is used for PCI. ISA and PCI interrupts are
penalized equally (:-) by calling a common handler `ahc_intr()'. This
should be reorganized. Some strings now name the wrong function...
to <machine/conf.h>. conf.h was mechanically generated by
`grep ^d_ conf.c >conf.h'. This accounts for part of its ugliness. The
prototypes should be moved back to the driver sources when the functions
are staticalized.
- remove a redundant condition;
- complete all validity checks on segment before calling
soisconnected(so).
Reviewed by: Richard Stevens, davidg, wollman
have to decide whether to send a CC or CCnew option in our SYN segment
depending on the contents of our TAO cache. This decision has to be
made once when the connection starts. The earlier code delayed this
decision until the segment was assembled in tcp_output() and
retransmitted SYN segments could have different CC options.
Reviewed by: Richard Stevens, davidg, wollman
(maximum size of a socket buffer) tunable.
Permit callers of listen(2) to specify a negative backlog, which
is translated into somaxconn. Previously, a negative backlog was
silently translated into 0.
civilised manner than panicing. This only happens as a result of another
state botch somewhere else, eg: from a tty driver calling putc or b_to_q
on a closed device. Apparently, it's also been implicated in a panic
with a status (^T) event on ptys.
This change should pretty well be in it's final form now.
net.inet.ip.intr-queue-maxlen (=== ipintrq.ifq_maxlen)
and net.inet.ip.intr-queue-drops (=== ipintrq.ifq_drops)
There should probably be a standard way of getting the same information
going the other way.
the kernel. ppp_tty.c goes to some lengths to minimise the inter-layer
calling (including a soft ISR). ppp_tty.c takes care of the soft masking
that was needed still.
(I've discovered that bugs in this area show up within an hour if the
masking was not correct.. :-} This combination has proven stable on
specialix serial ports, although there was some concern about the softtty
parts of sio/cy and netisr colliding - but Bruce has fixed that now)
set in open() when CLOCAL is set unless carrier is present.
Fixed initialization of line discipline. It lived across opens.
Lines that started with the wrong discipline probably didn't work
at all, because TS_ISOPEN is only set by TTYDISC.
if_sl and if_ppp (from ppp-2.2), eliminating the nearly identical
pppcompress.[ch] code. Add maximum VJ compression states argument to
sl_compress_init().
if_sl: call sl_compress_init() with the extra argument.
non-fatal. I've make it return an appropriate error to the caller instead
of panic()ing.
Handling an error condition is inherently more friendly than exploding
the kernel.. :-) The new behavior is a little closer to traditional
clists, potentially making porting a little simpler.
Suggested by: bde (many months ago, I've been using this for a while..)