History log of /seL4-l4v-10.1.1/l4v/spec/abstract/ARM/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.


# 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


# 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.


# 22999e54 09-Aug-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

aspec: integrate all architectures


# 796887d9 11-Jul-2017 Alejandro Gomez-Londono <alejandro.gomez@nicta.com.au>

Removes all trailing whitespaces


# 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


# 3dafec7d 25-Jan-2017 Joel Beeren <Joel.Beeren@nicta.com.au>

backport changes to ARM proofs from X64 work in progress

- replace ARM-specific constants and types with aliases which can be
instantiated separately for each architecture.
- expand lib with lemmas used in X64 proofs.
- simplify some proofs.

Also-by: Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>


# c1782fc1 11-Jan-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

x64: fix ARM build after merge


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

AInvs: remove references to arch specific stuff in Ipc_AI


# 99bcebda 07-Jul-2016 Miki Tanaka <miki.tanaka@nicta.com.au>

ASpec: arch-specific faults + VMFault -> ArchFault + ReservedIRQ

* fixing name space for arch_tcb and tcb_context

* arch_fault added

* changing name space for arch_tcb

- as_user, set_mrs, get_mrs, copyRegsToArea, and copyRegsToArea are
moved to the ARM_HYP directory. This breaks the proofs in
refinement, etc., mostly in tcb related files.

* removed a duplicate range check definition

* fixes ARM for arch_tcb

* adding arch_thread_get/set

* add ReserveIRQ

- initInterruptController is not added yet.

* add arch_fault

- arch_fault and related functions are added.

* arch-parametrising arch-specific extra registers

- ArchDefaultExtraRegisters is the common interface that refers to the
arch-specific data (ARMNoExtraRegisters for ARM/ARM_HYP)

* Adding accesors for tcb_context

- Despite the fact that tcb_context has an arch-specific definition,
it is reasonable to assume that some form of tcb_context will be
available in any architecture, thus the need for accesors to handle
updates.

* as_user updated to use tcb_context accesors

* set_mrs and get_mrs updated to use tcb_context accesors

- Several function on ArchTcb_A and ArchTcbAcc_A (both theories where
removed) can be defined in a general context by using the
tcb_context accesors

tags: [VER-623][SELFOUR-413]


# f8f88c69 03-Aug-2016 Miki Tanaka <miki.tanaka@nicta.com.au>

SELFOUR-553: Change Spec according to C code and fix ASpec and AInvs


# 328846ee 04-Jul-2016 Xin,Gao <xin.gao@nicta.com.au>

SELFOUR-421: crefine builds


# 3c223b42 15-Feb-2016 Joel Beeren <joel.beeren@nicta.com.au>

SELFOUR-421: AInvs done, no added invariants yet


# 5e16ec56 10-Feb-2016 Joel Beeren <joel.beeren@nicta.com.au>

SELFOUR-421: first attempt at abstract spec


# 1d20b393 26-Apr-2016 Daniel Matichuk <daniel.matichuk@nicta.com.au>

arch_split: replaced sublocale with global_naming


# 3191c485 20-Apr-2016 Daniel Matichuk <daniel.matichuk@nicta.com.au>

arch_split: added ARM_A and ARM_H locales


# f89279e3 24-Mar-2016 Matthew Brecknell <Matthew.Brecknell@nicta.com.au>

arch_split: reworking predicates about arch objects and types


# b679b00f 04-Mar-2016 Daniel Matichuk <daniel.matichuk@nicta.com.au>

arch_split: initial attempt at redefining invariants to avoid changing too many proofs


# df8261c1 16-Feb-2016 Daniel Matichuk <daniel.matichuk@nicta.com.au>

arch_split: split up Invariants_AI


# 9718f1bd 04-Feb-2016 Daniel Matichuk <daniel.matichuk@nicta.com.au>

arch_split: progress on namespacing abstract spec


# fad2c6aa 11-Jan-2016 Daniel Matichuk <daniel.matichuk@nicta.com.au>

paramatrised abstract and haskell specs over L4V_ARCH

Haskell translator was modified to support multiple translations
of the haskell, with different build parameters.