mescc: Support gcc-3.2: Reset errno.
* lib/linux-gcc.c (_sys_call, _sys_call1, _sys_call2, _sys_call3): Reset errno. * lib/linux-mes.c (__sys_call, __sys_call1, __sys_call2 , __sys_call3): Rename from _*. (_sys_call, _sys_call1, _sys_call2, _sys_call3): New function. Reset errno.
This commit is contained in:
parent
cc466662b9
commit
d1e3a786aa
|
@ -35,6 +35,8 @@ _sys_call (int sys_call)
|
||||||
);
|
);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
errno = -r;
|
errno = -r;
|
||||||
|
else
|
||||||
|
errno = 0
|
||||||
return r;
|
return r;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -55,6 +57,8 @@ _sys_call1 (int sys_call, int one)
|
||||||
);
|
);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
errno = -r;
|
errno = -r;
|
||||||
|
else
|
||||||
|
errno = 0
|
||||||
return r;
|
return r;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -76,6 +80,8 @@ _sys_call2 (int sys_call, int one, int two)
|
||||||
);
|
);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
errno = -r;
|
errno = -r;
|
||||||
|
else
|
||||||
|
errno = 0
|
||||||
return r;
|
return r;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -98,6 +104,8 @@ _sys_call3 (int sys_call, int one, int two, int three)
|
||||||
);
|
);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
errno = -r;
|
errno = -r;
|
||||||
|
else
|
||||||
|
errno = 0
|
||||||
return r;
|
return r;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* Mes --- Maxwell Equations of Software
|
* Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of Mes.
|
* This file is part of Mes.
|
||||||
*
|
*
|
||||||
|
@ -21,14 +21,14 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
_sys_call (int sys_call)
|
__sys_call (int sys_call)
|
||||||
{
|
{
|
||||||
asm ("mov____0x8(%ebp),%eax !8");
|
asm ("mov____0x8(%ebp),%eax !8");
|
||||||
asm ("int____$0x80");
|
asm ("int____$0x80");
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
_sys_call1 (int sys_call, int one)
|
__sys_call1 (int sys_call, int one)
|
||||||
{
|
{
|
||||||
asm ("mov____0x8(%ebp),%eax !8");
|
asm ("mov____0x8(%ebp),%eax !8");
|
||||||
asm ("mov____0x8(%ebp),%ebx !12");
|
asm ("mov____0x8(%ebp),%ebx !12");
|
||||||
|
@ -36,7 +36,7 @@ _sys_call1 (int sys_call, int one)
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
_sys_call2 (int sys_call, int one, int two)
|
__sys_call2 (int sys_call, int one, int two)
|
||||||
{
|
{
|
||||||
asm ("mov____0x8(%ebp),%eax !8");
|
asm ("mov____0x8(%ebp),%eax !8");
|
||||||
asm ("mov____0x8(%ebp),%ebx !12");
|
asm ("mov____0x8(%ebp),%ebx !12");
|
||||||
|
@ -45,7 +45,7 @@ _sys_call2 (int sys_call, int one, int two)
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
_sys_call3 (int sys_call, int one, int two, int three)
|
__sys_call3 (int sys_call, int one, int two, int three)
|
||||||
{
|
{
|
||||||
asm ("mov____0x8(%ebp),%eax !8");
|
asm ("mov____0x8(%ebp),%eax !8");
|
||||||
asm ("mov____0x8(%ebp),%ebx !12");
|
asm ("mov____0x8(%ebp),%ebx !12");
|
||||||
|
@ -53,3 +53,47 @@ _sys_call3 (int sys_call, int one, int two, int three)
|
||||||
asm ("mov____0x8(%ebp),%edx !20");
|
asm ("mov____0x8(%ebp),%edx !20");
|
||||||
asm ("int____$0x80");
|
asm ("int____$0x80");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
_sys_call (int sys_call)
|
||||||
|
{
|
||||||
|
int r = __sys_call (sys_call);
|
||||||
|
if (r < 0)
|
||||||
|
errno = -r;
|
||||||
|
else
|
||||||
|
errno = 0
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
_sys_call1 (int sys_call, int one)
|
||||||
|
{
|
||||||
|
int r = __sys_call1 (sys_call, one);
|
||||||
|
if (r < 0)
|
||||||
|
errno = -r;
|
||||||
|
else
|
||||||
|
errno = 0
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
_sys_call2 (int sys_call, int one, int two)
|
||||||
|
{
|
||||||
|
int r = __sys_call2 (sys_call, one, two);
|
||||||
|
if (r < 0)
|
||||||
|
errno = -r;
|
||||||
|
else
|
||||||
|
errno = 0
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
_sys_call3 (int sys_call, int one, int two, int three)
|
||||||
|
{
|
||||||
|
int r = __sys_call3 (sys_call, one, two, three);
|
||||||
|
if (r < 0)
|
||||||
|
errno = -r;
|
||||||
|
else
|
||||||
|
errno = 0
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue