Library mcertikos.driver.CertiKOS

Dependencies for extraction
Require Import Coqlib.
Require Wfsimpl.
Require AST.
Require Iteration.
Require Floats.
Require SelectLong.
Require RTLgen.
Require Inlining.
Require ValueDomain.
Require Tailcall.
Require Allocation.
Require Ctypes.
Require Csyntax.
Require Int31.
CompCertX:test-compcert-param-memory instantiations of extractees with concrete memory model
Require InitializersImpl.
Require Import mcertikos.driver.CertiKOSImpl.

Require Import liblayers.compcertx.ErrorMonad.
Require Import liblayers.logic.Modules.
Require Import liblayers.logic.Layers.
Require Import String.

Require Import mcertikos.clib.CDataTypes.
Require Import mcertikos.mm.ALInitGenLinkSource.
Require Import mcertikos.mm.ALOpGenLinkSource.
Require Import mcertikos.mm.ALGenLinkSource.
Require Import mcertikos.mm.ContainerGenLinkSource.
Require Import mcertikos.mm.PTIntroGenLinkSource.
Require Import mcertikos.mm.PTOpGenLinkSource.
Require Import mcertikos.mm.PTCommGenLinkSource.
Require Import mcertikos.mm.PTKernGenLinkSource.
Require Import mcertikos.mm.PTInitGenLinkSource.
Require Import mcertikos.mm.PTNewGenLinkSource.
Require Import mcertikos.mm.ShareIntroGenLinkSource.
Require Import mcertikos.mm.ShareOpGenLinkSource.
Require Import mcertikos.mm.ShareGenLinkSource.
Require Import mcertikos.proc.KContextGenLinkSource.
Require Import mcertikos.proc.KContextNewGenLinkSource.
Require Import mcertikos.proc.ThreadIntroGenLinkSource.
Require Import mcertikos.proc.ThreadInitGenLinkSource.
Require Import mcertikos.proc.QueueIntroGenLinkSource.
Require Import mcertikos.proc.QueueInitGenLinkSource.
Require Import mcertikos.proc.CurIDGenLinkSource.
Require Import mcertikos.proc.ThreadSchedGenLinkSource.
Require Import mcertikos.proc.ThreadGenLinkSource.
Require Import mcertikos.proc.IPCIntroGenLinkSource.
Require Import mcertikos.proc.IPCGenLinkSource.
Require Import mcertikos.proc.UCtxtIntroGenLinkSource.
Require Import mcertikos.proc.ProcGenLinkSource.
Require Import mcertikos.trap.TrapArgGenLinkSource.
Require Import mcertikos.trap.TrapGenLinkSource.
Require Import mcertikos.trap.DispatchGenLinkSource.
Require Import mcertikos.trap.SysCallGenLinkSource.

Require Import CompCertiKOSproofImpl.
Require Import RealParamsImpl.

Section WITHCOMPCERTIKOS.

  Definition add_loc {A} (s: string) (r: res A) := r.

  Local Notation "M ⊗ Mrest" := (Mrest M)
    (right associativity, at level 35, only parsing).

  Definition certikos_plus_ctxt CTXT: res LAsm.module :=
    
    M0010 <- add_loc "MALInit" MALInit_impl;
    M0020 <- add_loc "MALOp" MALOp_impl;
    M0030 <- add_loc "MALT" MALT_impl;
    M0040 <- add_loc "MContainer" MContainer_impl;
    M0050 <- add_loc "MPTIntro" MPTIntro_impl;
    M0060 <- add_loc "MPTOp" MPTOp_impl;
    M0070 <- add_loc "MPTCommon" MPTCommon_impl;
    M0080 <- add_loc "MPTKern" MPTKern_impl;
    M0090 <- add_loc "MPTInit" MPTInit_impl;
    M0110 <- add_loc "MPTNew" MPTNew_impl;
    M0120 <- add_loc "MShareIntro" MShareIntro_impl;
    M0130 <- add_loc "MShareOp" MShareOp_impl;
    M0140 <- add_loc "MShare" MShare_impl;

    M1000 <- add_loc "PKContext" PKContext_impl;
    M1010 <- add_loc "PKContextNew" PKContextNew_impl;
    M1020 <- add_loc "PThreadIntro" PThreadIntro_impl;
    M1030 <- add_loc "PThreadInit" PThreadInit_impl;
    M1040 <- add_loc "PQueueIntro" PQueueIntro_impl;
    M1050 <- add_loc "PQueueInit" PQueueInit_impl;
    
    M1060 <- add_loc "PCurID" PCurID_impl;
    M1070 <- add_loc "PThreadSched" PThreadSched_impl;
    M1080 <- add_loc "PThread" PThread_impl;
    M1090 <- add_loc "PIPCIntro" PIPCIntro_impl;
    M1100 <- add_loc "PIPC" PIPC_impl;
    M1110 <- add_loc "PUCtxtIntro" PUCtxtIntro_impl;
    M1120 <- add_loc "PProc" PProc_impl;

    

    M3000 <- add_loc "TTrapArg" TTrapArg_impl;
    M3010 <- add_loc "TTrap" TTrap_impl;
    M3020 <- add_loc "TDispatch" TDispatch_impl;
    M3030 <- add_loc "TSysCall" TSysCall_impl;

    ret (M0010 M0020 M0030 M0040 M0050 M0060 M0070
         M0080 M0090 M0110 M0120 M0130 M0140

         M1000 M1010 M1020 M1030 M1040 M1050 M1060 M1070
         M1080 M1090 M1100 M1110 M1120

         

         M3000 M3010 M3020 M3030

         CTXT).

  Definition certikos := certikos_plus_ctxt .

End WITHCOMPCERTIKOS.