test2.xreate
No OneTemporary

File Metadata

Created
Thu, Jul 9, 1:51 AM

test2.xreate

interface(extern-c){
externalLibs = library:: pkgconfig("libxml-2.0").
include {
externalLibs = {"scripts/virtualization/test1.h"}
}.
}
import raw ("scripts/virtualization/test2.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.
seq{printf("file opened: %s ", filenameReal)}
}
main = function:: int; entry
{
seq
{ context::assign_sizo(domainA). virt_openFile("test1") }
{ context::assign_sizo(domainA). virt_openFile("test1") }
{ 0 }
}

Event Timeline