Library mcertikos.mcslock.MCSStateDataType
This file provide some data types that will be used in the layer definitions and refinement proofs
Require Import Coqlib.
Require Import Constant.
Require Import Maps.
Require Import Values.
Require Import Integers.
Require Import AST.
Require Import AsmX.
Require Export AuxFunctions.
Require Import Constant.
Require Import Maps.
Require Import Values.
Require Import Integers.
Require Import AST.
Require Import AsmX.
Require Export AuxFunctions.
*Data types for abstract data
Section MCSSTATEFORINTROLEVELS.
Definition NULL := TOTAL_CPU.
Definition MCSNodePool : Type := ZMap.t (bool × Z).
Definition MCSNodePoolInit := ZMap.init (false, NULL).
Agent Container
Inductive MCSStruct : Type :=
mkMCSStruct {
last : Z;
nodepool : MCSNodePool
}.
Definition MCSLockPool : Type := ZMap.t MCSStruct.
Definition mcs_lock_pool_init := ZMap.init (mkMCSStruct NULL MCSNodePoolInit).
End MCSSTATEFORINTROLEVELS.
mkMCSStruct {
last : Z;
nodepool : MCSNodePool
}.
Definition MCSLockPool : Type := ZMap.t MCSStruct.
Definition mcs_lock_pool_init := ZMap.init (mkMCSStruct NULL MCSNodePoolInit).
End MCSSTATEFORINTROLEVELS.