freebsd-dev/sys
Marko Zec f6dfe47a14 Permit buiding kernels with options VIMAGE, restricted to only a single
active network stack instance.  Turning on options VIMAGE at compile
time yields the following changes relative to default kernel build:

1) V_ accessor macros for virtualized variables resolve to structure
fields via base pointers, instead of being resolved as fields in global
structs or plain global variables.  As an example, V_ifnet becomes:

    options VIMAGE:          ((struct vnet_net *) vnet_net)->_ifnet
    default build:           vnet_net_0._ifnet
    options VIMAGE_GLOBALS:  ifnet

2) INIT_VNET_* macros will declare and set up base pointers to be used
by V_ accessor macros, instead of resolving to whitespace:

    INIT_VNET_NET(ifp->if_vnet); becomes

    struct vnet_net *vnet_net = (ifp->if_vnet)->mod_data[VNET_MOD_NET];

3) Memory for vnet modules registered via vnet_mod_register() is now
allocated at run time in sys/kern/kern_vimage.c, instead of per vnet
module structs being declared as globals.  If required, vnet modules
can now request the framework to provide them with allocated bzeroed
memory by filling in the vmi_size field in their vmi_modinfo structures.

4) structs socket, ifnet, inpcbinfo, tcpcb and syncache_head are
extended to hold a pointer to the parent vnet.  options VIMAGE builds
will fill in those fields as required.

5) curvnet is introduced as a new global variable in options VIMAGE
builds, always pointing to the default and only struct vnet.

6) struct sysctl_oid has been extended with additional two fields to
store major and minor virtualization module identifiers, oid_v_subs and
oid_v_mod.  SYSCTL_V_* family of macros will fill in those fields
accordingly, and store the offset in the appropriate vnet container
struct in oid_arg1.
In sysctl handlers dealing with virtualized sysctls, the
SYSCTL_RESOLVE_V_ARG1() macro will compute the address of the target
variable and make it available in arg1 variable for further processing.

Unused fields in structs vnet_inet, vnet_inet6 and vnet_ipfw have
been deleted.

Reviewed by:	bz, rwatson
Approved by:	julian (mentor)
2009-04-30 13:36:26 +00:00
..
amd64 - Add support for cpuid leaf 0xb. This allows us to determine the 2009-04-29 06:54:40 +00:00
arm Reduce the number of bounce zones (and thus the number of bounce pages 2009-04-23 20:24:19 +00:00
boot A simple rewrite of biossmap.c: 2009-04-15 17:31:22 +00:00
bsm Merge OpenBSM 1.1 from OpenBSM vendor branch to head. 2009-04-19 16:17:13 +00:00
cam Get rid of the device index number stored in the sa(4) unit number. 2009-04-20 10:40:42 +00:00
cddl Introduce the extensible jail framework, using the same "name=value" 2009-04-29 21:14:15 +00:00
compat Regen for new jail system calls in r191673. 2009-04-29 21:50:13 +00:00
conf Bite the bullet, and make the IPv6 SSM and MLDv2 mega-commit: 2009-04-29 19:19:13 +00:00
contrib In preparation for turning on options VIMAGE in next commits, 2009-04-26 22:06:42 +00:00
crypto identify routine takes driver_t *, not device_t *. 2009-02-05 19:30:28 +00:00
ddb Prefer prototypes to k&r definitions. 2009-03-09 13:32:19 +00:00
dev Add experimental support for SATA interface power management. 2009-04-29 21:17:18 +00:00
fs Remove VOP_LEASE and supporting functions. This hasn't been used since 2009-04-10 10:52:19 +00:00
gdb
geom - Remove assertion of topology lock remaining from 7.x gvinum. It is not needed, 2009-04-18 16:36:27 +00:00
gnu Fix two issues with bufdaemon, often causing the processes to hang in 2009-03-16 15:39:46 +00:00
i386 - Add support for cpuid leaf 0xb. This allows us to determine the 2009-04-29 06:54:40 +00:00
ia64 Remove isa_irq_pending(). It's not used. 2009-04-24 03:43:20 +00:00
isa Allow syscons to work on amd64 and i386 without any hints: 2009-03-05 19:10:17 +00:00
kern Permit buiding kernels with options VIMAGE, restricted to only a single 2009-04-30 13:36:26 +00:00
kgssapi
legacy/dev Remove kue_fw.h, missed in previous IFF_NEEDSGIANT USB driver garbage 2009-04-17 09:48:20 +00:00
libkern Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
mips Don't conditionally define CACHE_LINE_SHIFT, as we anticipate sizing 2009-04-20 12:59:23 +00:00
modules Build sound modules on PowerPC. 2009-04-19 21:37:45 +00:00
net Permit buiding kernels with options VIMAGE, restricted to only a single 2009-04-30 13:36:26 +00:00
net80211 Store the tx seq# of an 802.11 frame in the mbuf pkthdr; this will be 2009-04-27 17:39:41 +00:00
netatalk Lock interface address list lock around ifaddr inserts and deletes 2009-04-19 22:01:38 +00:00
netgraph In preparation to make options VIMAGE operational, where needed, 2009-04-26 07:14:50 +00:00
netinet Permit buiding kernels with options VIMAGE, restricted to only a single 2009-04-30 13:36:26 +00:00
netinet6 Permit buiding kernels with options VIMAGE, restricted to only a single 2009-04-30 13:36:26 +00:00
netipsec Permit buiding kernels with options VIMAGE, restricted to only a single 2009-04-30 13:36:26 +00:00
netipx Make the SPX code use its own copies of insque()/remque(). 2009-04-26 21:03:27 +00:00
netnatm Remove IFF_NEEDSGIANT, a compatibility infrastructure introduced 2009-03-15 14:21:05 +00:00
netncp
netsmb
nfs Adding sys/nfs/nfssvc.h and sys/nfs/nfs_nfssvc.c in preparation for 2009-04-07 19:06:51 +00:00
nfs4client Remove VOP_LEASE and supporting functions. This hasn't been used since 2009-04-10 10:52:19 +00:00
nfsclient Remove trailing spaces 2009-04-13 19:54:33 +00:00
nfsserver Change nfsserver so that it uses the nfssvc() system call provided 2009-04-12 19:04:27 +00:00
nlm
opencrypto Fix return type for detach routine (should be int) 2009-02-05 17:43:12 +00:00
pc98 Migrate the olpt(4) driver to si_drv1 instead of using dev2unit(). 2009-04-15 19:58:41 +00:00
pci For RTL8139C+ controllers, have controller handle padding short 2009-04-20 07:13:04 +00:00
powerpc Zero PCB during early AIM PowerPC init. 2009-04-24 08:57:54 +00:00
rpc Added a field to the SVCXPRT structure that the nfsv4 server can 2009-04-16 16:26:35 +00:00
security Temporarily relax the constraints on argument size checking for A_GETCOND; 2009-04-19 23:28:08 +00:00
sparc64 Don't conditionally define CACHE_LINE_SHIFT, as we anticipate sizing 2009-04-20 12:59:23 +00:00
sun4v Don't conditionally define CACHE_LINE_SHIFT, as we anticipate sizing 2009-04-20 12:59:23 +00:00
sys Permit buiding kernels with options VIMAGE, restricted to only a single 2009-04-30 13:36:26 +00:00
tools Add SDT DTrace probes for VFS vnode operations in the vfs:vop 2009-03-29 03:30:15 +00:00
ufs Change the semantics of i_modrev/va_filerev to what is required for 2009-04-27 16:46:16 +00:00
vm Use the acquired reference to the vmspace instead of direct dereferencing 2009-04-28 11:45:36 +00:00
xdr Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
xen Fix the Xen build for i386 PV mode. 2009-04-01 17:06:28 +00:00
Makefile Removal pccard directory requires removing it from the list of things 2009-02-15 18:19:24 +00:00