Commit Graph

31 Commits

Author SHA1 Message Date
Ben Fiedler 7983107b71 Fix refs_valid_procedures definition
The current formulation allows an interface of an instance to be
mentioned multiple times in the from side of the same connection.

Signed-off-by: Ben Fiedler <git@bfiedler.ch>
2021-03-24 10:47:01 +11:00
Gerwin Klein c68915b92b license: provide documentation under CC-BY-SA-4.0
Datat61 provides all docs under CC-BY-SA-4.0.
2020-03-16 14:19:15 +08:00
Gerwin Klein 86a941e7e7 spdx: review missing copyright & license info
Some files were missing machine-readable copyright info, others were tagged
incorrectly.
2020-03-16 14:19:15 +08:00
Gerwin Klein 1448882cd9 camkes: remove NICTA logo
The logo can't be provided under an OSS license.
2020-03-16 14:19:15 +08:00
Gerwin Klein a424d55e3e licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Japheth Lim f053fb0181 CamkesAdlSpec: allow ad-hoc additions to integrity policy
Each CAmkES assembly gets an extra field `policy_extra` to specify
extra policy edges. These are added to the default policy graph from
`policy_of`.

This feature is intended to support endpoint merging in the
`global-endpoint` CAmkES template, which could add communication
edges that were not present in the ADL.
2019-09-05 17:03:41 +10:00
Japheth Lim a4019be323 camkes: allow specifying integrity groups
The new field `group_labels` specifies a mapping from ADL component
names to integrity policy labels. This will be used to support the
`group` keyword in CAmkES that allows components to share an address
space. See Jira VER-1109.
2019-09-05 17:03:41 +10:00
Japheth Lim 8fe0010140 CamkesAdlSpec: support `maybe uses` and `maybe consumes` interfaces
The CAmkES toolchain allows some interfaces to be declared optional.
We add such a flag to the ADL datatype and remove the requirement for
such interfaces to be connected.
2019-08-27 17:08:35 +10:00
Japheth Lim 6b54ecea33 camkes: further generalised connector semantics
This allows connectors to also grant access rights between the
from-ends themselves (and similarly the to-ends).

It was previously thought that production CAmkES systems would not
need these rights. However, some connectors (e.g. VirtQueue) don't
follow the standard ADL semantics and we need these rights to
express their behaviour. Limitations of the Access model also cause
`policy_wellformed` systems to have more rights than necessary; see
Jira VER-1108.
2019-08-27 17:08:35 +10:00
Japheth Lim e5e4f23ca2 CamkesAdlSpec: tag Wellformed_CAMKES conditions
Checking an ill-formed spec can now yield a list of annotated
failures, rather than leaving a mess (or worse, just `1. False`).
2019-08-21 14:23:28 +10:00
Japheth Lim ef6c377315 CamkesAdlSpec: relax wellformedness for empty procedures
The VirtQueueDev connector in global-components currently uses empty
procedures as a hack, and allowing empty procedures seems to be
harmless to the rest of the ADL semantics.
2019-07-24 16:08:14 +10:00
Japheth Lim 6c599a8dee camkes: support generalised connector semantics
The classic ADL formal model has a fixed palette of connectors, with
the interface type and seL4 integrity model also being fixed for each
connector type. This is unable to model new CAmkES connectors.

We change the ADL model to allow more combinations of connector
semantics, including arbitrary sets of Access rights between the
policy labels that a connector touches.

See Jira VER-1110 for more context.
2019-07-24 16:08:14 +10:00
Japheth Lim 20fed3bff5 camkes: add flag for hardware components
Currently unused, but may be used for future wellformedness checks.
2019-07-24 16:08:14 +10:00
Gerwin Klein c34840d09b global: isabelle update_cartouches 2019-06-14 11:41:21 +10:00
Michael McInerney c13432b0c4 misc updates for Isabelle2019 2019-06-14 11:41:20 +10:00
Japheth Lim 9792798c1b CamkesAdlSpec: avoid hardcoding C types; better wellformed_* automation
Instead of hardcoding basic C types, this passes most of them along as
uninterpreted strings. This allows typedefs such as time_t or ssize_t
to be used, without requiring the formal model to recognise them.
2019-01-11 14:39:11 +11:00
Japheth Lim c03323f20c camkes: remove ConnectorProperties_CAMKES theory
This was created long ago for a report and is no longer relevant.
2018-09-06 20:47:38 +10:00
Japheth Lim 95cae4756c camkes: initial updates for new CDL refinement framework
Summary of changes:
- change ADL spec to support connectors with many endpoints [VER-992]
- more connector synonyms
- refactor integrity policy spec
2018-09-06 20:45:58 +10:00
Gerwin Klein 3101eba8e7 remove trailing whitespace from ulem.sty 2018-08-21 15:15:08 +10:00
Gerwin Klein 8af6b2ec1a Isabelle2018: add ulem.sty which is now required by isabelle.sty
(available by default in newer tetex installs, but not older ones)
2018-08-20 09:06:37 +10:00
Gerwin Klein 011e08458e Isabelle2018: new comment syntax
(result of "isabelle update_comments <dirs>")
2018-08-20 09:06:35 +10:00
Matthew Brecknell 184d6b70b7 remove most tab characters 2017-10-20 14:22:36 +11:00
Alejandro Gomez-Londono 796887d9b1 Removes all trailing whitespaces 2017-07-12 15:13:51 +10:00
Matthew Brecknell 0b039a0735 Isabelle2016-1: syntax: use semantic markup instead of "header" 2017-01-05 14:22:24 +11:00
Matthew Brecknell c2fa704d9b add workaround for building documents with TeX Live 2016 [VER-622]
Isabelle LaTeX style files use old font commands \bf, \rm, \tt, etc.
However, newer versions of some LaTeX document classes (e.g. scrbook)
have removed support for these commands. This brings back those
commands for documents built with isabelle.sty.
2016-07-22 07:48:08 +10:00
Miki Tanaka 386e33bbbd CamkesCdlRefine finished ... 2016-02-11 11:15:59 +11:00
Matthew Fernandez 814275e104 camkes: Merge some updates to the arch model. 2015-10-16 14:59:37 +11:00
Matthew Fernandez b5b9248583 camkes: Update architectural model.
This brings the architectural model in line with the current implementation by
making the following adjustments:
 - Remove "trait" terminology and replace with "procedure." This was already
   done in the datatypes, but had not been updated in the accompanying text.
 - Remove both fixed size and NULL-terminated arrays and replace with the more
   recent arbitrary sized arrays. Neither of the former are supported, but can
   now be emulated if necessary.
 - Remove references to `RPCEvent` and `DirectCall` connectors. `RPCEvent` no
   longer exists and `DirectCall`, while still present, introduces complexities
   that are not adequately explained in the context of this document.
 - Remove legacy comments.
 - Various typo fixes.
2015-04-23 14:37:11 +10:00
David Greenaway a50574d353 camkes: Port to Isabelle 2014.
The only major change is that "embed" is now a constant in HOL, removing
it from the set of valid names for free variables.

Have renamed uses of "embed" to "embed_data"; a better name could
probably be chosen by someone more familiar with the code.
2014-09-15 10:42:46 +10:00
Gerwin Klein 84595f4233 release cleanup 2014-07-17 18:22:50 +02:00
Gerwin Klein 2a03e81df4 Import release snapshot. 2014-07-14 21:32:44 +02:00