SLIST_INSERT_HEAD(&m->m_pkthdr.tags, t, m_tag_link);
}
+/*
+ * Return the next tag in the list of tags associated with an mbuf.
+ */
+static __inline struct m_tag *
+m_tag_next(struct mbuf *m, struct m_tag *t)
+{
+
+ return (SLIST_NEXT(t, m_tag_link));
+}
+
/*
* Create an mtag of the given type
*/
static __inline struct m_tag *
-m_tag_get(int type, int length, int wait)
+m_tag_alloc(uint32_t cookie, int type, int length, int wait)
{
int l = length + sizeof(struct m_tag);
struct m_tag *m = malloc(l, 0, M_NOWAIT);
memset(m, 0, l);
m->m_tag_id = type;
m->m_tag_len = length;
+ m->m_tag_cookie = cookie;
}
return m;
};
+static __inline struct m_tag *
+m_tag_get(int type, int length, int wait)
+{
+ return m_tag_alloc(MTAG_ABI_COMPAT, type, length, wait);
+}
+
static __inline struct m_tag *
m_tag_first(struct mbuf *m)
{
return NULL;
};
+#define M_SETFIB(_m, _fib) /* nothing on linux */
static __inline void
m_freem(struct mbuf *m)
{
};
/* we cannot pullup */
-#define m_pullup(__m, __i) (m)
+//#define m_pullup(__m, __i) (m)
#define M_GETFIB(_m) 0