diff --git a/lib/mammoth/include/mammoth/channel.h b/lib/mammoth/include/mammoth/channel.h index 4b96407..4fa5d8f 100644 --- a/lib/mammoth/include/mammoth/channel.h +++ b/lib/mammoth/include/mammoth/channel.h @@ -8,6 +8,7 @@ class Channel { Channel() {} void adopt_cap(uint64_t id); uint64_t release_cap(); + uint64_t cap(); z_err_t WriteStr(const char* msg); z_err_t ReadStr(char* buffer, uint64_t* size); diff --git a/lib/mammoth/include/mammoth/memory_region.h b/lib/mammoth/include/mammoth/memory_region.h index 78af053..215e0b8 100644 --- a/lib/mammoth/include/mammoth/memory_region.h +++ b/lib/mammoth/include/mammoth/memory_region.h @@ -15,6 +15,9 @@ class MappedMemoryRegion { uint64_t paddr() { return paddr_; } uint64_t vaddr() { return vaddr_; } + uint64_t size() { return size_; } + + uint64_t cap() { return vmmo_cap_; } operator bool() { return vmmo_cap_ != 0; } diff --git a/lib/mammoth/src/channel.cpp b/lib/mammoth/src/channel.cpp index 07dcbfd..39e30ee 100644 --- a/lib/mammoth/src/channel.cpp +++ b/lib/mammoth/src/channel.cpp @@ -29,6 +29,8 @@ uint64_t Channel::release_cap() { return cap; } +uint64_t Channel::cap() { return chan_cap_; } + z_err_t Channel::WriteStr(const char* msg) { if (!chan_cap_) { return Z_ERR_NULL; diff --git a/lib/mammoth/src/process.cpp b/lib/mammoth/src/process.cpp index 883e290..4232ce3 100644 --- a/lib/mammoth/src/process.cpp +++ b/lib/mammoth/src/process.cpp @@ -69,7 +69,7 @@ uint64_t LoadElfProgram(uint64_t base, uint64_t as_cap) { dbgln("Create mem object"); #endif uint64_t mem_cap; - uint64_t size = program.filesz; + uint64_t size = program.memsz; check(ZMemoryObjectCreate(size, &mem_cap)); #if MAM_PROC_DEBUG