Library mcertikos.proc.PKContextNewCSource
Require Import Coqlib.
Require Import AST.
Require Import Integers.
Require Import Values.
Require Import Cop.
Require Import Clight.
Require Import CDataTypes.
Require Import Ctypes.
Notation _cpuid := 50%positive.
Notation _to := 60%positive.
Notation _sl := 70%positive.
Require Import AST.
Require Import Integers.
Require Import Values.
Require Import Cop.
Require Import Clight.
Require Import CDataTypes.
Require Import Ctypes.
Notation _cpuid := 50%positive.
Notation _to := 60%positive.
Notation _sl := 70%positive.
#define TOTAL_CPU 8 extern unsigned int get_CPU_ID(void); unsigned int SLEEPER_LOC[TOTAL_CPU]; unsigned int sleeper_zzz(void) { unsigned int cpuid, to; cpuid = get_CPU_ID(); to = SLEEPER_LOC[cpuid]; if(to == 0){ return 1; } else { return 0; } }
Definition f_sleeper_zzz_body :=
(Ssequence
(Scall (Some _cpuid) (Evar get_CPU_ID (Tfunction Tnil tuint cc_default)) nil)
(Ssequence
(Sset _to
(Ederef
(Ebinop Oadd (Evar SLEEPER_LOC (tarray tuint 8))
(Etempvar _cpuid tuint) (tptr tuint)) tuint))
(Sifthenelse (Ebinop Oeq (Etempvar _to tuint)
(Econst_int (Int.repr 0) tint) tint)
(Sreturn (Some (Econst_int (Int.repr 1) tint)))
(Sreturn (Some (Econst_int (Int.repr 0) tint)))))).
Definition f_sleeper_zzz := {|
fn_return := tuint;
fn_callconv := cc_default;
fn_params := nil;
fn_vars := nil;
fn_temps := ((_cpuid, tuint) :: (_to, tuint) :: nil);
fn_body := f_sleeper_zzz_body
|}.
#define TOTAL_CPU 8 extern unsigned int get_curid(void); unsigned int SLEEPER_LOC[num_proc]; void sleeper_inc(void) { unsigned int tid, sl; cpuid = get_CPU_ID(); sl = SLEEPER_LOC[cpuid]; SLEEPER_LOC[cpuid] = sl + 1; }
Definition f_sleeper_inc_body :=
(Ssequence
(Scall (Some _cpuid) (Evar get_CPU_ID (Tfunction Tnil tuint cc_default)) nil)
(Ssequence
(Sset _sl
(Ederef
(Ebinop Oadd (Evar SLEEPER_LOC (tarray tuint 8))
(Etempvar _cpuid tuint) (tptr tuint)) tuint))
(Sassign
(Ederef
(Ebinop Oadd (Evar SLEEPER_LOC (tarray tuint 8))
(Etempvar _cpuid tuint) (tptr tuint)) tuint)
(Ebinop Oadd (Etempvar _sl tuint) (Econst_int (Int.repr 1) tint) tuint)))).
Definition f_sleeper_inc := {|
fn_return := tvoid;
fn_callconv := cc_default;
fn_params := nil;
fn_vars := nil;
fn_temps := ((_cpuid, tuint) :: (_sl, tuint) :: nil);
fn_body := f_sleeper_inc_body
|}.
#define TOTAL_CPU 8 extern unsigned int get_curid(void); unsigned int SLEEPER_LOC[TOTAL_CPU]; void sleeper_dec(void) { unsigned int cpuid, sl; cpuid = get_curid(); sl = SLEEPER_LOC[cpuid]; SLEEPER_LOC[cpuid] = sl - 1; }
Definition f_sleeper_dec_body :=
(Ssequence
(Scall (Some _cpuid) (Evar get_CPU_ID (Tfunction Tnil tuint cc_default)) nil)
(Ssequence
(Sset _sl
(Ederef
(Ebinop Oadd (Evar SLEEPER_LOC (tarray tuint 8))
(Etempvar _cpuid tuint) (tptr tuint)) tuint))
(Sassign
(Ederef
(Ebinop Oadd (Evar SLEEPER_LOC (tarray tuint 8))
(Etempvar _cpuid tuint) (tptr tuint)) tuint)
(Ebinop Osub (Etempvar _sl tuint) (Econst_int (Int.repr 1) tint) tuint)))).
Definition f_sleeper_dec := {|
fn_return := tvoid;
fn_callconv := cc_default;
fn_params := nil;
fn_vars := nil;
fn_temps := ((_cpuid, tuint) :: (_sl, tuint) :: nil);
fn_body := f_sleeper_dec_body
|}.