mbchain mb_init mb_initm mb_done mb_detach mb_fixhdr mb_reserve mb_put_uint8 mb_put_uint16be mb_put_uint16le mb_put_uint32be mb_put_uint32le mb_put_int64be mb_put_int64le mb_put_mem mb_put_mbuf mb_put_uio - set of functions to build an mbuf chain from various data types
#include <sys/param.h>
#include <sys/uio.h>
#include <sys/mchain.h>
int
mb_init (struct mbchain *mbp);
void
mb_initm (struct mbchain *mbp struct mbuf *m);
void
mb_done (struct mbchain *mbp);
struct mbuf *
mb_detach (struct mbchain *mbp);
int
mb_fixhdr (struct mbchain *mbp);
caddr_t
mb_reserve (struct mbchain *mbp int size);
int
mb_put_uint8 (struct mbchain *mbp u_int8_t x);
int
mb_put_uint16be (struct mbchain *mbp u_int16_t x);
int
mb_put_uint16le (struct mbchain *mbp u_int16_t x);
int
mb_put_uint32be (struct mbchain *mbp u_int32_t x);
int
mb_put_uint32le (struct mbchain *mbp u_int32_t x);
int
mb_put_int64be (struct mbchain *mbp int64_t x);
int
mb_put_int64le (struct mbchain *mbp int64_t x);
int
mb_put_mem (struct mbchain *mbp c_caddr_t source int size int type);
int
mb_put_mbuf (struct mbchain *mbp struct mbuf *m);
int
mb_put_uio (struct mbchain *mbp struct uio *uiop int size);
mb_done ();
function disposes an mbuf chain pointed to by
Fa mbp->mb_top
field and sets
the field to
NULL
mb_detach ();
function returns the value of
Fa mbp->mb_top
field and sets its value to
NULL
mb_fixhdr ();
recalculates the length of an mbuf chain and updates the
m_pkthdr.len
field of the first mbuf in the chain.
It returns the calculated length.
mb_reserve ();
ensures that the object of the length specified by the
Fa size
argument will fit in the current mbuf (mbuf allocation is performed if
necessary), and advances all pointers as if the real data was placed.
Returned
value will point to the beginning of the reserved space.
Note that the size
of the object should not exceed
MLEN
bytes.
All
mb_put_ (*);
functions perform an actual copy of the data into mbuf chain.
Functions which have
le
or
be
suffixes will perform conversion to the little- or big-endian data formats.
mb_put_mem ();
function copies
Fa size
bytes of data specified by the
Fa source
argument to an mbuf chain.
The
Fa type
argument specifies the method used to perform a copy,
and can be one of the following:
Note
after failure of any function, an mbuf chain is left in the broken state,
and only
mb_done ();
function can safely be called to destroy it.
struct mbchain *mbp; struct mbuf *m; mb_init(mbp); mb_put_uint8(mbp, 33); mb_put_uint16le(mbp, length); m = m_copym(mbp->mb_top, 0, M_COPYALL, M_TRYWAIT); send(m); mb_done(mbp);
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |