freebsd-skq/sys/kern
sam b16cb0a948 Correct mbuf packet header propagation. Previously, packet headers
were sometimes propagated using M_COPY_PKTHDR which actually did
something between a "move" and a  "copy" operation.  This is replaced
by M_MOVE_PKTHDR (which copies the pkthdr contents and "removes" it
from the source mbuf) and m_dup_pkthdr which copies the packet
header contents including any m_tag chain.  This corrects numerous
problems whereby mbuf tags could be lost during packet manipulations.

These changes also introduce arguments to m_tag_copy and m_tag_copy_chain
to specify if the tag copy work should potentially block.  This
introduces an incompatibility with openbsd which we may want to revisit.

Note that move/dup of packet headers does not handle target mbufs
that have a cluster bound to them.  We may want to support this;
for now we watch for it with an assert.

Finally, M_COPYFLAGS was updated to include M_FIRSTFRAG|M_LASTFRAG.

Supported by:	Vernier Networks
Reviewed by:	Robert Watson <rwatson@FreeBSD.org>
2002-12-30 20:22:40 +00:00
..
bus_if.m Add two interfaces to allow for busses to report the pnpinfo for 2002-10-07 05:06:38 +00:00
clock_if.m
device_if.m
genassym.sh
imgact_aout.c Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
imgact_elf32.c Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable 2002-07-20 02:56:12 +00:00
imgact_elf64.c Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable 2002-07-20 02:56:12 +00:00
imgact_elf.c Fix multiple registration of the elf_legacy_coredump sysctl variable. 2002-12-21 01:15:39 +00:00
imgact_elfN.c Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable 2002-07-20 02:56:12 +00:00
imgact_gzip.c Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
imgact_shell.c Remove reference to struct execve_args from struct imgact, which 2002-11-05 01:59:56 +00:00
inflate.c
init_main.c Add code to ddb to allow backtracing an arbitrary thread. 2002-12-28 01:23:07 +00:00
init_sysent.c Regen from syscalls.master:1.139 2002-12-29 20:26:41 +00:00
kern_acct.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
kern_acl.c Implement new ACL system calls which do not follow symbolic links: 2002-12-29 20:28:44 +00:00
kern_alq.c - Export the alq daemon thread pointer. 2002-09-26 07:38:56 +00:00
kern_clock.c 1. Support versioning and wall clock in kse mailbox, 2002-11-18 01:59:31 +00:00
kern_condvar.c Add code to ddb to allow backtracing an arbitrary thread. 2002-12-28 01:23:07 +00:00
kern_conf.c Remove unused cdevsw_ALLOCSTART macro. 2002-12-28 21:47:43 +00:00
kern_context.c Add getcontext, setcontext, and swapcontext as system calls. 2002-11-16 06:35:53 +00:00
kern_descrip.c Improve consistency between devfs and MAKEDEV: use UID_ROOT and 2002-12-27 16:54:44 +00:00
kern_environment.c remove syscallarg(). 2002-12-14 02:07:32 +00:00
kern_event.c White-space changes. 2002-12-24 09:44:51 +00:00
kern_exec.c Hold the page queues lock when performing vm_page_busy(). 2002-12-18 20:16:22 +00:00
kern_exit.c Fix a refcount race with the vmspace structure. In order to prevent 2002-12-15 18:50:04 +00:00
kern_fork.c Add code to ddb to allow backtracing an arbitrary thread. 2002-12-28 01:23:07 +00:00
kern_idle.c - Create a new scheduler api that is defined in sys/sched.h 2002-10-12 05:32:24 +00:00
kern_intr.c Don't put a newline in KTR traces. 2002-12-28 23:22:22 +00:00
kern_jail.c Don't forget to destroy the mutex if an error occurs 2002-12-20 14:32:20 +00:00
kern_kse.c Add code to ddb to allow backtracing an arbitrary thread. 2002-12-28 01:23:07 +00:00
kern_kthread.c Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
kern_ktr.c - Export the alq daemon thread pointer. 2002-09-26 07:38:56 +00:00
kern_ktrace.c Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
kern_linker.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
kern_lock.c Remove a race condition / deadlock from snapshots. When 2002-11-30 19:00:51 +00:00
kern_lockf.c - Fix a bunch of casts to long which were truncating off_t's. 2002-11-07 21:56:05 +00:00
kern_mac.c SCARGS removal take II. 2002-12-14 01:56:26 +00:00
kern_malloc.c Introduce malloc_last_fail() which returns the number of seconds since 2002-11-01 18:58:12 +00:00
kern_mib.c Move the definitions of the hw.physmem, hw.usermem and hw.availpages 2002-11-07 23:57:17 +00:00
kern_module.c SCARGS removal take II. 2002-12-14 01:56:26 +00:00
kern_mtxpool.c
kern_mutex.c Disable the kernacc() check in mtx_validate() until such time that kernacc 2002-10-25 08:40:20 +00:00
kern_ntptime.c Remove an unused variable. 2002-10-11 10:36:22 +00:00
kern_physio.c Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
kern_poll.c Increase size of ifnet.if_flags from 16 bits (short) to 32 bits (int). To avoid 2002-08-18 07:05:00 +00:00
kern_proc.c - Add the new sched_pctcpu() function to the sched_* api. 2002-11-21 09:30:55 +00:00
kern_prot.c Include file cleanup; mac.h and malloc.h at one point had ordering 2002-08-01 17:47:56 +00:00
kern_resource.c - Create a new scheduler api that is defined in sys/sched.h 2002-10-12 05:32:24 +00:00
kern_sema.c
kern_shutdown.c During shutdown explain what the numbers following the 'syncing 2002-11-18 02:41:03 +00:00
kern_sig.c Add code to ddb to allow backtracing an arbitrary thread. 2002-12-28 01:23:07 +00:00
kern_subr.c Reduce the number of times that we acquire and release the page queues 2002-12-29 07:17:06 +00:00
kern_switch.c Add code to ddb to allow backtracing an arbitrary thread. 2002-12-28 01:23:07 +00:00
kern_sx.c
kern_synch.c Add code to ddb to allow backtracing an arbitrary thread. 2002-12-28 01:23:07 +00:00
kern_syscalls.c
kern_sysctl.c Implement mac_check_system_sysctl(), a MAC Framework entry point to 2002-10-27 07:12:34 +00:00
kern_tc.c Introduce a "time_uptime" global variable which holds the time since boot 2002-11-01 18:52:20 +00:00
kern_thread.c Add code to ddb to allow backtracing an arbitrary thread. 2002-12-28 01:23:07 +00:00
kern_time.c add generic rate limiting support from netbsd; ratelimit is purely time based, 2002-12-20 23:54:47 +00:00
kern_timeout.c Fix a format buglet. 2002-09-05 11:42:03 +00:00
kern_uuid.c SMP locking for ifnet list. 2002-12-22 05:35:03 +00:00
kern_xxx.c more caddr_t removal. 2002-06-29 02:00:02 +00:00
ksched.c headers should not really include "opt_foo.h" (in this case opt_posix.h). 2002-11-15 22:55:06 +00:00
link_elf_obj.c Merge kld access control checks from the MAC tree: these access control 2002-11-19 22:12:42 +00:00
link_elf.c Merge kld access control checks from the MAC tree: these access control 2002-11-19 22:12:42 +00:00
linker_if.m
Make.tags.inc
Makefile
makesyscalls.sh The syscall names are string constants, so make them consts. 2002-10-29 15:47:06 +00:00
md4c.c
md5c.c We have memset() and memcpy() in the kernel now, so we don't need to 2002-10-20 22:33:42 +00:00
p1003_1b.c headers should not really include "opt_foo.h" (in this case opt_posix.h). 2002-11-15 22:55:06 +00:00
posix4_mib.c Rework the sysconf(3) interaction with aio: 2002-11-17 04:15:34 +00:00
sched_4bsd.c Add code to ddb to allow backtracing an arbitrary thread. 2002-12-28 01:23:07 +00:00
subr_acl_posix1e.c Implement new ACL system calls which do not follow symbolic links: 2002-12-29 20:28:44 +00:00
subr_autoconf.c
subr_blist.c This is David Schultz's swapoff code which I am finally able to commit. 2002-12-15 19:17:57 +00:00
subr_bus.c devd kernel improvements: 2002-11-30 00:49:43 +00:00
subr_clist.c
subr_clock.c Use the CPU_* OID constants instead of OID_AUTO for the clock-related 2002-08-07 19:43:54 +00:00
subr_devstat.c Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
subr_disk.c This checkin reimplements the io-request priority hack in a way 2002-10-22 00:59:49 +00:00
subr_disklabel.c (This commit touches about 15 disk device drivers in a very consistent 2002-09-20 19:36:05 +00:00
subr_diskmbr.c Split MBR and PC98 on-disk sliceformats out from disklabel.h, step 1: 2002-10-01 07:24:55 +00:00
subr_diskslice.c Indent properly. 2002-12-17 19:31:26 +00:00
subr_eventhandler.c Wrap a line longer than 80 characters. 2002-07-19 17:44:44 +00:00
subr_hints.c
subr_kobj.c Convert hit and miss counters to unsigned values. Surely negative values 2002-06-10 22:40:26 +00:00
subr_log.c Make the msg_size, msg_bufx and msg_bufr memebers of struct msgbuf 2002-11-14 16:11:12 +00:00
subr_mbuf.c o Initialise each mbuf's m_len to 0 in m_getm(); mb_put_mem() depends 2002-11-27 04:26:00 +00:00
subr_mchain.c Remove the hto(be|le)[slq] and (be|le)toh[slq] macros defined in 2002-12-16 16:20:06 +00:00
subr_module.c
subr_param.c Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
subr_pcpu.c
subr_power.c Use ISO 9X variadic macro format; arguments are not optional, just 2002-07-15 17:17:56 +00:00
subr_prf.c Make the msg_size, msg_bufx and msg_bufr memebers of struct msgbuf 2002-11-14 16:11:12 +00:00
subr_prof.c Don't #error if we are lint. 2002-10-01 13:15:11 +00:00
subr_rman.c Make the rman_{get,set}_* macros into real functions. The macros 2002-11-27 03:55:22 +00:00
subr_rtc.c Use the CPU_* OID constants instead of OID_AUTO for the clock-related 2002-08-07 19:43:54 +00:00
subr_sbuf.c Add the new function "sbuf_done()" which returns non-zero if the sbuf is 2002-10-04 09:58:17 +00:00
subr_scanf.c Fix mis-indentation. 2002-10-02 09:09:25 +00:00
subr_smp.c Add a tunable kern.smp.disabled for disabling explicitly smp on an smp 2002-12-28 23:21:13 +00:00
subr_taskqueue.c If we fail to write to a vnode during a ktrace write, then we drop all 2002-08-01 13:35:38 +00:00
subr_trap.c Add code to ddb to allow backtracing an arbitrary thread. 2002-12-28 01:23:07 +00:00
subr_turnstile.c Disable the kernacc() check in mtx_validate() until such time that kernacc 2002-10-25 08:40:20 +00:00
subr_witness.c - Add a spin lock to single thread cache invalidation and tlb flush ipis, 2002-12-22 20:50:23 +00:00
subr_xxx.c
sys_generic.c SCARGS removal take II. 2002-12-14 01:56:26 +00:00
sys_pipe.c White-space changes. 2002-12-24 09:44:51 +00:00
sys_process.c Add a missing PROC_UNLOCK in ptrace() for the PT_IO case. 2002-10-16 16:28:33 +00:00
sys_socket.c s/sokqfilter/soo_kqfilter/ for consistency with the naming of all 2002-12-23 21:37:28 +00:00
syscalls.c Regen from syscalls.master:1.139 2002-12-29 20:26:41 +00:00
syscalls.master Add definitions for four new system calls: 2002-12-29 20:25:54 +00:00
sysv_ipc.c
sysv_msg.c o Clear a high bit of ipc_perm.seq so msgget(3) never returns a 2002-12-15 09:41:46 +00:00
sysv_sem.c Don't leak memory in semop(2). (Fix a bug I introduced in rev 1.55.) 2002-10-19 02:07:35 +00:00
sysv_shm.c return foo -> return (foo) 2002-08-15 02:10:12 +00:00
tty_compat.c
tty_conf.c
tty_cons.c Remove unused variable cn_devfsdev. 2002-12-17 19:30:50 +00:00
tty_pty.c Remove cdevsw_add calls, they are deprecated. 2002-12-28 21:39:46 +00:00
tty_subr.c
tty_tty.c Pass active_cred and file_cred into the MAC framework explicitly 2002-08-19 19:04:53 +00:00
tty.c In an SMP environment post-Giant it is no longer safe to blindly 2002-10-03 02:13:00 +00:00
uipc_accf.c
uipc_cow.c Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
uipc_domain.c Back out my lats commit of locking down a socket, it conflicts with hsu's work. 2002-05-31 11:52:35 +00:00
uipc_jumbo.c o Lock page queue accesses by vm_page_free(). 2002-07-21 19:06:46 +00:00
uipc_mbuf2.c Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
uipc_mbuf.c Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
uipc_proto.c
uipc_sem.c Be consistent about funtions being static. 2002-10-16 10:42:13 +00:00
uipc_sockbuf.c Spotted a couple of places where the socket buffer's counters were being 2002-11-05 18:52:25 +00:00
uipc_socket2.c Spotted a couple of places where the socket buffer's counters were being 2002-11-05 18:52:25 +00:00
uipc_socket.c s/sokqfilter/soo_kqfilter/ for consistency with the naming of all 2002-12-23 21:37:28 +00:00
uipc_syscalls.c Move the declaration of the socket fileops from socketvar.h to file.h. 2002-12-23 22:46:47 +00:00
uipc_usrreq.c Ensure that the made-up inode number for a Unix domain socket is persistent. 2002-12-25 07:59:39 +00:00
vfs_acl.c Implement new ACL system calls which do not follow symbolic links: 2002-12-29 20:28:44 +00:00
vfs_aio.c Lock filedesc while performing a range check on the file descriptor. 2002-12-27 08:39:42 +00:00
vfs_bio.c Hold the page queues lock when calling vm_page_flag_clear(). 2002-12-27 06:52:32 +00:00
vfs_cache.c Split up __getcwd so that kernel callers of the internal version 2002-09-02 22:40:30 +00:00
vfs_cluster.c - Use %j to print intmax_t values. 2002-11-07 22:41:08 +00:00
vfs_default.c Don't try to be cute and save a call/return by implementing a degenerate 2002-10-24 17:55:49 +00:00
vfs_export.c SMP locking for radix nodes. 2002-12-24 03:03:39 +00:00
vfs_extattr.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
vfs_init.c We don't need to check the return value of malloc() against 2002-06-22 21:44:11 +00:00
vfs_lookup.c Add a new 'NOMACCHECK' flag to namei() NDINIT flags, which permits the 2002-10-19 21:25:51 +00:00
vfs_mount.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
vfs_subr.c Add a new vnode flag VI_DOINGINACT to indicate that a VOP_INACTIVE 2002-12-29 18:30:49 +00:00
vfs_syscalls.c unwrap lines made short enough by SCARGS removal 2002-12-14 08:18:06 +00:00
vfs_vnops.c Abstract-out the constants for the sequential heuristic. 2002-12-28 20:28:10 +00:00
vnode_if.src Flush vop_refreshlabel() definition, since it is no longer used. 2002-12-24 19:47:13 +00:00