The DSL provides a general routine, BlockCopy, for copying the contents of memory from one location to another. It also provides several BlockMove routines that drivers may use to more precisely control the copying process and its effects on memory coherency.