Commit Graph

44 Commits

Author SHA1 Message Date
Gerwin Klein a45adef66a all: remove theory import path references
In Isabelle2020, when isabelle jedit is started without a session
context, e.g. `isabelle jedit -l ASpec`, theory imports with path
references cause the isabelle process to hang.

Since sessions now declare directories, Isabelle can find those files
without path reference and we therefore remove all such path references
from import statements. With this, `jedit` and `build` should work with
and without explicit session context as before.

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-11-02 10:16:17 +10:00
Gerwin Klein a424d55e3e licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Gerwin Klein 55aeefdb64 x64: avoid automatic unfolding of handle_vm_fault
(fun -> definition)
2019-11-15 12:04:50 +11:00
Gerwin Klein c34840d09b global: isabelle update_cartouches 2019-06-14 11:41:21 +10:00
Gerwin Klein 6af81b535c x64 aspec: more comments now rendered in LaTeX 2019-06-14 11:41:20 +10:00
Michael McInerney 26fdedad4d ainvs, spec: changes to remove errors for Isabelle 2019 update 2019-06-13 16:22:33 +10:00
Gerwin Klein 5ae7cc23b1 aspec: msg_align_bits and related are arch independent
While the numerical value is arch dependent, the definition and symbolic value
are not. This commit factors out the symbolic computation and only unfolds the
numeric value in the architecture dependent spec.
2018-08-06 11:22:51 +10:00
Gerwin Klein b383b9a187 aspec: move up mask_vm_rights, make arch independent
Strictly speaking vmrights might at some point become architecture dependent,
but all present architectures have precisely the same implementation, and there
are no plans to do anything different in the foreseeable future.
2018-08-06 11:22:50 +10:00
Gerwin Klein e533810190 x64 aspec: mark vt-d FIXME 2018-08-06 11:22:49 +10:00
Gerwin Klein 908787f315 aspec/haskell: clean out resolved FIXMEs 2018-08-06 11:18:41 +10:00
Joel Beeren e6ca6883ad x64: spec: fix up definition of decodeX64FrameInvocation to match C 2018-07-05 16:23:15 +10:00
Joel Beeren 02ed965d79 x64: aspec+haskell: reorder attribsFromWord to match C 2018-07-05 16:23:15 +10:00
Michael Sproul b91ee8e4d0 x64: spec+ainvs+refine: add machine ops for nativeThreadUsingFPU and switchFpuOwner 2018-07-05 16:23:15 +10:00
Joel Beeren 8953543843 x64: ainvs+refine: remove invalidateASIDEntry, simplify with just hwASIDInvalidate 2018-07-05 16:23:15 +10:00
Matthew Brecknell f649240cde x64: CR3 and machine op updates for Meltdown 2018-07-05 16:23:15 +10:00
Matthew Brecknell a3de401c09 x64: more abstract specs and invariants for ASIDs 2018-07-05 16:23:15 +10:00
Matthew Brecknell bcac2c8492 x64: clear some sorry proofs from CSpace_C
Also update some Haskell and abstract specs relating to IO ports.
2018-07-05 16:23:14 +10:00
Joel Beeren f728dd25e8 x64: Add IOPortControlCaps to control IO port allocation
The previous implementation of IOPortCaps has problems with revocability
and determining parency etc. This commit adds IOPortControlCaps which
behave identically to IRQControlCaps -- invoking the IOPortControlCap
allows one to create IOPortCaps with the supplied range.

There now exist invariants to show that there is only one
IOPortControlCap and that all IOPortCaps in the system do not overlap.
Furthermore there is a global record of which IO ports have been
allocated to prevent reissuing the same ports.
2018-04-19 05:27:06 +10:00
Joel Beeren 02e5096534 x64: VER-917: correct VSpace invocations to update map_type, and add invariants to check that maptype and mapped addresses correspond for PageCaps 2018-04-19 05:27:05 +10:00
Joel Beeren 4601f2a1ab Genericise deletion actions that occur after empty_slot
This patch adds a generic "post_cap_deletion" step that is called by
finalise_slot. Previous to this, the only caps which had actions
required at this stage were IRQHandlerCaps -- it was required that the
IRQ bitmap be updated after the cap itself was removed (as the
invariants state that for any existing IRQHandlerCap, the corresponding
bit in the IRQ bitmap must be set).

By genericising this, we add the capacity for new, arch-specific post
cap deletion actions to occur in the future.
2018-02-23 09:12:55 +11:00
Gerwin Klein 1fbcf1d3ea x64 spec: remove unused x64_asid_map 2018-01-11 10:45:01 +11:00
Matthew Brecknell ff5efcd2da x64 abstract: make invalidate_asid_entry take a bare vspace pointer 2017-04-24 23:58:04 +10:00
Joel Beeren 61a6088654 x64: rename setCurrentCR3 et al to use underscores for abstract spec 2017-04-07 16:05:02 +10:00
Joel Beeren c847b79220 x64: AInvs: move invalidate_asid_entry into case for delete_asid 2017-04-04 17:32:32 +10:00
Joel Beeren 38604c1291 x64: abstract: reorder arguments in hwASIDInvalidate 2017-04-03 17:46:43 +10:00
Joel Beeren 71118f3e40 x64: abstract: updated msg_align_bits to use word_size_bits 2017-03-31 16:57:57 +11:00
Joel Beeren df94ae6fad x64: aspec/ainvs: miscellaneous updates
* make update_cap_data do nothing for IOPorts
    * return same_aobject_as to previous definition for IOPorts
    * change cap_master_cap for IOPorts to be the identity
2017-03-29 17:23:25 +11:00
Joel Beeren d564c80be1 x64: abstract: tweak spec to match C code 2017-03-23 15:34:43 +11:00
Joel Beeren 981e05d5f7 x64: abstract: remove spurious VMPML4E from vm_map_type 2017-03-23 15:34:30 +11:00
Joel Beeren 15f32f4dce x64: ASpec builds after merge for ARM, X64 2017-03-14 13:16:14 +11:00
Matthew Brecknell 07b2241e37 x64: fix CR3 check in set_vm_root spec 2017-02-15 19:01:58 +11:00
Joel Beeren c3cd2e137b x64: spec: add loop to delete_asid_pool; re-add asid_map updates 2017-02-02 13:30:24 +11:00
Joel Beeren b35c50c481 x64: spec: update machine functions, invocations, set_vm_root for new
kernel version
2017-01-20 16:18:49 +11:00
Matthew Brecknell a1b5f16ed6 merge x64-split into local branch 2017-01-11 17:22:05 +11:00
Matthew Brecknell 5bdcbe537e fix ARM build after merge
Also:
- move some ARM-specific things out of Tcb_AI
- port changes from ARM to X64, up to beginning of ArchVSpace_AI
2017-01-10 17:09:31 +11:00
Joel Beeren a1ab2d90b1 x64: fix up ArchIPC_AI 2016-12-13 10:17:28 +11:00
Joel Beeren 1a6e362598 x64: added more machine definitions 2016-10-26 16:42:50 +11:00
Joel Beeren b8048726a6 X64: added dummy VMPML4E to vm_page_entry.
needs to be reviewed
2016-10-19 10:52:46 +11:00
Matthew Brecknell 991dd30173 x64: port device-untyped from ARM 2016-10-10 13:26:40 +11:00
Matthew Brecknell 7989fa4ff1 x64: more progress in ArchVSpace_AI 2016-10-05 18:04:47 +11:00
Matthew Brecknell 5880a317f2 x64 invariants: CSpace_AI checking
Includes some changes to the abstract spec:
- replace magic numbers with definitions.
- add missing IOPortCap cases to some definitions.

There is one sorry proof, which I think blast could solve if we
gave it enough time. Will need a more subtle approach.
2016-08-23 07:40:47 +10:00
Matthew Brecknell bbfc1df601 x64 abstract spec: add some missing cases in ArchVSpace_A unmap operations
These had been undefined, causing some crunch commands to fail.
2016-07-27 12:26:53 +10:00
Joel Beeren b95f452ad0 x64: progress in ArchInvariants_AI, up to valid_arch_objs_alt 2016-06-01 11:14:43 +10:00
Joel Beeren 73b731562c x64: add arch_split'd x64 spec with IOMMU stuff 2016-06-01 11:12:55 +10:00