/* Test for utimesys() syscall which is available on illumos
and older Solaris.
*/
#include "scalar.h"
__attribute__((noinline))
static void sys_utimesys(void)
{
GO(SYS_utimesys, "(FUTIMENS) 3s 1m");
SY(SYS_utimesys, x0 + 0, x0 - 1, x0 + 1); FAIL;
}
__attribute__((noinline))
static void sys_utimesys2(void)
{
GO(SYS_utimesys, "(FUTIMENS) 3s 0m");
SY(SYS_utimesys, x0 + 0, x0 - 1, x0 + NULL); FAIL;
}
__attribute__((noinline))
static void sys_utimesys3(void)
{
GO(SYS_utimesys, "(UTIMENSAT) 5s 2m");
SY(SYS_utimesys, x0 + 1, x0 - 1, x0 + 1, x0 + 1, x0); FAIL;
}
__attribute__((noinline))
static void sys_utimesys4(void)
{
GO(SYS_utimesys, "(UTIMENSAT) 5s 0m");
SY(SYS_utimesys, x0 + 1, x0 - 1, x0 + NULL, x0 + NULL, x0); FAIL;
}
int main(void)
{
/* Uninitialised, but we know px[0] is 0x0. */
long *px = malloc(sizeof(long));
x0 = px[0];
/* SYS_utimesys 110 */
sys_utimesys();
sys_utimesys2();
sys_utimesys3();
sys_utimesys4();
return 0;
}