37 #if !defined(SCTP_SIMPLE_ALLOCATOR) 43 #define USING_MBUF_CONSTRUCTOR 0 63 #define M_MOVE_PKTHDR(to, from) m_move_pkthdr((to), (from)) 64 #define MGET(m, how, type) ((m) = m_get((how), (type))) 65 #define MGETHDR(m, how, type) ((m) = m_gethdr((how), (type))) 66 #define MCLGET(m, how) m_clget((m), (how)) 69 #define M_HDR_PAD ((sizeof(intptr_t)==4) ? 2 : 6) 72 #define M_COPYALL 1000000000 78 #if defined(SCTP_SIMPLE_ALLOCATOR) 93 #define mtod(m, t) ((t)((m)->m_data)) 94 #define dtom(x) ((struct mbuf *)((intptr_t)(x) & ~(MSIZE-1))) 121 #define MBUF_MEM_NAME "mbuf" 122 #define MBUF_CLUSTER_MEM_NAME "mbuf_cluster" 123 #define MBUF_EXTREFCNT_MEM_NAME "mbuf_ext_refcnt" 125 #define MT_NOINIT 255 166 #define MLEN ((int)(MSIZE - sizeof(struct m_hdr))) 167 #define MHLEN ((int)(MLEN - sizeof(struct pkthdr))) 168 #define MINCLSIZE ((int)(MHLEN + 1)) 169 #define M_MAXCOMPRESS (MHLEN / 2) 245 #define m_next m_hdr.mh_next 246 #define m_len m_hdr.mh_len 247 #define m_data m_hdr.mh_data 248 #define m_type m_hdr.mh_type 249 #define m_flags m_hdr.mh_flags 250 #define m_nextpkt m_hdr.mh_nextpkt 251 #define m_act m_nextpkt 252 #define m_pkthdr M_dat.MH.MH_pkthdr 253 #define m_ext M_dat.MH.MH_dat.MH_ext 254 #define m_pktdat M_dat.MH.MH_dat.MH_databuf 255 #define m_dat M_dat.M_databuf 262 #define M_PKTHDR 0x0002 264 #define M_RDONLY 0x0008 265 #define M_PROTO1 0x0010 266 #define M_PROTO2 0x0020 267 #define M_PROTO3 0x0040 268 #define M_PROTO4 0x0080 269 #define M_PROTO5 0x0100 270 #define M_FREELIST 0x8000 276 #define M_COPYFLAGS (M_PKTHDR|M_EOR|M_RDONLY|M_PROTO1|M_PROTO1|M_PROTO2|\ 277 M_PROTO3|M_PROTO4|M_PROTO5|\ 278 M_BCAST|M_MCAST|M_FRAG|M_FIRSTFRAG|M_LASTFRAG|\ 285 #define M_BCAST 0x0200 286 #define M_MCAST 0x0400 287 #define M_FRAG 0x0800 288 #define M_FIRSTFRAG 0x1000 289 #define M_LASTFRAG 0x2000 290 #define M_VLANTAG 0x10000 291 #define M_PROMISC 0x20000 292 #define M_NOFREE 0x40000 298 #define EXT_CLUSTER 1 302 #define EXT_JUMBO16 5 305 #define EXT_NET_DRV 100 306 #define EXT_MOD_TYPE 200 307 #define EXT_DISPOSABLE 300 308 #define EXT_EXTREF 400 316 #define MT_HEADER MT_DATA 318 #define MT_CONTROL 14 319 #define MT_OOBDATA 15 322 #define MT_NOINIT 255 342 #define MBTOM(how) (how) 360 #define M_WRITABLE(m) (!((m)->m_flags & M_RDONLY) && \ 361 (!(((m)->m_flags & M_EXT)) || \ 362 (*((m)->m_ext.ref_cnt) == 1)) ) \ 372 #define M_LEADINGSPACE(m) \ 373 ((m)->m_flags & M_EXT ? \ 374 (M_WRITABLE(m) ? (m)->m_data - (m)->m_ext.ext_buf : 0): \ 375 (m)->m_flags & M_PKTHDR ? (m)->m_data - (m)->m_pktdat : \ 376 (m)->m_data - (m)->m_dat) 384 #define M_TRAILINGSPACE(m) \ 385 ((m)->m_flags & M_EXT ? \ 386 (M_WRITABLE(m) ? (m)->m_ext.ext_buf + (m)->m_ext.ext_size \ 387 - ((m)->m_data + (m)->m_len) : 0) : \ 388 &(m)->m_dat[MLEN] - ((m)->m_data + (m)->m_len)) 397 #define M_PREPEND(m, plen, how) do { \ 398 struct mbuf **_mmp = &(m); \ 399 struct mbuf *_mm = *_mmp; \ 400 int _mplen = (plen); \ 401 int __mhow = (how); \ 403 if (M_LEADINGSPACE(_mm) >= _mplen) { \ 404 _mm->m_data -= _mplen; \ 405 _mm->m_len += _mplen; \ 407 _mm = m_prepend(_mm, _mplen, __mhow); \ 408 if (_mm != NULL && _mm->m_flags & M_PKTHDR) \ 409 _mm->m_pkthdr.len += _mplen; \ 417 #define M_ALIGN(m, len) do { \ 418 KASSERT(!((m)->m_flags & (M_PKTHDR|M_EXT)), \ 419 ("%s: M_ALIGN not normal mbuf", __func__)); \ 420 KASSERT((m)->m_data == (m)->m_dat, \ 421 ("%s: M_ALIGN not a virgin mbuf", __func__)); \ 422 (m)->m_data += (MLEN - (len)) & ~(sizeof(long) - 1); \ 429 #define MH_ALIGN(m, len) do { \ 430 KASSERT((m)->m_flags & M_PKTHDR && !((m)->m_flags & M_EXT), \ 431 ("%s: MH_ALIGN not PKTHDR mbuf", __func__)); \ 432 KASSERT((m)->m_data == (m)->m_pktdat, \ 433 ("%s: MH_ALIGN not a virgin mbuf", __func__)); \ 434 (m)->m_data += (MHLEN - (len)) & ~(sizeof(long) - 1); \ void m_tag_delete_chain(struct mbuf *, struct m_tag *)
Definition: user_mbuf.c:572
u_long m_mlen
Definition: user_mbuf.h:144
int ext_type
Definition: user_mbuf.h:223
Definition: user_mbuf.h:188
#define MHLEN
Definition: user_mbuf.h:167
int m_dup_pkthdr(struct mbuf *, struct mbuf *, int)
Definition: user_mbuf.c:1080
void m_tag_free_default(struct m_tag *)
Definition: user_mbuf.c:1125
struct mbuf * mh_nextpkt
Definition: user_mbuf.h:177
int csum_data
Definition: user_mbuf.h:206
struct mbuf * m_pulldown(struct mbuf *, int off, int len, int *offp)
Definition: user_mbuf.c:801
void m_freem(struct mbuf *)
Definition: user_mbuf.c:607
u_long m_mhlen
Definition: user_mbuf.h:145
Definition: user_mbuf.h:199
u_long m_mcfail
Definition: user_mbuf.h:139
short mh_type
Definition: user_mbuf.h:181
void m_copydata(const struct mbuf *, int, int, caddr_t)
Definition: user_mbuf.c:1219
u_long m_mpfail
Definition: user_mbuf.h:140
void mbuf_init(void *)
Definition: user_mbuf.c:335
int csum_flags
Definition: user_mbuf.h:205
u_int16_t m_tag_len
Definition: user_mbuf.h:191
int len
Definition: user_mbuf.h:203
struct m_tag * m_tag_alloc(u_int32_t, int, int, int)
Definition: user_mbuf.c:1109
struct m_tag * m_tag_copy(struct m_tag *, int)
Definition: user_mbuf.c:1095
Definition: user_mbuf.h:96
u_long sf_allocwait
Definition: user_mbuf.h:153
u_long m_msize
Definition: user_mbuf.h:141
int mh_flags
Definition: user_mbuf.h:180
const GLfloat * m
Definition: gl2ext.h:850
void m_adj(struct mbuf *, int)
Definition: user_mbuf.c:1270
sctp_zone_t zone_mbuf
Definition: user_mbuf.c:58
int max_protohdr
Definition: user_mbuf.c:53
int m_tag_copy_chain(struct mbuf *, struct mbuf *, int)
Definition: user_mbuf.c:1053
int pad
Definition: statusor_test.cc:47
u_int16_t m_tag_id
Definition: user_mbuf.h:190
tags
Definition: runtests.py:94
struct mbuf * m_pullup(struct mbuf *, int)
Definition: user_mbuf.c:707
#define SLIST_HEAD(name, type)
Definition: user_queue.h:139
void * header
Definition: user_mbuf.h:202
void
Definition: AVFoundationCFSoftLinking.h:81
EGLStreamKHR EGLint n
Definition: eglext.h:984
struct ifnet * rcvif
Definition: user_mbuf.h:200
sctp_zone_t zone_clust
Definition: user_mbuf.c:59
void m_move_pkthdr(struct mbuf *, struct mbuf *)
Definition: user_mbuf.c:686
OPENSSL_EXPORT const ASN1_OBJECT int const unsigned char int len
Definition: x509.h:1053
struct mbuf * m_prepend(struct mbuf *, int, int)
Definition: user_mbuf.c:1187
u_int32_t m_tag_cookie
Definition: user_mbuf.h:192
u_int16_t ether_vtag
Definition: user_mbuf.h:208
volatile u_int * ref_cnt
Definition: user_mbuf.h:222
sctp_zone_t zone_ext_refcnt
Definition: user_mbuf.c:60
unsigned char uint8_t
Definition: ptypes.h:89
u_long sf_allocfail
Definition: user_mbuf.h:152
Definition: user_mbuf.h:134
short m_numtypes
Definition: user_mbuf.h:148
u_long m_mbufs
Definition: user_mbuf.h:135
Definition: user_mbuf.h:216
struct mbuf * parent_mbuf
Definition: user_mbuf.h:102
u_long m_minclsize
Definition: user_mbuf.h:143
#define M_HDR_PAD
Definition: user_mbuf.h:69
caddr_t ext_buf
Definition: user_mbuf.h:217
u_long sf_iocnt
Definition: user_mbuf.h:151
Definition: user_mbuf.h:231
u_int ext_size
Definition: user_mbuf.h:221
Definition: InternalSettings.idl:27
umem_cache_t * sctp_zone_t
Definition: user_mbuf.h:81
int flags
Definition: user_mbuf.h:97
void m_cat(struct mbuf *m, struct mbuf *n)
Definition: user_mbuf.c:1250
struct mbuf * m_copym(struct mbuf *, int, int, int)
Definition: user_mbuf.c:986
void * ext_args
Definition: user_mbuf.h:220
EGLenum type
Definition: eglext.h:63
Definition: user_mbuf.h:101
struct mbuf * m_gethdr(int how, short type)
Definition: user_mbuf.c:152
u_long m_mclusts
Definition: user_mbuf.h:136
#define SLIST_ENTRY(type)
Definition: user_queue.h:153
caddr_t mh_data
Definition: user_mbuf.h:178
struct mbuf * mh_next
Definition: user_mbuf.h:176
#define MLEN
Definition: user_mbuf.h:166
void m_tag_delete(struct mbuf *, struct m_tag *)
Definition: user_mbuf.c:562
u_long m_drain
Definition: user_mbuf.h:138
void m_clget(struct mbuf *m, int how)
Definition: user_mbuf.c:244
int max_linkhdr
Definition: user_mbuf.c:52
u_long m_mclbytes
Definition: user_mbuf.h:142
struct mbuf * m_split(struct mbuf *, int, int)
Definition: user_mbuf.c:1357
void m_copyback(struct mbuf *, int, int, caddr_t)
Definition: user_mbuf.c:1136
struct mbuf * m_get(int how, short type)
Definition: user_mbuf.c:110
int mh_len
Definition: user_mbuf.h:179
u_int16_t tso_segsz
Definition: user_mbuf.h:207
short type
Definition: user_mbuf.h:98
struct mbuf * m_free(struct mbuf *m)
Definition: user_mbuf.c:189
Definition: user_mbuf.h:175
void mb_free_ext(struct mbuf *)
Definition: user_mbuf.c:619