Commit Graph

1374 Commits

Author SHA1 Message Date
christos
160a37667a Unbreak ssp kernels. The issue here that when the ssp_init() call was deferred,
it caused the return from the enclosing function to break, as well as the
ssp return on i386. To fix both issues, split configure in two pieces
the one before calling ssp_init and the one after, and move the ssp_init()
call back in main. Put ssp_init() in its own file, and compile this new file
with -fno-stack-protector. Tested on amd64.
XXX: If we want to have ssp kernels working on 5.0, this change needs to
be pulled up.
2009-02-12 18:24:18 +00:00
jym
92ae85d18e Changes to MEMORY_RBFLAGS option:
- renamed to MEMORY_DISK_RBFLAGS to better fit the rest of the
MEMORY_DISK options(4)
- change default value to RB_AUTOBOOT instead of RB_SINGLE, and adapt
the config(5) files accordingly
- document this option inside options(4)

See also http://mail-index.netbsd.org/tech-kern/2008/12/25/msg003924.html

Reviewed by abs@ in private mail.
2009-02-06 18:50:26 +00:00
christos
f0adb7fbbb compat_linux needs at least netbsd_16 for sigcontext. 2009-01-18 23:29:33 +00:00
hans
7ff8bbb1b3 Not every grep knows -q. Ok by apb. 2009-01-18 13:53:03 +00:00
he
c2e5f48d9e After the recent time_t and associated changes, COMPAT_ULTRIX now
depends on COMPAT_50.  Make it so.
2009-01-18 13:25:39 +00:00
christos
00a0ee995f fix COMPAT dependency. 2009-01-11 15:55:55 +00:00
christos
461a86f9bd merge christos-time_t 2009-01-11 02:45:45 +00:00
macallan
71a6e25dc4 Last bit of the bwi driver
From Urban Boquist
2009-01-09 19:58:17 +00:00
pooka
167269d42c Include kernel printf routines in rump instead of relying on the
magic libc symbol.  This also allows to bid farewell to subr_prf2.c
and merge the contents back to subr_prf.c.  The host kernel bridging
is now done via rumpuser_putchar().
2009-01-02 02:54:13 +00:00
salo
e47eff8181 MUHAHAHA, FIRST POST!!!!111!1!!ONE!!1
(also, "welcome to 2009 and don't forget to update copyright notices
        when you add new code" and all that stuff)
2009-01-01 00:00:01 +00:00
martin
a1ad1cee58 require newer config(1) for the rootfs changes. 2008-12-21 11:40:48 +00:00
haad
c9d0c62a0c Merge the haad-dm branch to -current. This branch adds LVM functionality to
the base NetBSD system. It uses Linux LVM2 tools and our BSD licensed
device-mapper driver.

The device-mapper driver can be used to create virtual block devices which
maps virtual blocks to real with target mapping called target. Currently
these targets are available a linear, zero, error and a snapshot (this is
work in progress and doesn't work yet).

The lvm2tools adds lvm and dmsetup binary to based system, where the lvm
tool is used to manage and administer whole LVM and the dmestup is used to
communicate iwith device-mapper kernel driver. With these tools also
a libdevmapper library is instaled to the base system.

Building of tools and driver is currently disable and can be enabled with
MKLVM=yes in mk.conf. I will add sets lists and rc.d script soon.

Oked by agc@ and cube@.
2008-12-19 15:24:03 +00:00
alc
1c52cf4c6b Import config(9) file and register HAL's files in the build machinery. 2008-12-11 05:42:18 +00:00
ad
3c9eb3fb0f zfs needs block devices too, for zvol. 2008-12-05 13:06:50 +00:00
ad
92ce8c6a3d Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
2008-11-19 18:35:57 +00:00
pooka
9e46e516a7 Move fd_closeexec() and fd_checkstd() from kern_descrip to their
own file, subr_exec_fd.c (they're used only by exec).

After this change, the kernel source modules are in a partitioned
enough state to allow building a system without vfs at all.
2008-11-18 13:01:41 +00:00
pooka
48d146fba6 cwd is logically a vfs concept, so take it out from the bosom of
kern_descrip and into vfs_cwd.  No functional change.
2008-11-18 11:36:58 +00:00
ad
d3d0b437b0 - Conditionalise POSIX aio and mqueue, but include them by default.
- Add a COMPAT_NETBSD attribute. Emit if any compat options are used.
2008-11-14 23:28:30 +00:00
matt
b0aa811639 Sort the kernel objects. 2008-11-13 06:48:38 +00:00
ad
0b7375c9af Allow the POSIX semaphore code to be loaded as a module. 2008-11-12 14:32:34 +00:00
ad
0efea177e3 Remove LKMs and switch to the module framework, pass 1.
Proposed on tech-kern@.
2008-11-12 12:35:50 +00:00
apb
f46c1de7cb Use ${TOOL_SED} instead if plain sed in Makefiles. 2008-10-25 22:27:34 +00:00
apb
96230fab84 Use ${TOOL_AWK} instead of ${AWK} or plain "awk" in make commands.
Pass AWK=${TOOL_AWK:Q} to shell scripts that use awk.
2008-10-19 22:05:19 +00:00
wrstuden
fc7511b00e Merge wrstuden-revivesa into HEAD. 2008-10-15 06:51:17 +00:00
tls
383c324d74 Fix kernels without accf_data or accf_http. I'll modularize this better
on Monday, but this will get people building again while still removing
the silly dependency on INET.
2008-10-12 13:39:42 +00:00
pgoyette
eacec974a3 Add an i2c attachment for the LM78 family of temp sensor/fan control
Tested by Martin Husemann
2008-10-12 13:17:28 +00:00
tls
cef30423d3 Address problems with accept filters noted by ad in his source-changes
mail: http://mail-index.netbsd.org/source-changes/2008/10/10/msg211109.html

	* Scary-looking socket locking stubs (changed to KASSERT of locked)

	* depends on INET inappropriately (though now you must add new
	  accept filter names to the uipc_accf.c line in conf/files if
	  you aren't using dataready or httpready)

	* New code uses MALLOC/FREE -- changed to kmem_alloc/kmem_free;
	  could be pool_cache, these are all fixed-size allocations.

We need to verify that this works as expected with protocols with per-socket
locking, like PF_LOCAL.  I'm a little concerned about the case where the
lock on the listen socket isn't the same lock as on the eventual connected
socket.
2008-10-11 16:39:07 +00:00
pooka
7e5aba5af0 Move uidinfo to its own module in kern_uidinfo.c and include in rump.
No functional change to uidinfo.
2008-10-11 13:40:57 +00:00
reinoud
fec4bb5bba Add generic FS agnostic directory hashing support. Currently only in use by
UDF. Future users could be msdosfs, ufs, nilfs2 (when ready), cd9660 etc.

Note that its not the same as UFS's DIRHASH support; UFS would need a good
cleanup/splitout of directory operations to adopt to this new directory
hashing support since most directory operations are interweaved with the
vnops itself. This is a TODO.
2008-09-27 13:01:07 +00:00
pooka
44367b7199 Split rate-checking routines into their own module for easier reuse. 2008-09-25 17:17:10 +00:00
pooka
dd1721fa8d Move global malloc types from kern_malloc into a separate module. 2008-09-25 16:23:45 +00:00
hannken
fce2c1d412 Create fss(4) devices on first open and destroy on last close of an
unconfigured device.  That removes the compile-time constant number
of useable devices.
While here, add disk_busy()/disk_unbusy() instrumentation.

Reviewed by: Quentin Garnier <cube@netbsd.org>
2008-09-14 16:10:19 +00:00
jmcneill
e1f7e773d4 Add video(4) 2008-09-06 19:18:16 +00:00
tron
0f256b9d59 Compile NetBSD/amd64 kernels with "-Wextra". Patches contributed by
Juan RP in PR port-amd64/39266.
2008-09-05 13:37:24 +00:00
tron
f8929a3508 Don't add "${CPUFLAGS}" and "${CWARNFLAGS}" to "AFLAGS" and "CFLAGS" twice.
Patch submitted by Juan Romero Pardines in PR kern/39265.
2008-09-05 11:03:53 +00:00
reinoud
627e960617 Back out dirhash kernel module for now. 2008-08-30 10:49:27 +00:00
reinoud
0a5ad4e15d Add dirhash kernel module for sharing dirhashing support with other FS
other than UDF. Its FS agnostic and could be used for any FS

Note to self: manpage needs to follow.
2008-08-29 14:20:25 +00:00
gmcgarry
3c9a95916d Wrap compiler-specific flags with HAVE_GCC and HAVE_PCC as necessary. Add a few flags for PCC. 2008-08-29 00:02:21 +00:00
drochner
7bfac24f7b allocate a char major # for video (gsoc project) 2008-08-27 14:59:55 +00:00
apb
945315ec99 Use ${TOOL_SED}, which is defined by bsd.own.mk/bsd.sys.mk,
instead of just ${SED}.   (Don't do the same for ${AWK},
because that's not yet a host tool.)
2008-08-05 08:26:05 +00:00
perry
3a8b66906e Per request from Matt Thomas, make -m on -current print the major
number of the next release.
2008-08-04 19:30:09 +00:00
perry
3fe86b6b2e 1) replace use of sed with $SED
2) get rid of grep variable -- grep isn't used here
3) add a -m option that prints the release major number (like "4")
4) add a comment documenting the options
2008-08-04 17:56:52 +00:00
tls
717f903a98 Add accept filters, ported from FreeBSD by Coyote Point Systems. Add inetd
support for specifying an accept filter for a service (mostly as a usage
example, but it can be handy for other things).  Manual pages to follow
in a day or so.

OK core@.
2008-08-04 03:55:47 +00:00
simonb
36d65f1138 Merge the simonb-wapbl branch. From the original branch commit:
Add Wasabi System's WAPBL (Write Ahead Physical Block Logging)
   journaling code.  Originally written by Darrin B. Jewell while
   at Wasabi and updated to -current by Antti Kantee, Andy Doran,
   Greg Oster and Simon Burge.

OK'd by core@, releng@.
2008-07-31 05:38:04 +00:00
pooka
cc7d901591 vfs_subr2 has lost its will to live. vfs_subr was originally split
into two parts so that some of the routines could be used by rump.
Now that rump uses both vfs_subr and vfs_subr2 and there is no
reason to keep two files lying around, re-unite them.
2008-07-16 20:06:19 +00:00
perry
9b5b7fcda3 Add the kernel revision to vers.c, as in:
const char bootprog_kernrev[] = "4.99.70";

For now, we still also include the builder name and date and such, so
that we don't break anything, but those are (probably) on the way out.

Part of the "bit-identical sources yield bit-identical release files"
project.
2008-07-15 20:10:06 +00:00
gmcgarry
fb80c8cd2d Disable INCLUDE_CONFIG_FILE if compiling with PCC, since PCC cannot
handle 80KB string literals.  Documented as hack.
2008-07-12 11:50:07 +00:00
ad
b94f79f0e8 Replce exec_map with a pool. Proposed on tech-kern@, reviewed by chs@. 2008-07-02 17:28:54 +00:00
drochner
52b8fec3cf clean up some useless code and variables in cardbus attachment 2008-06-24 17:32:09 +00:00
gmcgarry
d977ef8e7b pcc needs -Wno-unreachable-code. 2008-06-21 01:00:43 +00:00
cube
53faa53d5a Do proper config(5) version checking after previous changes [hi drochner!].
The rule is, if you change scan.l or gram.y, you bump the config(5)
version.  If you implement the changes under sys/conf/files or affiliate,
you bump the required version in sys/conf/files or in an appropriate place
to minimise annoyance.  If the changes makes new config(1) incompatible
with a previous version of config(5), embed it in config(1) using the
CONFIG_MINVERSION definition along with CONFIG_VERSION.

This has been in the tree for what, 3 years now?  It's even documented...
2008-06-10 14:03:57 +00:00
drochner
1f0a423884 use new "defpseudodev" where appropriate, and remove dummy interface
attribute definitions which were only to trick config(8)
2008-06-10 12:49:16 +00:00
ad
884b58c222 Put a dummy function in here that uses a couple of the types.
Otherwise, gcc won't emit any debug info.
2008-06-06 13:21:00 +00:00
jmcneill
3a8a32076d Add DRVGETEVENT support for /dev/drvctl, based on devmon support by
Jachym Holecek for Google Summer of Code. DRVGETEVENT plist is currently
limited to event type, device name, and device parent name.
2008-05-25 12:30:40 +00:00
dholland
0c2366cfe9 Print kernel version string along with the size output, to avoid having
to dig it out manually if installing by version number... and also to
make it somewhat easier to notice up front if one accidentally boots
the wrong test kernel. not like I've ever done that. ;-)

PR kern/38563.
2008-05-14 18:15:41 +00:00
ad
3b0a20c6a8 Fix previous. 2008-05-05 13:42:15 +00:00
ad
2bbb14eaa4 Back out previous. It broke the build. 2008-05-05 13:41:29 +00:00
ad
b407147f14 Move zlib out of net/ and into kern/. It would probably be better to use
the reachover Makefiles and libz, but this is already here and it works.
2008-05-04 23:07:09 +00:00
martin
11a6dbe728 Convert TNF licenses to new 2 clause variant 2008-04-30 13:10:46 +00:00
rmind
1942fc2548 Split the runqueue management code into the separate file.
OK by <ad>.
2008-04-29 14:35:20 +00:00
ad
678e546158 -defflag PREEMPTION 2008-04-28 22:46:40 +00:00
ad
343816f86a defopt PREEMPTION 2008-04-28 15:46:48 +00:00
thorpej
34908fe541 Add subroutines to support collating per-cpu-gathered network statistics. 2008-04-23 05:21:17 +00:00
dyoung
d3627477d7 Certain misguided people have complained, NetBSD only runs rare or
"retro" computers, but NetBSD also runs a growing number of rare
and retro add-on cards.  With this patch, NetBSD supports the IDEC
Supervision/16, a black&white image capture board for the 16-bit
ISA bus.  Approximate date of manufacture: 1991.  Total instances
known to be in use throughout the world: one.

Coming soon; isvctl(8), the utility program for capturing 8-bit,
512x480 images at speeds of up to 6 frames per second.
2008-04-02 01:34:36 +00:00
skrll
770e609eb3 Add support for NCR 53C720 found on various machines/attachments.
From OpenBSD (Mark Kettenis)
2008-03-30 12:32:13 +00:00
skrll
c36ab687e9 Tidyup the attachment of various devices in the same way as OpenBSD and
use the same name.

Must have been funny to someone.
2008-03-29 15:59:25 +00:00
ad
f280ebae4b ALIGNBYTES + 1, not ALIGNBYTES in previous. 2008-03-27 18:44:21 +00:00
ad
0f33676c6c Introduce COHERENCY_UNIT/coherency_unit as proposed on tech-kern. 2008-03-27 18:28:20 +00:00
jmmv
3f1571cbcf Fix flags for kern_synch.c: it is COPTS.<cfile>, not CFLAGS.<cfile>. 2008-03-24 18:03:27 +00:00
ad
3acbed8e48 Split select/poll into their own file. 2008-03-23 14:02:49 +00:00
ad
a9ca7a3734 Catch up with descriptor handling changes. See kern_descrip.c revision
1.173 for details.
2008-03-21 21:54:58 +00:00
ad
3bd2b6fba5 Add a 'maxcpus' global. 2008-03-15 14:55:22 +00:00
mjacob
70944bcde1 Make some changes to isp(4) options: add a disable for 2322 suppport;
remove the option for firmware crash dumps; add a ISP_VPORTS option
for virtual ports (24XX, coming soon).
2008-03-11 05:24:38 +00:00
matt
5823597dfd Since we say the kernel is C99, add -std=gnu99 to COPTS 2008-02-25 05:56:13 +00:00
isaki
7c60b08fd1 slhci also shares usbroothub_subr. 2008-02-24 05:29:31 +00:00
matt
c9cd44128e Add assym.d to DEPS so it gets properly cleaned. 2008-02-23 17:43:36 +00:00
drochner
bb33f35f20 Since files.wscons et al. are included by ~all ports anyway, include
them in the mi "files" file, and remove include statements from md files.
These shouldn't pull in additional kernel code when not in use, so it
shouldn't do any harm except a risk of namespace collisions which
should be easy to fix.
2008-02-20 21:43:33 +00:00
martin
6ba1a4c045 defflag CPU_IN_CKSUM 2008-02-03 13:25:57 +00:00
drochner
d9459c5f21 share some code for USB root hub emulation which is common in the 3
host controller implementations, start with two little functions
which fake up string descriptors (which were inconststent, language
table fetching didn't interoperate with other code in the tree)
2008-02-03 10:57:11 +00:00
matt
06531ceafe Add a syntax-only target which attempts to compile the entire kernel as one
entity.  Think of it as super-lint.  Due to bugs in the GCC C frontend it
doesn't quite work right but it does provide useful feedback.
2008-02-03 06:46:29 +00:00
dholland
717e1785a5 Fix some race conditions in rename.
Introduce a per-FS rename lock and new vfsops to manipulate it.
Get this lock while renaming. Also add another relookup() in do_sys_rename,
which is a hack to kludge around some of the worst deficiencies of
ufs_rename.
reviewed-by: pooka (and an earlier rev by ad)
posted on tech-kern with no objections.
2008-01-28 14:31:15 +00:00
joerg
6e869e402d Refactor in_cksum/in4_cksum/in6_cksum implementations:
- All three functions are included in the kernel by default.
  They call a backend function cpu_in_cksum after possibly
  computing the checksum of the pseudo header.
- cpu_in_cksum is the core to implement the one-complement sum.
  The default implementation is moderate fast on most platforms
  and provides a 32bit accumulator with 16bit addends for L32 platforms
  and a 64bit accumulator with 32bit addends for L64 platforms.
  It handles edge cases like very large mbuf chains (could happen with
  native IPv6 in the future) and provides a good base for new native
  implementations.
- Modify i386 and amd64 assembly to use the new interface.

This disables the MD implementations on !x86 until the conversion is
done. For Alpha, the portable version is faster.
2008-01-25 21:12:10 +00:00
joerg
0d7c94dad4 Add a stub file that includes a bunch of kernel headers and always get
compiled with -g. For the initial set, netbsd on amd64 grows by around
80KB. This allows much easier use of GDB for post-mortem debugging as
it can understand the layout of data structures. The additional data can
be strip(1)ped off normally for size constraint environments.
2008-01-17 20:14:49 +00:00
lukem
14c9fc8ffa Remove unnecessary references to config_time.h. 2008-01-17 01:56:02 +00:00
lukem
8b267ec022 Use BUILDSYMLINKS from <bsd.files.mk> instead of custom copy rules
for config_time.h and athhal_options.h.

Note: we still copy param.c because I'm told that we should still support
people editing that on a per-compile basis.
2008-01-17 01:13:01 +00:00
ad
bbc79e58a6 Pull in my modules code for review/test/hacking. 2008-01-16 12:34:50 +00:00
rmind
5c71a4d49f Implementation of processor-sets, affinity and POSIX real-time extensions.
Add schedctl(8) - a program to control scheduling of processes and threads.

Notes:
- This is supported only by SCHED_M2;
- Migration of LWP mechanism will be revisited;

Proposed on: <tech-kern>. Reviewed by: <ad>.
2008-01-15 03:37:10 +00:00
yamt
ea8e75911e add a per-cpu storage allocator. 2008-01-14 12:40:02 +00:00
ad
0805a9416a Add MODULAR option. Include kernel linker stuff if MODULAR. 2008-01-06 18:03:58 +00:00
yamt
48a1e4c2c1 a simple performance monitor based profiler, inspired from linux oprofile. 2008-01-01 21:28:37 +00:00
ad
90d0dce26b Welcome to 2008.
Don't forget to update copyright notices when you add new code.
2008-01-01 00:00:18 +00:00
ad
2ecdf58c2c Remove systrace. Ok core@. 2007-12-31 15:31:24 +00:00
ad
9f6b8c4d04 Remove COMPAT_HPUX. 2007-12-31 13:38:47 +00:00
christos
65c680cad7 Add PaX ASLR (Address Space Layout Randomization) [from elad and myself]
For regular (non PIE) executables randomization is enabled for:
    1. The data segment
    2. The stack

For PIE executables(*) randomization is enabled for:
    1. The program itself
    2. All shared libraries
    3. The data segment
    4. The stack

(*) To generate a PIE executable:
    - compile everything with -fPIC
    - link with -shared-libgcc -Wl,-pie

This feature is experimental, and might change. To use selectively add
    options PAX_ASLR=0
in your kernel.

Currently we are using 12 bits for the stack, program, and data segment and
16 or 24 bits for mmap, depending on __LP64__.
2007-12-26 22:11:47 +00:00
ad
ea3f10f7e0 Merge more changes from vmlocking2, mainly:
- Locking improvements.
- Use pool_cache for more items.
2007-12-26 16:01:34 +00:00
ad
c2e7ec2566 Reserve a major for ZFS. 2007-12-24 15:12:05 +00:00
garbled
41918d8024 Move the elink probe code from files.isa to the common conf/files so that
MCA without isa can compile.  fix by cube.
2007-12-13 21:23:48 +00:00
joerg
151d068190 Add glue for x86emu and build it as part of i386/ALL. 2007-12-13 17:25:19 +00:00
jmcneill
4c1d81b2b5 Merge jmcneill-pm branch. 2007-12-09 20:27:42 +00:00
jnemeth
bf33c34cf5 add dev/ofw/ofw_subr.c to VARSTACK 2007-11-29 01:39:27 +00:00