Commit Graph

50684 Commits

Author SHA1 Message Date
thorpej f0be361fce Make this build again with ALLOC_TRACE, and enable freeall(). 2001-11-02 19:58:52 +00:00
atatat 6568927550 The cloning devices only needs-flag, not needs-count 2001-11-02 18:39:06 +00:00
augustss d1ff85c9aa Improve debug messages a little. 2001-11-02 13:02:20 +00:00
itojun d54922c799 check offset overrun in ip6_nexthdr. 2001-11-02 08:05:48 +00:00
lukem cf524d2464 replace __byte_swap_long_variable and __byte_swap_word_variable
#define ({ })  with  static __inline { }
2001-11-02 05:23:48 +00:00
lukem 153d16f7b1 replace __byte_swap_long_variable and __byte_swap_word_variable
#define ({ })  with  static __inline { }
2001-11-02 05:17:59 +00:00
itojun 9d7baa72da recognize fxp on IBM thinkpad T23. from akimichi@wide.ad.jp 2001-11-02 03:40:47 +00:00
haya 2c903bf2c0 Add PCI power management control. If the power state of a bridge is
not D0 at device attaching or resuming, set the bridge D0 mode.
2001-11-02 03:32:33 +00:00
itojun e4b5b62a3d array boundary overflow on the use of IPv4 mapped address. from simonb 2001-11-02 02:37:50 +00:00
matt 767a35ff99 Indirect labels should start with L 2001-11-02 02:36:57 +00:00
thorpej da9b5f3614 loadfile() support for the Shark. 2001-11-02 01:27:41 +00:00
thorpej 4cbfdf4a51 Correct a kernel name. 2001-11-01 22:55:25 +00:00
thorpej 13d619a803 Check in of work-in-progress ofwboot for the Shark. Starts, does a
DHCP, attempts to load kernel, gets a Data Abort.
2001-11-01 22:50:18 +00:00
jdolecek d1842b740a Restructure to the lkm/compat/Makefile way - the tested & installed
modules are on top, rest is added .if !make(install). This will avoid
such silly mistakes as rev. 1.7/1.8.
2001-11-01 19:32:53 +00:00
uch 6195437083 missing NBPFILTER > 0 2001-11-01 17:32:33 +00:00
augustss 41756e36f8 Regen. 2001-11-01 17:25:37 +00:00
augustss 16c1f136e5 Reorder two entries in numerical order. 2001-11-01 17:25:05 +00:00
rearnsha 87cb8af648 When clearing the modified bit for modified emulation, don't turn
caching on for a page just because we are clearing the writable bit in
the PTE: this is incompatible with the way pmap_vac_me_harder works,
and the code in the modified emulation handler doesn't know about
recalculating the cachable attributes (nor should it, IMO).

Also, if we are invalidating a page, flush its TLB entry; for some
reason we were only doing this when clearing the Write or modified
bits.

These patches together seem to solve the random seg-faults that were
still occuring occasionally under heavy paging.
2001-11-01 15:49:16 +00:00
tron 7a726f828b Fix botch in last commit which caused some of the "exec" LKMs not to be
built.
2001-11-01 13:41:42 +00:00
drochner b4d5b7d621 protect against multiple inclusion 2001-11-01 12:54:35 +00:00
augustss 492a03edae Regen. 2001-11-01 11:06:45 +00:00
augustss 44345ed1ac New device (from OpenBSD). 2001-11-01 11:06:18 +00:00
yamt b7574e5c56 add settings for ne2000.
(commented out)
2001-11-01 09:45:03 +00:00
yamt 3492b7a4c6 add ne2000 standalone driver. 2001-11-01 09:37:17 +00:00
chs fa6e18a029 in pmap_extract(), detect unmapped users addresses too. 2001-11-01 07:37:36 +00:00
chs 550caf0ce3 allow SWAP_GETDUMPDEV for all users.
use {LIST,TAILQ}_FOREACH where appropriate.
2001-11-01 03:49:30 +00:00
imp fdf7743003 Add Intel PRO WLAN 2011. 2001-11-01 03:00:51 +00:00
fvdl f8ff451a0a Fix reversed wait/nowait logic. 2001-10-31 22:23:18 +00:00
thorpej 44f1c938e8 Don't actually need elf64 support in installboot(8). 2001-10-31 22:13:03 +00:00
thorpej 66f972ab70 Need byteorder.c for loadfile_elf*.c 2001-10-31 21:39:02 +00:00
thorpej 0971f93345 Make the ELF loadfile routines byte-order independent when used in
a non-_STANDALONE environment (e.g. installboot(8)): internalize and
externalize the exec, program, and section headers as necessary.

Reviewed and OK'd by Christos.
2001-10-31 21:24:09 +00:00
jdolecek d58125dd1f kill one more duplicate 2001-10-31 21:15:43 +00:00
jdolecek f15ae836f3 kill duplicates 2001-10-31 21:13:23 +00:00
jdolecek 159a2b871c use right number of zeroes for Cyrix i386_cpuid_cpus[] entries
reformat the entries with all zeroes to be more easier to verify
2001-10-31 20:35:21 +00:00
thorpej a43b4351a8 Oops, committed wrong copy of file in previous revision. 2001-10-31 20:22:22 +00:00
thorpej 90aee7593a Add standalone 64-bit to/from {big,little}-endian routines. 2001-10-31 20:19:52 +00:00
atatat 6e885d365a Turn the tun device/network interface into a cloning device. 2001-10-31 20:08:17 +00:00
jdolecek 76dc75c365 svr4 compat LKMs work on i386 2001-10-31 18:30:18 +00:00
jdolecek 2b5db1a8bb add the compat_util.c goo
XXX should prolly share this with lkm/compat, which has the same thing
2001-10-31 18:28:50 +00:00
jdolecek 060f8eead1 Add the COMPAT_UTIL_OVERRIDE stuff, and (commented out) COMPAT_43 stuff 2001-10-31 18:27:31 +00:00
jdolecek af8a31dd42 For i386, set gate for fasttraps appropriately when loaded (and
unset on unload), similarily to what i386/machdep.c does #ifdef
COMPAT_SVR4. This makes the svr4 LKM actually work on i386.
XXX kind of ugly, but doing this more generic way would be overkill
2001-10-31 18:25:53 +00:00
jdolecek 6cb3157ebe Add defines for the rest of fasttraps as defined on Solaris8/i386. For
documentation purposes only (though CLOCK_SETTIME a.k.a T_GETHRESTIME
shouldn't be too hard to implement).
2001-10-31 18:20:13 +00:00
jdolecek f3bfeee0d6 Fix one more place where we need to restore %fs/%gs explicitly. 2001-10-31 18:17:56 +00:00
jdolecek 01d4649f9f Make local INTRENTRY, INTRFASTEXIT match those in locore.s, i.e. store &
restore %fs/%gs appropriately.
Fixes kern/14275 - compat svr4 works on i386 again :)

Thanks to MOCHIDA Shuji for initial investigation on the issue, that helped
to find the bug a lot.
2001-10-31 18:16:02 +00:00
thorpej d42a6dc5c2 Rather than using a NetBSD-specific header file <machine/int_types.h>
and non-standard inttype-like types, pull in <sys/types.h> if
_KERNEL or _STANDALONE and <inttypes.h> otherwise, and use standard
inttype types.

Discussed with and OK'd by Christos.
2001-10-31 18:05:35 +00:00
bjh21 54edd2d848 Define BOOT_ELF32. Don't define ELFSIZE. 2001-10-31 17:59:38 +00:00
bjh21 82b2265851 Add loadfile_machdep.h, which has been missing since I committed boot26. 2001-10-31 17:58:54 +00:00
thorpej 6d2e0bcbc2 Use <machine/elf_machdep.h> to override Elf64_Word and Elf64_Sword
on the Alpha (which uses a non-standard definitions for historical
reasons), rather than #ifdef __alpha__ (which is not cross-tool safe).
2001-10-31 17:44:42 +00:00
thorpej d973bb96f1 Include <machine/elf_machdep.h> earlier, at the beginning of the file,
after the inttypes header.
2001-10-31 17:35:06 +00:00
thorpej 6797e85570 Include support for elf64. 2001-10-31 17:21:47 +00:00
thorpej e727e3f180 Split elf32 vs. elf64 handling in loadfile(), including support for
each separately and explicitly.  BOOT_ELF is now BOOT_ELF32 and
BOOT_ELF64, and ELFSIZE should no longer be defined in loadfile_machdep.h.
2001-10-31 17:20:45 +00:00
reinoud 88ca038117 Change MACHINE_ARCH to arm making it ELF now. 2001-10-31 02:10:35 +00:00
thorpej 4810d73020 Build the loadfile() a.out, ECOFF, and ELF back-ends as separate
objects.
2001-10-31 01:51:42 +00:00
thorpej 91626c3515 Split the exec formats included by loadfile() into separate files.
Primary goal: explcitly select which ELF format (elf32 or elf64) to
support for a cross tool which uses loadfile().
2001-10-30 23:51:03 +00:00
thorpej 715b4d636e Use the standalone byteorder routines. 2001-10-30 23:39:08 +00:00
thorpej 74eebee33c Add standalone byte-swapping routines that don't require testing
the system's byte-order:
- host to {big,little}-endian {16,32}
- {big,little}-endian {16,32} to host

These are not intended to be used in libsa directly, but are rather
intended to be used by host tools which may use libsa routines (such
as loadfile()) which need to use explicit byte-ordering.
2001-10-30 23:35:33 +00:00
manu 40c8c13901 Made syscallargs.h lint-friendly, so that it can be included in libc sources
more easily.
2001-10-30 21:52:26 +00:00
thorpej f67e15c839 uvm_map_protect(): Don't allow VM_PROT_EXECUTE to be set on entries
(either the current protection or the max protection) that reference
vnodes associated with a file system mounted with the NOEXEC option.

uvm_mmap(): Don't allow PROT_EXEC mappings to be established of vnodes
which are associated with a file system mounted with the NOEXEC option.
2001-10-30 19:05:26 +00:00
thorpej a2cd7623d4 Correct a comment. 2001-10-30 18:52:17 +00:00
thorpej e8ee04475d - Add a new vnode flag VEXECMAP, which indicates that a vnode has
executable mappings.  Stop overloading VTEXT for this purpose (VTEXT
  also has another meaning).
- Rename vn_marktext() to vn_markexec(), and use it when executable
  mappings of a vnode are established.
- In places where we want to set VTEXT, set it in v_flag directly, rather
  than making a function call to do this (it no longer makes sense to
  use a function call, since we no longer overload VTEXT with VEXECMAP's
  meaning).

VEXECMAP suggested by Chuq Silvers.
2001-10-30 15:32:01 +00:00
itohy 36a6ce75fe Fix memory leak if
- ktrace enabled for I/O operaion, and
 - readv() causes an error.
2001-10-30 13:37:21 +00:00
kml 77c99e8c60 Add in support for timing out IPv4 routes added due to redirects,
as discussed in tech-net several weeks ago.  It turned out that
KAME had already added this functionality to the IPv6 stack, so
I followed their example in adding the sysctl variables
net.inet.icmp.rediraccept and net.inet.icmp.redirtimeout.
2001-10-30 06:41:09 +00:00
thorpej 380b5498e9 Make sure to load/store bbinfo values as big-endian. 2001-10-30 05:52:30 +00:00
thorpej f16413a699 Rather than using nlist(3), use a magic structure with a magic
number that installboot(8) can search for.  Suggested by cgd@netbsd.org.
2001-10-30 05:13:09 +00:00
lukem f4e04ac768 merge in changes from GENERIC revs 1.400 ... 1.432:
- add MTRR
- comment out DIAGNOSTIC
- add commented out SEM{MNI,MNS,UME,MNU} COMPAT_MACH EXEC_MACHO
- comment out EISA stuff
- add commented out MCA stuff
- add audio devices: esl, emuxki, yds
- add pseudo-device bridge
2001-10-30 01:39:15 +00:00
thorpej 0896046ab3 Attempt at making Type 1 config cycles work, based on "see config-map". 2001-10-30 01:21:24 +00:00
lukem b3b9740195 add __KERNEL_RCSID() 2001-10-30 01:11:53 +00:00
thorpej 6fd8d278ed pci_conf_interrupt() takes bus/dev/pin, not bus/dev/func. 2001-10-29 23:33:42 +00:00
thorpej 7285b2c290 uvm_mmap(): If a vnode mapping is established with PROT_EXEC, mark the
vnode as VTEXT.

uvm_map_protect(): When VM_PROT_EXECUTE is added to a VA range, mark
all the vnodes mapped by the range as VTEXT.
2001-10-29 23:06:03 +00:00
thorpej ccb78392f1 Check in of work-in-progress of Firepower native device support.
We can find devices in PCI configuration space, but not much else.
2001-10-29 22:28:37 +00:00
simonb 243a8aa895 Add EM_NS32K for the ns32k series CPUs. 2001-10-29 21:30:54 +00:00
martin 4e61daf35e In preparation for further changes: remove big parts of the ifdef mess
for OSes we no longer share this file with.
2001-10-29 19:15:48 +00:00
thorpej 2d06f95095 Add/rework infrastructure that will allow us to support native
device drivers:
- Various native device entries in cdevsw/bdevsw.
- Rework the interrupt infrastructure to provide more flexibility to
  the platform-dependent back-end.  Rewrite the "ofwgen" simulated
  interrupt routines to reflect the changes.
- Clear out the BAT registers and set the fixed battable entries before
  calling the platform init routine.  The platform init routine is allowed
  to set entries in the battable.
- Don't call the platform cons_init routine until after translation is
  enabled -- we might need translation to work in order to access bus
  space.
2001-10-29 19:04:24 +00:00
thorpej 61438ef172 For System registers which are not 32-bits wide, they are "left justified"
within the 32-bit word.  Add CSR_{READ,WRITE} macros which compensate for
this.
2001-10-29 18:57:15 +00:00
matt 3a74f9105b root finds ofbus, not ofroot (just like the shark/dnard) 2001-10-29 17:32:57 +00:00
matt 40296b7cc8 Use Lirqhandler (same bug/fix as in the footbridge_irq.S) 2001-10-29 17:30:26 +00:00
rearnsha 05885de5fc Garbage collect some early debug hacks that should not have been
committed in the first place and prevent linking.
2001-10-29 14:23:35 +00:00
lukem 80ac606906 ffs_sb_swap() fixes:
- calculate the offset and length of the postbl before byteswapping.
  problem noted by der Mouse.
- use offsetof() to determine # of fields to calculate in initial
  loop, rather than hard-coding in `52 fields'
- improve comments.
2001-10-29 11:26:35 +00:00
simonb 5f717f7c33 Don't need to include <uvm/uvm_extern.h> just to include <sys/sysctl.h>
anymore.
2001-10-29 07:02:30 +00:00
itojun 7b1918bdc8 always check extension header length. 2001-10-29 05:23:17 +00:00
thorpej b5ae57acc0 Fix a typo, add some UL suffixes to memory map constants. 2001-10-29 04:48:21 +00:00
simonb 163e969b09 Include bit definitions for the Debug Status Register; from Artem Belevich
at Riverstone Networks.
2001-10-29 02:02:19 +00:00
simonb 545af90346 Don't return at the end of a void function. 2001-10-29 02:00:01 +00:00
simonb f7144c4462 G/C unused enable_intr and disable_intr functions. Fix a whitespace nit. 2001-10-29 01:57:49 +00:00
simonb 46cb54843c Whitespace nit. 2001-10-29 01:53:59 +00:00
simonb 5f47f77815 Use wrteei to enable interrupts.
From Artem Belevich at Riverstone Networks.
2001-10-29 01:52:09 +00:00
simonb 6596d92841 Use the Walnut FPGA register offsets instead if the i8042 offsets for
the keyboard/mouse command and data ports (whee! they probe now), and
set up keyboard & mouse interrupts (untested for now).
2001-10-29 01:42:11 +00:00
simonb 90a347de11 If a pckbc is configured in, configure the FPGA so that separate
interrupts are used for the keyboard and mouse, interrupts are high
and level triggered (and enabled).
2001-10-29 01:37:29 +00:00
simonb cc4d8c1285 Set up irq16 (FPGA interrupt) and irq17 (SMI interrupt) for the keyboard
and mouse.
2001-10-29 01:32:59 +00:00
simonb ad762e99bf Expose (and augment) the FPGA registers, and add the static RAM address
and size.
2001-10-29 01:31:11 +00:00
augustss 246b858752 Inject events in the right place in the buffer. 2001-10-29 01:02:11 +00:00
jdolecek 24ba90929c Avoid using microtime(9) for atime/mtime, we don't need to have it
THAT accurate and microtime(9) is painlessly slow on i386 currently.
This speeds up small transfers much. The gain for large transfers
is less significant, but notable too.
Bottleneck was found by Andreas Persson (Re: kern/14246).

Performance improvement with PIII on 661 Mhz according to hbench (with
PIPE_MINDIRECT=8192):

buffersize     before    after
512            17        49
1024           33        110
2048           52        143
4096           77        163
8192           142       190
64K            577       662
128K           372       392
2001-10-28 20:47:15 +00:00
jdolecek 47ea6cbd85 Use hardcoded 8192 for PIPE_MINDIRECT, rather than being dependant
on PAGE_SIZE. The overhead of setting up Page Loan is pretty much constant
irregardless of page size, so it makes more sense to use fixed constant.

According to hbench, the overhead of Page Loan setup is still significantly
bigger than the performance gain for 4096 byte buffers on i386
(PIII/600Mhz). The difference is smaller on 386DX, but Page Loan is
still not faster for this case.

Also, there is some other code out there which expects 4KB writes
to not block even for 'blocking' write, since it works this
way on some other operating systems.
Partially addresses kern/14246 by Andreas Persson.
2001-10-28 20:27:55 +00:00
augustss 46679564db Add a DIAGNOSTIC test. 2001-10-28 17:16:58 +00:00
manu 6d572de955 Added character devices #60 and #61 to chrtoblktbl[]. They were missing,
and it introduced problems (EBUSY error when opening the driver for
writing in securelevel >= 1, plus manipulating some unitialized data at
the end of chrtoblktbl[])
2001-10-28 17:11:56 +00:00
augustss 3deca4b069 Use the usb callout macros. 2001-10-28 16:53:21 +00:00
jdolecek a1a864c05e add missing dot to copyright message 2001-10-28 16:23:56 +00:00
jdolecek 86f5984fd6 Add "Pentium III (Tualatin)" entry to CPUVENDOR_INTEL/CPUCLASS_686.
Make sure the CPUCLASS_686 entry has really 17 (i.e. 16 + default)
name entries as it's supposed to, so that code won't crash when
run on Intel CPUCLASS_686 processor which doesn't have name entry
in the table.

Reported and fix provided by Naoto Morishima in kern/14380.
2001-10-28 16:17:05 +00:00
augustss 87746219bd Put in some tests to see if the input source is NULL before using it.
Suggested by Havard Eidnes <he@netbsd.org>.
2001-10-28 10:30:22 +00:00
martin d1f0e4f6e4 Don't call if_alloc_sadl when creating the pppoe interface, it's called
from sppp_attach.
When destroying the interface, call sppp_detach for proper cleanup.
This avoids a crash from the slow timeout handler for no longer existing
interfaces (spotted by Rémi Zara).
2001-10-28 09:48:20 +00:00