History log of /seL4-l4v-10.1.1/l4v/spec/abstract/X64/Arch_Structs_A.thy
Revision Date Author Comments
# b5cdf470 13-Jun-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

globally use session-qualified imports; add Lib session

Session-qualified imports will be required for Isabelle2018 and help clarify
the structure of sessions in the build tree.

This commit mainly adds a new set of sessions for lib/, including a Lib
session that includes most theories in lib/ and a few separate sessions for
parts that have dependencies beyond CParser or are separate AFP sessions.
The group "lib" collects all lib/ sessions.

As a consequence, other theories should use lib/ theories by session name,
not by path, which in turns means spec and proof sessions should also refer
to each other by session name, not path, to avoid duplicate theory errors in
theory merges later.


# b383b9a1 05-Aug-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

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.


# 065f4d25 15-Jul-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

x64 aspec: resolve vtd_pt_bits; check IOPageTabelCap functions

Currently unused, but will be relevant for VT-d


# 908787f3 15-Jul-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

aspec/haskell: clean out resolved FIXMEs


# 0b978bae 06-May-2018 Michael Sproul <michael.sproul@data61.csiro.au>

x64: spec: changes for IRQ invocations (VER-879)


# f649240c 03-Apr-2018 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

x64: CR3 and machine op updates for Meltdown


# a3de401c 03-Apr-2018 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

x64: more abstract specs and invariants for ASIDs


# f728dd25 18-Mar-2018 Joel Beeren <joel.beeren@data61.csiro.au>

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.


# d9c08fc7 12-Feb-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

aspec/haskell/machine: refactor user_context interface

- remove separate abstract set_/get_register implementation, directly use machine op
- make interface aware that user_context does not always need to equal
(register => machine_word)
- introduce FPU state on x64


# 1fbcf1d3 07-Jan-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

x64 spec: remove unused x64_asid_map


# 2f540e80 17-Dec-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

add constant definitions for bounds on untyped object sizes


# 48b3a8b4 04-Oct-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

update object and field widths for x64, and remove some magic numbers

In X64 update the following to match the C kernel:
- TCB size-bits (11).
- Endpoint size-bits (4).
- Guard bits (58).
- Message registers.

For all architectures, replace magic numbers with defined constants in
specifications, and as far as possible in proofs:
- tcb_bits in abstract spec.
- tcbBlockSizeBits, cteSizeBits, ntfnSizeBits, epSizeBits in Haskell
spec, Haskell and C refinement proofs.


# 61a60886 07-Apr-2017 Joel Beeren <joel.beeren@nicta.com.au>

x64: rename setCurrentCR3 et al to use underscores for abstract spec


# f26ba5ce 28-Mar-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

arch_split: make cte_level_bits_def work with existing proofs

Many generic proofs make use of cte_level_bits_def. Although the
definition is architecture specific, the proofs work for any reasonable
value of cte_level_bits, so it's fine to expose the definition to
generic proofs.


# 6f3efc50 27-Mar-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

arch_split x64 arm: make endpoint_bits and ntfn_bits arch constants


# bb92e92f 26-Mar-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

arch_split x64 arm: make cte_level_bits an arch constant


# 981e05d5 22-Mar-2017 Joel Beeren <joel.beeren@nicta.com.au>

x64: abstract: remove spurious VMPML4E from vm_map_type


# 1a129267 20-Mar-2017 Joel Beeren <joel.beeren@nicta.com.au>

x64: use generic VMMapType from haskell rather than redefine in abstract


# b35c50c4 19-Jan-2017 Joel Beeren <joel.beeren@nicta.com.au>

x64: spec: update machine functions, invocations, set_vm_root for new
kernel version


# 5bdcbe53 09-Jan-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

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


# a1ab2d90 12-Dec-2016 Joel Beeren <joel.beeren@nicta.com.au>

x64: fix up ArchIPC_AI


# b07d971a 24-Nov-2016 Joel Beeren <joel.beeren@nicta.com.au>

x64: machine: move word_size_bits definition to MachineTypes.

Furthermore, create generic library of word lemmas that require
the Arch context to prove, but can be proven with the same proof in
all architectures. These lemmas can then be used safely in generic
theory files. This library is in spec/machine/WordExports.thy


# b8048726 18-Oct-2016 Joel Beeren <joel.beeren@nicta.com.au>

X64: added dummy VMPML4E to vm_page_entry.

needs to be reviewed


# 991dd301 09-Oct-2016 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

x64: port device-untyped from ARM


# 5880a317 18-Aug-2016 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

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.


# 9d58764b 31-May-2016 Joel Beeren <joel.beeren@nicta.com.au>

x64: Invariants_AI now processes, removed some arch-specific types


# d4f54686 30-May-2016 Joel Beeren <joel.beeren@nicta.com.au>

x64: ArchInvariants_AI passes except 1 sorried lemma - valid_arch_objs_alt


# b95f452a 26-May-2016 Joel Beeren <joel.beeren@nicta.com.au>

x64: progress in ArchInvariants_AI, up to valid_arch_objs_alt


# 21fd8830 18-May-2016 Joel Beeren <joel.beeren@nicta.com.au>

x64: up to lemmas in ArchInvariants_AI


# 1bc374fb 12-May-2016 Joel Beeren <joel.beeren@nicta.com.au>

x64 invs: up to vs_refs_pages


# 73b73156 05-May-2016 Joel Beeren <joel.beeren@nicta.com.au>

x64: add arch_split'd x64 spec with IOMMU stuff