1/* 2 * Copyright 2015, Rene Gollent, rene@gollent.com. 3 * Distributed under the terms of the MIT License. 4 */ 5 6#include "Jobs.h" 7 8#include "Team.h" 9#include "TeamMemory.h" 10 11 12WriteMemoryJob::WriteMemoryJob(Team* team, 13 TeamMemory* teamMemory, target_addr_t address, void* data, 14 target_size_t size) 15 : 16 fKey(data, JOB_TYPE_WRITE_MEMORY), 17 fTeam(team), 18 fTeamMemory(teamMemory), 19 fTargetAddress(address), 20 fData(data), 21 fSize(size) 22{ 23 fTeamMemory->AcquireReference(); 24} 25 26 27WriteMemoryJob::~WriteMemoryJob() 28{ 29 fTeamMemory->ReleaseReference(); 30} 31 32 33const JobKey& 34WriteMemoryJob::Key() const 35{ 36 return fKey; 37} 38 39 40status_t 41WriteMemoryJob::Do() 42{ 43 ssize_t result = fTeamMemory->WriteMemory(fTargetAddress, fData, fSize); 44 if (result < 0) 45 return result; 46 47 fTeam->NotifyMemoryChanged(fTargetAddress, fSize); 48 49 return B_OK; 50} 51