diff options
| author | Stephen Crane <sjc@immunant.com> | 2021-01-13 14:05:41 -0800 |
|---|---|---|
| committer | Stephen Crane <sjc@immunant.com> | 2021-01-13 15:56:25 -0800 |
| commit | 499f0cf59583b1bc36ecbecca27b15b0d8c16151 (patch) | |
| tree | 9a5f6e70b9b5f8e9b6dba965644277194a3080dd /trusty/coverage/coverage.cpp | |
| parent | ffb724dd91e59dfc70fd89f1678e615020164dc8 (diff) | |
trusty: Switch to dmabuf for coverage shared memory
Trusty shared memory now uses dmabuf instead of memfd. Switch the
coverage buffer allocation to use libdmabufheap.
Test: atest libtrusty_coverage_test
Bug: None
Change-Id: I067dd0774d19b42380ce5cb8ceb3541fa77ef9f0
Diffstat (limited to 'trusty/coverage/coverage.cpp')
| -rw-r--r-- | trusty/coverage/coverage.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/trusty/coverage/coverage.cpp b/trusty/coverage/coverage.cpp index f383dd14ae..ff2bcaa117 100644 --- a/trusty/coverage/coverage.cpp +++ b/trusty/coverage/coverage.cpp @@ -16,6 +16,7 @@ #define LOG_TAG "coverage" +#include <BufferAllocator/BufferAllocator.h> #include <android-base/file.h> #include <android-base/logging.h> #include <android-base/unique_fd.h> @@ -114,24 +115,23 @@ Result<void> CoverageRecord::Open() { record_len_ = resp.open_args.record_len; shm_len_ = RoundPageUp(record_len_); - fd = memfd_create("trusty-coverage", 0); - if (fd < 0) { - return ErrnoError() << "failed to create memfd: "; - } - unique_fd memfd(fd); + BufferAllocator allocator; - if (ftruncate(memfd, shm_len_) < 0) { - return ErrnoError() << "failed to resize memfd: "; + fd = allocator.Alloc("system", shm_len_); + if (fd < 0) { + return ErrnoError() << "failed to create dmabuf of size " << shm_len_ + << " err code: " << fd; } + unique_fd dma_buf(fd); - void* shm = mmap(0, shm_len_, PROT_READ | PROT_WRITE, MAP_SHARED, memfd, 0); + void* shm = mmap(0, shm_len_, PROT_READ | PROT_WRITE, MAP_SHARED, dma_buf, 0); if (shm == MAP_FAILED) { return ErrnoError() << "failed to map memfd: "; } req.hdr.cmd = COVERAGE_CLIENT_CMD_SHARE_RECORD; req.share_record_args.shm_len = shm_len_; - ret = Rpc(&req, memfd, &resp); + ret = Rpc(&req, dma_buf, &resp); if (!ret.ok()) { return Error() << "failed to send shared memory: "; } |
