When sending blocks of data around in the simulation, it is often very important that this can be done in an efficient manner, which usually means that memory copies need to be avoided as much as possible. The typical case for this is in the simulation of networks or other communication links where the hardware model constructs network packets, often by reading from simulated memory, and sends the them over a network link to one or more receivers. These receivers can then each do their modifications to the packets and hand them over to software running on the simulated target system. By using the dbuffer_t type, Simics network simulation can do this with a minimum of overhead.