|  | #include <compartment.h> | 
|  | #include <cstdlib> | 
|  | #include <debug.hh> | 
|  | #include <fail-simulator-on-error.h> | 
|  |  | 
|  | /// Expose debugging features unconditionally for this compartment. | 
|  | using Debug = ConditionalDebug<true, "Claimant compartment">; | 
|  |  | 
|  | void *x; | 
|  |  | 
|  | int __cheri_compartment("claimant") make_claim(void *ptr) | 
|  | { | 
|  | Debug::log("Initial quota: {}", heap_quota_remaining(MALLOC_CAPABILITY)); | 
|  |  | 
|  | if (x != nullptr) | 
|  | { | 
|  | free(x); | 
|  | } | 
|  |  | 
|  | Timeout t{10}; | 
|  | heap_claim(MALLOC_CAPABILITY, ptr); | 
|  | x = ptr; | 
|  |  | 
|  | Debug::log("Make Claim : {}", x); | 
|  | Debug::log("heap quota: {}", heap_quota_remaining(MALLOC_CAPABILITY)); | 
|  | return 0; | 
|  | }; | 
|  |  | 
|  | int __cheri_compartment("claimant") show_claim() | 
|  | { | 
|  | Debug::log("Show Claim : {}", x); | 
|  |  | 
|  | return 0; | 
|  | } |