diff options
author | kmacy <kmacy@FreeBSD.org> | 2009-06-19 21:14:39 +0000 |
---|---|---|
committer | kmacy <kmacy@FreeBSD.org> | 2009-06-19 21:14:39 +0000 |
commit | 573bf496149c53a0d3a6a3a77491dc10007a5ee0 (patch) | |
tree | a5884bc37f95c123364b1ff08ba5ba32be693afb /sys/kern/kern_mbuf.c | |
parent | 55f686804402b9ab9f0b0a61f96997ad8ec34878 (diff) | |
download | FreeBSD-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.c | 26 |
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. * |