8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * CDDL HEADER START
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * The contents of this file are subject to the terms of the
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * Common Development and Distribution License (the "License").
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * You may not use this file except in compliance with the License.
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * or http://www.opensolaris.org/os/licensing.
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * See the License for the specific language governing permissions
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * and limitations under the License.
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * When distributing Covered Code, include this CDDL HEADER in each
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * If applicable, add the following below this CDDL HEADER, with the
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * fields enclosed by brackets "[]" replaced with your own identifying
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * information: Portions Copyright [yyyy] [name of copyright owner]
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * CDDL HEADER END
80e2ca8596e3435bc3b76f3c597833ea0a87f85e * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * This file contains the emulation functions for all of the
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * obsolete system call traps that existed in Solaris 10 but
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * that have been deleted in the current version of Solaris.
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner int fd, const char *path, struct stat *sb, int flags)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fstatat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_stat(sysret_t *rval, const char *path, struct stat *sb)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fstatat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_lstat(sysret_t *rval, const char *path, struct stat *sb)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fstatat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner AT_FDCWD, path, sb, AT_SYMLINK_NOFOLLOW));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_fstat(sysret_t *rval, int filedes, struct stat *sb)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fstatat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner int fd, const char *path, struct stat64 *sb, int flags)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fstatat64 + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_stat64(sysret_t *rval, const char *path, struct stat64 *sb)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fstatat64 + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_lstat64(sysret_t *rval, const char *path, struct stat64 *sb)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fstatat64 + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner AT_FDCWD, path, sb, AT_SYMLINK_NOFOLLOW));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_fstat64(sysret_t *rval, int filedes, struct stat64 *sb)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fstatat64 + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner#endif /* !_LP64 */
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_openat(sysret_t *rval, int fd, const char *path, int oflag, mode_t mode)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_openat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_open(sysret_t *rval, char *path, int oflag, mode_t mode)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_openat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_creat(sysret_t *rval, char *path, mode_t mode)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_openat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner AT_FDCWD, path, O_WRONLY | O_CREAT | O_TRUNC, mode));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_openat64(sysret_t *rval, int fd, const char *path, int oflag, mode_t mode)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_openat64 + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_open64(sysret_t *rval, char *path, int oflag, mode_t mode)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_openat64 + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_creat64(sysret_t *rval, char *path, mode_t mode)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_openat64 + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner AT_FDCWD, path, O_WRONLY | O_CREAT | O_TRUNC, mode));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner#endif /* !_LP64 */
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_forksys + 1024, 0, 0));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_forksys + 1024, 1, 0));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fcntl + 1024, fd, F_DUPFD, 0));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_poll(sysret_t *rval, struct pollfd *fds, nfds_t nfd, int timeout)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner ts.tv_nsec = (timeout % MILLISEC) * MICROSEC;
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_pollsys + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_lwp_mutex_lock(sysret_t *rval, void *mp)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_lwp_mutex_timedlock + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_lwp_sema_wait(sysret_t *rval, void *sp)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_lwp_sema_timedwait + 1024,
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkners10_chmod(sysret_t *rval, const char *name, mode_t mode)
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkner return (__systemcall(rval, SYS_fchmodat + 1024,
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkners10_fchmod(sysret_t *rval, int filedes, mode_t mode)
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkner return (__systemcall(rval, SYS_fchmodat + 1024,
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkner int fd, const char *name, uid_t uid, gid_t gid, int flag)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fchownat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_chown(sysret_t *rval, const char *name, uid_t uid, gid_t gid)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fchownat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_lchown(sysret_t *rval, const char *name, uid_t uid, gid_t gid)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fchownat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner AT_FDCWD, name, uid, gid, AT_SYMLINK_NOFOLLOW));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_fchown(sysret_t *rval, int filedes, uid_t uid, gid_t gid)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fchownat + 1024,
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkners10_mkdir(sysret_t *rval, const char *dname, int dmode)
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkner return (__systemcall(rval, SYS_mkdirat + 1024,
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkners10_mknod(sysret_t *rval, const char *fname, int fmode, dev_t dev)
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkner return (__systemcall(rval, SYS_mknodat + 1024,
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkners10_link(sysret_t *rval, const char *path1, const char *path2)
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkner return (__systemcall(rval, SYS_linkat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_unlinkat(sysret_t *rval, int fd, const char *name, int flags)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_unlinkat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_unlink(sysret_t *rval, const char *name)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_unlinkat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_rmdir(sysret_t *rval, const char *name)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_unlinkat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner int oldfd, const char *oldname, int newfd, const char *newname)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_renameat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_rename(sysret_t *rval, const char *oldname, const char *newname)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_renameat + 1024,
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkners10_symlink(sysret_t *rval, const char *path1, const char *path2)
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkner return (__systemcall(rval, SYS_symlinkat + 1024,
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkners10_readlink(sysret_t *rval, const char *path, char *buf, size_t bufsize)
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkner return (__systemcall(rval, SYS_readlinkat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_faccessat(sysret_t *rval, int fd, const char *fname, int amode, int flag)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_faccessat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_access(sysret_t *rval, const char *fname, int amode)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_faccessat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_utime(sysret_t *rval, const char *path, const struct utimbuf *times)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_utimesys + 1024, 1,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_utimes(sysret_t *rval, const char *path, const struct timeval times[2])
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_utimesys + 1024, 1,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner int fd, const char *path, const struct timeval times[2])
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_utimesys + 1024, 0, fd, tsp));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_utimesys + 1024, 1, fd, path, tsp, 0));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_xstat(sysret_t *rval, int version, const char *path, struct stat *statb)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fstatat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_lxstat(sysret_t *rval, int version, const char *path, struct stat *statb)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fstatat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner AT_FDCWD, path, statb, AT_SYMLINK_NOFOLLOW));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_fxstat(sysret_t *rval, int version, int fd, struct stat *statb)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_fstatat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_xmknod(sysret_t *rval, int version, const char *path,
794f0adb050e571bbfde4d2a19b9f88b852079ddRoger A. Faulkner return (__systemcall(rval, SYS_mknodat + 1024,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner#endif /* __x86 */
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * This is the fsat() system call trap in s10.
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * It has been removed in the current system.
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner uintptr_t arg3, uintptr_t arg4, uintptr_t arg5)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner case 0: /* openat */
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner (const char *)arg2, (int)arg3, (mode_t)arg4));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner (const char *)arg2, (int)arg3, (mode_t)arg4));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner (const char *)arg2, (struct stat64 *)arg3, (int)arg4));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner (const char *)arg2, (struct stat *)arg3, (int)arg4));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (s10_fchownat(rval, (int)arg1, (char *)arg2,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (s10_unlinkat(rval, (int)arg1, (char *)arg2,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner (const char *)arg2, (const struct timeval *)arg3));
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (s10_renameat(rval, (int)arg1, (char *)arg2,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (s10_faccessat(rval, (int)arg1, (char *)arg2,
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner * Interposition upon SYS_umount
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkners10_umount(sysret_t *rval, const char *path)
8fd04b8338ed5093ec2d1e668fa620b7de44c177Roger A. Faulkner return (__systemcall(rval, SYS_umount2 + 1024, path, 0));