SYNOPSIS
In netnatm/unimsg.h In netgraph/atm/ngatmbase.h Ft struct mbuf * Fn uni_msg_pack_mbuf struct uni_msg *msg void *hdr size_t len Ft struct uni_msg * Fn uni_msg_alloc size_t len Ft struct uni_msg * Fn uni_msg_build void *buf ... Ft void Fn uni_msg_destroy struct uni_msg *msg Ft int Fn uni_msg_unpack_mbuf struct mbuf *m struct uni_msg *msgpDESCRIPTION
This module provides utility functions for the handling of signalling messages to the NgATM modules.The Fn uni_msg_pack_mbuf function packs a message into one or several Vt mbuf Ns s optionally prepending a header. The header is given by its address Fa hdr and length Fa len . If Fa hdr is NULL or Fa len equals 0, no header is prepended. Either Fa msg or Fa hdr may be NULL but not both. The Fn uni_msg_pack_mbuf function returns a pointer to the allocated Vt mbuf chain or NULL in the case of an error.
The Fn uni_msg_alloc function allocates a new message with space for at least Fa len bytes. In the case of an error NULL is returned.
The Fn uni_msg_build function constructs a message from pieces. Each piece is given by a pair of arguments, the first of type Vt void * and the second a Vt size_t . The list of pieces must be terminated by Po Vt void * Pc Ns Dv NULL .
The Fn uni_msg_destroy function destroys the messages and frees all the messages's memory.
The Fn uni_msg_unpack_mbuf function unpacks an Vt mbuf chain info a Vt uni_msg . A pointer to the newly allocated message is stored in Fa msgp and 0 is returned. In the case of an error (either when no packet header is found in the first mbuf or memory cannot be allocated) the function returns an appropriate error code.