From 3bb13f1c87c78c7e3d6fe73c3d7b66786c300f3c Mon Sep 17 00:00:00 2001 From: Peter Rugg Date: Mon, 11 May 2020 14:08:04 +0100 Subject: [PATCH] Implement get/setFlags on CapMem --- CHERICC_Fat.bsv | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/CHERICC_Fat.bsv b/CHERICC_Fat.bsv index 4bb04aa..a1471f3 100644 --- a/CHERICC_Fat.bsv +++ b/CHERICC_Fat.bsv @@ -883,8 +883,15 @@ instance CHERICap #(CapMem, OTypeW, FlagsW, CapAddressW, CapW, TSub#(MW, 3)); capMem.isCapability = v; return pack(capMem); endfunction - function getFlags = error("getFlags not implemented for CapMem"); - function setFlags = error("setFlags not implemented for CapMem"); + function getFlags (x); + CapabilityInMemory capMem = unpack(x); + return capMem.flags; + endfunction + function setFlags (x, f); + CapabilityInMemory capMem = unpack(x); + capMem.flags = f; + return pack(capMem); + endfunction function getHardPerms = error("getHardPerms not implemented for CapMem"); function setHardPerms = error("setHardPerms not implemented for CapMem"); function getSoftPerms = error("getSoftPerms not implemented for CapMem");