summaryrefslogtreecommitdiff
path: root/trusty/coverage/coverage.cpp
diff options
context:
space:
mode:
authorStephen Crane <sjc@immunant.com>2021-01-13 14:05:41 -0800
committerStephen Crane <sjc@immunant.com>2021-01-13 15:56:25 -0800
commit0d67131dd967de4db19ec69874ae4e855e176018 (patch)
tree9a5f6e70b9b5f8e9b6dba965644277194a3080dd /trusty/coverage/coverage.cpp
parentc6b6c08f95c084f4092b05c1faf2b04ae529a97a (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.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/trusty/coverage/coverage.cpp b/trusty/coverage/coverage.cpp
index f383dd14a..ff2bcaa11 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: ";
}