#ifndef SDI__EXEC__H
#define SDI__EXEC__H
#include <stdlib.h>
extern "C"
{
@param
@param
@param
@param
extern L4_ThreadId_t sdi_elfexec(const void* data, size_t datalen,
L4_ThreadId_t pagerid, L4_ThreadId_t newthreadid);
extern L4_ThreadId_t sdi_elfexecve(const void* data, size_t datalen,
L4_ThreadId_t pager, L4_ThreadId_t newthreadid,
const char *const argv[], const char *const envp[]);
extern L4_ThreadId_t sdi_elfexecfv(const char* path,
const char *const argv[]);
extern L4_ThreadId_t sdi_elfexecfve(const char* path,
const char *const argv[], const char *const envp[]);
extern L4_ThreadId_t sdi_elfexecf(L4_ThreadId_t pagerid,
const char* path,
const char *const argv[], const char *const envp[]);
bool sdi_waitfor(L4_ThreadId_t thread, L4_Word_t flags, L4_Word_t *retcode);
bool sdi_waitforever(L4_ThreadId_t thread, L4_Word_t *retcode);
}
#ifdef __cplusplus
static inline L4_ThreadId_t sdi_elfexec(const void* data, size_t datalen)
{
return sdi_elfexec(data, datalen, L4_nilthread, L4_nilthread);
}
static inline L4_ThreadId_t sdi_elfexec(const void* data, size_t datalen, L4_ThreadId_t pagerid)
{
return sdi_elfexec(data, datalen, pagerid, L4_nilthread);
}
#endif
#endif