test3.xreate
No OneTemporary

File Metadata

Created
Thu, Jul 9, 12:32 AM

test3.xreate

interface(extern-c){
externalLibs = library:: pkgconfig("libxml-2.0").
include {
externalLibs = {"scripts/virtualization/test1.h"}
}.
}
import raw ("scripts/virtualization/test3.assembly.lp").
import raw ("scripts/cfa/context.lp").
DictSizo = type slave dict_sizo.
Sizo = type slave sizo.
guard:: strategy(prefix)
{
virt_dereferenceFilename = function(filename:: string):: string; requires(virt_dereference_strategy)
{
dictSizo = intrinsic query("dict_sizo")::[DictSizo].
sizoId = intrinsic query late("sizo_current"->sizoCurrent:: Sizo):: int; demand(sizo)
{
loop fold(dictSizo->entry::DictSizo, 0->id):: int
{
if(entry[0] == sizoCurrent):: int { entry[1] } else { id }
}
}.
buf = "000000000"::string.
seq
{ sprintf(buf, "%d/%s", sizoId, filename) }
{ buf }
}
}
guard:: strategy(none)
{
virt_dereferenceFilename = function(filename:: string):: string; requires(virt_dereference_strategy)
{
filename
}
}
virt_openFile = function(filename:: string):: int
{
filenameReal = virt_dereferenceFilename(filename):: string.
printf("file opened: %s ", filenameReal)
}
main = function:: int; entry
{
seq
{ context::assign_sizo(domainA); define_sizo_prop(inner). virt_openFile("test1") }
{ context::assign_sizo(domainB); define_sizo_prop(outer). virt_openFile("test1") }
{ 0 }
}

Event Timeline