/* Test for syscalls that are available on illumos but are removed on
Solaris 11. This test is compiled only on illumos. */
#include "scalar.h"
#include <sys/fcntl.h>
__attribute__((noinline))
static void sys_open(void)
{
GO(SYS_open, "(2-args) 2s 1m");
SY(SYS_open, x0, x0); FAIL;
}
__attribute__((noinline))
static void sys_open2(void)
{
GO(SYS_open, "(3-args) 3s 1m");
SY(SYS_open, x0, x0 | O_CREAT, x0); FAIL;
}
int main(void)
{
/* Uninitialised, but we know px[0] is 0x0. */
long *px = malloc(sizeof(long));
x0 = px[0];
/* SYS_open 5 */
sys_open();
sys_open2();
/* SYS_link 9 */
GO(SYS_link, "2s 2m");
SY(SYS_link, x0, x0); FAIL;
/* SYS_unlink 10 */
GO(SYS_unlink, "1s 1m");
SY(SYS_unlink, x0); FAIL;
/* SYS_mknod 14 */
/* XXX Missing wrapper. */
/* SYS_chmod 15 */
GO(SYS_chmod, "2s 1m");
SY(SYS_chmod, x0, x0); FAIL;
/* SYS_chown 16 */
GO(SYS_chown, "3s 1m");
SY(SYS_chown, x0, x0, x0); FAIL;
/* SYS_stat 18 */
GO(SYS_stat, "2s 2m");
SY(SYS_stat, x0, x0); FAIL;
/* SYS_fstat 28 */
GO(SYS_fstat, "2s 1m");
SY(SYS_fstat, x0, x0); FAIL;
/* SYS_access 33 */
GO(SYS_access, "2s 1m");
SY(SYS_access, x0, x0); FAIL;
/* SYS_rmdir 79 */
GO(SYS_rmdir, "1s 1m");
SY(SYS_rmdir, x0); FAIL;
/* SYS_mkdir 80 */
GO(SYS_mkdir, "2s 1m");
SY(SYS_mkdir, x0, x0); FAIL;
/* SYS_lstat 88 */
GO(SYS_lstat, "2s 2m");
SY(SYS_lstat, x0, x0); FAIL;
/* SYS_symlink 89 */
GO(SYS_symlink, "2s 2m");
SY(SYS_symlink, x0, x0); FAIL;
/* SYS_readlink 90 */
GO(SYS_readlink, "3s 2m");
SY(SYS_readlink, x0, x0, x0 + 1); FAIL;
/* SYS_fchmod 93 */
GO(SYS_fchmod, "2s 0m");
SY(SYS_fchmod, x0 - 1, x0); FAIL;
/* SYS_fchown 94 */
GO(SYS_fchown, "3s 0m");
SY(SYS_fchown, x0, x0, x0); FAIL;
/* SYS_lchown 130 */
GO(SYS_lchown, "3s 1m");
SY(SYS_lchown, x0, x0, x0); FAIL;
/* SYS_rename 134 */
GO(SYS_rename, "2s 2m");
SY(SYS_rename, x0, x0); FAIL;
/* SYS_stat64 215 */
/* Tested in x86-solaris/scalar_obsolete.c. */
/* SYS_lstat64 216 */
/* Tested in x86-solaris/scalar_obsolete.c. */
/* SYS_fstat64 217 */
/* Tested in x86-solaris/scalar_obsolete.c. */
/* SYS_open64 225 */
/* Tested in x86-solaris/scalar_obsolete.c. */
return 0;
}