summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_mbuf.c
diff options
context:
space:
mode:
authorkmacy <kmacy@FreeBSD.org>2009-06-19 21:14:39 +0000
committerkmacy <kmacy@FreeBSD.org>2009-06-19 21:14:39 +0000
commit573bf496149c53a0d3a6a3a77491dc10007a5ee0 (patch)
treea5884bc37f95c123364b1ff08ba5ba32be693afb /sys/kern/kern_mbuf.c
parent55f686804402b9ab9f0b0a61f96997ad8ec34878 (diff)
downloadFreeBSD-src-573bf496149c53a0d3a6a3a77491dc10007a5ee0.zip
FreeBSD-src-573bf496149c53a0d3a6a3a77491dc10007a5ee0.tar.gz
define helper routines for deferred mbuf initialization
Diffstat (limited to 'sys/kern/kern_mbuf.c')
-rw-r--r--sys/kern/kern_mbuf.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/sys/kern/kern_mbuf.c b/sys/kern/kern_mbuf.c
index 80274ed..67c955c 100644
--- a/sys/kern/kern_mbuf.c
+++ b/sys/kern/kern_mbuf.c
@@ -645,6 +645,32 @@ mb_ctor_pack(void *mem, int size, void *arg, int how)
return (0);
}
+int
+m_pkthdr_init(struct mbuf *m, int how)
+{
+#ifdef MAC
+ int error;
+#endif
+ m->m_data = m->m_pktdat;
+ SLIST_INIT(&m->m_pkthdr.tags);
+ m->m_pkthdr.rcvif = NULL;
+ m->m_pkthdr.header = NULL;
+ m->m_pkthdr.len = 0;
+ m->m_pkthdr.flowid = 0;
+ m->m_pkthdr.csum_flags = 0;
+ m->m_pkthdr.csum_data = 0;
+ m->m_pkthdr.tso_segsz = 0;
+ m->m_pkthdr.ether_vtag = 0;
+#ifdef MAC
+ /* If the label init fails, fail the alloc */
+ error = mac_mbuf_init(m, how);
+ if (error)
+ return (error);
+#endif
+
+ return (0);
+}
+
/*
* This is the protocol drain routine.
*
OpenPOWER on IntegriCloud