man pages section 9: DDI and DKI Kernel Functions

Exit Print View

Updated: July 2014



allocb_tmpl - allocate a message block using a template


#include <sys/stream.h>

mblk_t *allocb_tmpl(size_t size, const mblk_t *tmpl);

Interface Level

Solaris DDI specific (Solaris DDI)



The number of bytes in the message block.


The template message block.


The allocb_tmpl() function tries to allocate a STREAMS message block using allocb(9F). If the allocation is successful, the db_type field in the data block structure (dblk_t, see datab(9S)), as well as some implementation-private data, are copied from the dblk_t associated with tmpl.

The allocb_tmpl() function should be used when a new STREAMS message block is allocated. This block is then used to contain data derived from another STREAMS message block. The original message is used as the tmpl argument.

Return Values

Upon success, allocb_tmpl() returns a pointer to the allocated message block of the same type as tmpl. On failure, allocb_tmpl() returns a NULL pointer.


The allocb_tmpl() function can be called from user, interrupt, or kernel context.

See also

allocb(9F), datab(9S), msgb(9S)

Writing Device Drivers for Oracle Solaris 11.2

STREAMS Programming Guide