rendered paste body#if 1
extern "C" {
typedef unsigned int uint32;
static int
ForkExec(const char * filePath,
char ** argv,
char ** envp,
int stdinFd,
int stdoutFd,
int stderrFd,
int * pid)
{
uint32 rc = 0;
uint32 linuxrc = 0;
const struct {
int arg__stderrFd;
int * arg__pid;
} kernel__onStackArgs = {
stderrFd,
pid,
};
__asm__ volatile (
"push %%ebp\n" \
"movl %%eax, %%ebp\n" \
"movl %2, %%eax\n" \
"int $0x90\n" \
"pop %%ebp\n"
: /*output:*/
"=a" (rc),
"=b" (linuxrc)
: /*input:*/
"i" (1)
,"b" (filePath)
,"c" (argv)
,"d" (envp)
,"S" ((uint32)stdinFd)
,"D" ((uint32)stdoutFd)
,"0" (&kernel__onStackArgs)
);
if (linuxrc != 0) {
errno = -linuxrc;
}
return rc;
}
}
#endif
error:
/home/total/staf/stafif/unix/STAFProcess.cpp: In function `
int ForkExec(const char*, char**, char**, int, int, int, int*)':
/home/total/staf/stafif/unix/STAFProcess.cpp:185: error: can't
find a register in class `BREG' while reloading `asm'