m_tag(9)
- NetBSD Manual Pages
M_TAG(9) NetBSD Kernel Developer's Manual M_TAG(9)
NAME
m_tag, m_tag_get, m_tag_free, m_tag_prepend, m_tag_unlink, m_tag_delete,
m_tag_delete_chain, m_tag_delete_nonpersistent, m_tag_find, m_tag_copy,
m_tag_copy_chain, m_tag_init, m_tag_first, m_tag_next -- mbuf tagging
interfaces
SYNOPSIS
#include <sys/mbuf.h>
struct m_tag *
m_tag_get(int type, int len, int wait);
void
m_tag_free(struct m_tag *t);
void
m_tag_prepend(struct mbuf *m, struct m_tag *t);
void
m_tag_unlink(struct mbuf *m, struct m_tag *t);
void
m_tag_delete(struct mbuf *m, struct m_tag *t);
void
m_tag_delete_chain(struct mbuf *m, struct m_tag *t);
void
m_tag_delete_nonpersistent(struct mbuf *);
struct m_tag *
m_tag_find(struct mbuf *m, int type, struct m_tag *t);
struct m_tag *
m_tag_copy(struct m_tag *m);
int
m_tag_copy_chain(struct mbuf *to, struct mbuf *from);
void
m_tag_init(struct mbuf *m);
struct m_tag *
m_tag_first(struct mbuf *m);
struct m_tag *
m_tag_next(struct mbuf *m, struct m_tag *t);
DESCRIPTION
The m_tag interface is used to ``tag'' mbufs.
FUNCTIONS
m_tag_get(type, len, wait)
Allocate an mbuf tag. type is one of the PACKET_TAG_ macros.
len is the size of the data associated with the tag, in bytes.
wait is either M_WAITOK or M_NOWAIT.
m_tag_free(t)
Free the mbuf tag t.
m_tag_prepend(m, t)
Prepend the mbuf tag t to the mbuf m. t will become the first
tag of the mbuf m. When m is freed, t will also be freed.
m_tag_unlink(m, t)
Unlink the mbuf tag t from the mbuf m.
m_tag_delete(m, t)
The same as m_tag_unlink() followed by m_tag_free().
m_tag_delete_chain(m, t)
Unlink and free mbuf tags beginning with the mbuf tag t from the
mbuf m. If t is NULL, m_tag_delete_chain() unlinks and frees
all mbuf tags associated with the mbuf m.
m_tag_delete_nonpersistent(m)
Unlink and free all non persistent tags associated with the mbuf
m.
m_tag_find(m, type, t)
Find an mbuf tag with type type after the mbuf tag t in the tag
chain associated with the mbuf m. If t is NULL, search from the
first mbuf tag. If an mbuf tag is found, return a pointer to
it. Otherwise return NULL.
m_tag_copy(t)
Copy an mbuf tag t. Return a new mbuf tag on success. Other-
wise return NULL.
m_tag_copy_chain(to, from)
Copy all mbuf tags associated with the mbuf from to the mbuf to.
If to already has any mbuf tags, they will be unlinked and freed
beforehand. Return 1 on success. Otherwise return 0.
m_tag_init(m)
Initialize mbuf tag chain of the mbuf m.
m_tag_first(m)
Return the first mbuf tag associated with the mbuf m. Return
NULL if no mbuf tags are found.
m_tag_next(m, t)
Return the next mbuf tag after t associated with the mbuf m.
Return NULL if t is the last tag in the chain.
CODE REFERENCES
The mbuf tagging interfaces are implemented within the file
sys/kern/uipc_mbuf2.c.
The PACKET_TAG_ macros are defined in the file sys/sys/mbuf.h.
SEE ALSO
intro(9), malloc(9), mbuf(9)
BUGS
The semantics of the term "persistent tag" are vague.
NetBSD 6.0.3 September 7, 2004 NetBSD 6.0.3
Powered by man-cgi (2024-08-24).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.