definition module DynamicLink;


//1.3
from StdString import String;
from ioTypes import IOState;
//3.1
/*2.0
from ioTypes import ::IOState;
0.2*/
import ProcessSerialNumber;

// At start-up time
FirstInstanceOfServer2 :: !Bool -> !Bool;
is_first_instance :: !Bool;

// AddClient; StartClientApplication
StartProcess :: !Bool !String !String !String !String -> (!Bool,!Int,!String);
// cmd_line must be zeroterminated
StartProcess2 :: !String !String !String -> (!Bool,!Int);
KillClient :: !Int -> !Bool;

// Communication at link time
ReceiveReq :: !Bool -> (!Int,!String);
ReplyReq :: !Int -> !Bool;	
ReplyReqS :: !String -> !Bool;
ReceiveCodeDataAdr :: !Int !Int -> (!Bool,!*Int,!*Int);
ReceiveReqWithTimeOutE :: !Bool -> (!Bool,!ProcessSerialNumber,!String);
GenerateObjectFileOld :: !String !String -> !Bool;

// Memory functions
StoreLong :: !String !Int !Int -> !Bool;
SetCurrentLibrary :: !String -> (!Bool,!*Int);
GetFuncAddress :: !String !Int !*Int -> (!Int, !*Int);
mwrites :: !Int !Int !{#Char} !*Int -> !*Int;
MakeNonUnique :: !*Int -> (!*Int, !Int);

// new
GetDynamicLinkerPath :: !String;
FlushBuffers :: !Int -> !Int;
