From 469b88ea307c84255e8ece45504e7f790efc1748 Mon Sep 17 00:00:00 2001 From: Gerwin Klein Date: Sun, 15 Jul 2018 15:22:12 +0100 Subject: [PATCH] x64 aspec: remove syntax warning --- spec/abstract/X64/Arch_A.thy | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/spec/abstract/X64/Arch_A.thy b/spec/abstract/X64/Arch_A.thy index 3634b5019..572159937 100644 --- a/spec/abstract/X64/Arch_A.thy +++ b/spec/abstract/X64/Arch_A.thy @@ -140,32 +140,33 @@ page is mapped in the same location as this cap was previously used to map it in. *} definition perform_page_invocation :: "page_invocation \ (unit,'z::state_ext) s_monad" where -"perform_page_invocation iv \ (case iv of +"perform_page_invocation iv \ case iv of PageMap cap ct_slot entries vspace \ do set_cap cap ct_slot; - (case entries - of (VMPTE pte, slot) \ store_pte slot pte + case entries of + (VMPTE pte, slot) \ store_pte slot pte | (VMPDE pde, slot) \ store_pde slot pde - | (VMPDPTE pdpte, slot) \ store_pdpte slot pdpte); - asid <- case cap of ArchObjectCap (PageCap _ _ _ _ _ (Some (as, _))) \ return as - | _ \ fail; + | (VMPDPTE pdpte, slot) \ store_pdpte slot pdpte; + asid \ case cap of + ArchObjectCap (PageCap _ _ _ _ _ (Some (as, _))) \ return as + | _ \ fail; invalidate_page_structure_cache_asid (addrFromPPtr vspace) asid - od + od | PageRemap entries asid vspace \ do - (case entries - of (VMPTE pte, slot) \ store_pte slot pte + case entries of + (VMPTE pte, slot) \ store_pte slot pte | (VMPDE pde, slot) \ store_pde slot pde - | (VMPDPTE pdpte, slot) \ store_pdpte slot pdpte); + | (VMPDPTE pdpte, slot) \ store_pdpte slot pdpte; invalidate_page_structure_cache_asid (addrFromPPtr vspace) asid od | PageUnmap cap ct_slot \ - (case cap - of PageCap dev base rights map_type sz mapped \ - case mapped of - Some _ \ case map_type of + (case cap of + PageCap dev base rights map_type sz mapped \ + (case mapped of + Some _ \ (case map_type of VMVSpaceMap \ perform_page_invocation_unmap cap ct_slot - | _ \ fail - | None \ return () + | _ \ fail) + | None \ return ()) | _ \ fail) (* | PageIOMap asid cap ct_slot entries \ undefined *) | PageGetAddr ptr \ do @@ -174,7 +175,7 @@ perform_page_invocation :: "page_invocation \ (unit,'z::state_ext) s msg_transferred \ set_mrs ct Nothing [paddr]; msg_info \ return $ MI msg_transferred 0 0 0; set_message_info ct msg_info - od)" + od" text {* PageTable capabilities confer the authority to map and unmap page tables. *} definition