VError CopyHelper::DoCopy() { ResizeHelper dstRszHlp; VError verr=dstRszHlp.Resize(fDstFd, fSrcSize); if(verr!=VE_OK) return verr; MapHelper srcMapHlp; verr=srcMapHlp.Map(fSrcFd, fSrcSize); if(verr!=VE_OK) return verr; void* srcAddr=srcMapHlp.GetAddr(); MapHelper dstMapHlp; verr=dstMapHlp.SetProtection(MapHelper::WRITE).Map(fDstFd, fSrcSize); if(verr!=VE_OK) { srcMapHlp.UnMap(); return verr; } void* dstAddr=dstMapHlp.GetAddr(); memcpy(dstAddr, srcAddr, fSrcSize); srcMapHlp.UnMap(); dstMapHlp.UnMap(); return verr; }