#include <nanomsg/nn.h>
struct nn_cmsghdr {
size_t cmsg_len;
int cmsg_level;
int cmsg_type;
};
nn_cmsg(3compat)
NAME
nn_cmsg - message control data (compatible API)
SYNOPSIS
DESCRIPTION
The nn_cmsghdr
structure describes a block of control data that is
associated with a message either sent by nn_sendmsg()
or received by nn_recvmsg()
.
This structure and supporting macros are provided for API compatibility with legacy libnanomsg. Consider using the relevant modern API instead. |
Each header is followed by cmsg_len
bytes of data, plus any padding required
to align the structure.
The only defined ancillary data at this time is the protocol headers used by
the protocols.
This uses cmsg_level
set to PROTO_SP
and the cmsg_type
set to
SP_HDR
.
The actual data for this will vary from depending on the protocol used.
Convenience macros are provided to make working with these fields easier.
struct nn_cmsghdr *NN_CMSG_FIRSTHDR(struct nn_msghdr *hdr)
-
This macro returns the first
struct nn_cmsghdr
header in hdr. struct nn_cmsghdr *NN_CMSG_NXTHDR(struct nn_msghdr *hdr, struct nn_cmsghdr *ch)
-
This macro returns a pointer to the next
struct nn_cmsghdr
in hdr after ch. void *NN_CMSG_DATA(struct nn_cmsghdr *ch)
-
This macro returns a pointer to the header-specific data for ch.
size_t NN_CMSG_ALIGN(size_t len)
-
This macro returns the length specified by len, plus any padding required to provide the necessary alignment for another structure.
size_t NN_CMSG_SPACE(size_t len)
-
This macro returns the amount of space required for a header, with len bytes of following data, and any necessary padding.
size_t NN_CMSG_LEN(size_t len)
-
This macro evaluates to the length of the header (including alignment), and the associated data of length len, but without any trailing padding to align for another header.