1999-02-19 03:21:36 +03:00
/*
* Copyright ( c ) 1991 , 1992 Paul Kranenburg < pk @ cs . few . eur . nl >
* Copyright ( c ) 1993 Branko Lankester < branko @ hacktic . nl >
* Copyright ( c ) 1993 , 1994 , 1995 , 1996 Rick Sladkey < jrs @ world . std . com >
1999-12-23 17:20:14 +03:00
* Copyright ( c ) 1996 - 1999 Wichert Akkerman < wichert @ cistron . nl >
1999-02-19 03:21:36 +03:00
* All rights reserved .
*
* Redistribution and use in source and binary forms , with or without
* modification , are permitted provided that the following conditions
* are met :
* 1. Redistributions of source code must retain the above copyright
* notice , this list of conditions and the following disclaimer .
* 2. Redistributions in binary form must reproduce the above copyright
* notice , this list of conditions and the following disclaimer in the
* documentation and / or other materials provided with the distribution .
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission .
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ` ` AS IS ' ' AND ANY EXPRESS OR
* IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED .
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT , INDIRECT ,
* INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT
* NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE ,
* DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT
* ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
*
* $ Id $
*/
# include "defs.h"
# ifdef LINUX
# define _LINUX_SOCKET_H
1999-07-09 22:56:34 +04:00
# define _LINUX_FS_H
1999-02-19 03:21:36 +03:00
2005-02-01 Roland McGrath <roland@redhat.com>
* system.c [LINUX] (MS_MANDLOCK, MS_NOATIME, MS_NODIRATIME, MS_BIND,
MS_MOVE, MS_REC, MS_VERBOSE, MS_POSIXACL, MS_ACTIVE, MS_NOUSER):
New macros.
[LINUX] (mount_flags): Add them.
[LINUX] (sys_mount): If any of (MS_BIND|MS_MOVE|MS_REMOUNT) bits are
set in the flags argument, don't try to fetch the filesystem string.
Fixes RH#141932.
2005-02-02 07:36:11 +03:00
# define MS_RDONLY 1 /* Mount read-only */
# define MS_NOSUID 2 /* Ignore suid and sgid bits */
# define MS_NODEV 4 /* Disallow access to device special files */
# define MS_NOEXEC 8 /* Disallow program execution */
# define MS_SYNCHRONOUS 16 /* Writes are synced at once */
# define MS_REMOUNT 32 /* Alter flags of a mounted FS */
# define MS_MANDLOCK 64 /* Allow mandatory locks on an FS */
# define MS_DIRSYNC 128 /* Directory modifications are synchronous */
# define MS_NOATIME 1024 /* Do not update access times. */
# define MS_NODIRATIME 2048 /* Do not update directory access times */
# define MS_BIND 4096
# define MS_MOVE 8192
# define MS_REC 16384
2007-01-16 18:10:07 +03:00
# define MS_SILENT 32768
2005-02-01 Roland McGrath <roland@redhat.com>
* system.c [LINUX] (MS_MANDLOCK, MS_NOATIME, MS_NODIRATIME, MS_BIND,
MS_MOVE, MS_REC, MS_VERBOSE, MS_POSIXACL, MS_ACTIVE, MS_NOUSER):
New macros.
[LINUX] (mount_flags): Add them.
[LINUX] (sys_mount): If any of (MS_BIND|MS_MOVE|MS_REMOUNT) bits are
set in the flags argument, don't try to fetch the filesystem string.
Fixes RH#141932.
2005-02-02 07:36:11 +03:00
# define MS_POSIXACL (1<<16) /* VFS does not apply the umask */
2007-01-16 18:10:07 +03:00
# define MS_UNBINDABLE (1<<17) /* change to unbindable */
# define MS_PRIVATE (1<<18) /* change to private */
# define MS_SLAVE (1<<19) /* change to slave */
# define MS_SHARED (1<<20) /* change to shared */
2011-02-22 07:04:30 +03:00
# define MS_RELATIME (1<<21)
# define MS_KERNMOUNT (1<<22)
# define MS_I_VERSION (1<<23)
# define MS_STRICTATIME (1<<24)
# define MS_BORN (1<<29)
2005-02-01 Roland McGrath <roland@redhat.com>
* system.c [LINUX] (MS_MANDLOCK, MS_NOATIME, MS_NODIRATIME, MS_BIND,
MS_MOVE, MS_REC, MS_VERBOSE, MS_POSIXACL, MS_ACTIVE, MS_NOUSER):
New macros.
[LINUX] (mount_flags): Add them.
[LINUX] (sys_mount): If any of (MS_BIND|MS_MOVE|MS_REMOUNT) bits are
set in the flags argument, don't try to fetch the filesystem string.
Fixes RH#141932.
2005-02-02 07:36:11 +03:00
# define MS_ACTIVE (1<<30)
# define MS_NOUSER (1<<31)
2006-01-13 00:21:06 +03:00
# define MS_MGC_VAL 0xc0ed0000 /* Magic flag number */
2007-01-16 18:10:07 +03:00
# define MS_MGC_MSK 0xffff0000 /* Magic flag mask */
1999-02-19 03:21:36 +03:00
# include <sys/socket.h>
# include <netinet/in.h>
# include <arpa/inet.h>
1999-07-03 22:53:05 +04:00
# include <sys/syscall.h>
2009-06-01 13:59:11 +04:00
# ifdef HAVE_LINUX_CAPABILITY_H
1999-02-19 03:21:36 +03:00
# include <linux/capability.h>
# endif
2009-06-01 13:59:11 +04:00
# ifdef HAVE_ASM_CACHECTL_H
1999-05-09 04:29:58 +04:00
# include <asm/cachectl.h>
# endif
2001-04-08 01:37:12 +04:00
# ifdef HAVE_LINUX_USTNAME_H
# include <linux/utsname.h>
# endif
2009-06-01 13:59:11 +04:00
# ifdef HAVE_ASM_SYSMIPS_H
2001-04-08 01:37:12 +04:00
# include <asm/sysmips.h>
# endif
1999-05-27 16:00:57 +04:00
# include <linux/sysctl.h>
2004-09-04 07:39:20 +04:00
static const struct xlat mount_flags [ ] = {
2006-01-13 00:21:06 +03:00
{ MS_MGC_VAL , " MS_MGC_VAL " } ,
1999-02-19 03:21:36 +03:00
{ MS_RDONLY , " MS_RDONLY " } ,
{ MS_NOSUID , " MS_NOSUID " } ,
{ MS_NODEV , " MS_NODEV " } ,
{ MS_NOEXEC , " MS_NOEXEC " } ,
{ MS_SYNCHRONOUS , " MS_SYNCHRONOUS " } ,
{ MS_REMOUNT , " MS_REMOUNT " } ,
2011-02-22 07:04:30 +03:00
{ MS_RELATIME , " MS_RELATIME " } ,
{ MS_KERNMOUNT , " MS_KERNMOUNT " } ,
{ MS_I_VERSION , " MS_I_VERSION " } ,
{ MS_STRICTATIME , " MS_STRICTATIME " } ,
{ MS_BORN , " MS_BORN " } ,
2005-02-01 Roland McGrath <roland@redhat.com>
* system.c [LINUX] (MS_MANDLOCK, MS_NOATIME, MS_NODIRATIME, MS_BIND,
MS_MOVE, MS_REC, MS_VERBOSE, MS_POSIXACL, MS_ACTIVE, MS_NOUSER):
New macros.
[LINUX] (mount_flags): Add them.
[LINUX] (sys_mount): If any of (MS_BIND|MS_MOVE|MS_REMOUNT) bits are
set in the flags argument, don't try to fetch the filesystem string.
Fixes RH#141932.
2005-02-02 07:36:11 +03:00
{ MS_MANDLOCK , " MS_MANDLOCK " } ,
{ MS_NOATIME , " MS_NOATIME " } ,
{ MS_NODIRATIME , " MS_NODIRATIME " } ,
{ MS_BIND , " MS_BIND " } ,
{ MS_MOVE , " MS_MOVE " } ,
{ MS_REC , " MS_REC " } ,
2007-01-16 18:10:07 +03:00
{ MS_SILENT , " MS_SILENT " } ,
2005-02-01 Roland McGrath <roland@redhat.com>
* system.c [LINUX] (MS_MANDLOCK, MS_NOATIME, MS_NODIRATIME, MS_BIND,
MS_MOVE, MS_REC, MS_VERBOSE, MS_POSIXACL, MS_ACTIVE, MS_NOUSER):
New macros.
[LINUX] (mount_flags): Add them.
[LINUX] (sys_mount): If any of (MS_BIND|MS_MOVE|MS_REMOUNT) bits are
set in the flags argument, don't try to fetch the filesystem string.
Fixes RH#141932.
2005-02-02 07:36:11 +03:00
{ MS_POSIXACL , " MS_POSIXACL " } ,
2007-01-16 18:10:07 +03:00
{ MS_UNBINDABLE , " MS_UNBINDABLE " } ,
{ MS_PRIVATE , " MS_PRIVATE " } ,
{ MS_SLAVE , " MS_SLAVE " } ,
{ MS_SHARED , " MS_SHARED " } ,
2005-02-01 Roland McGrath <roland@redhat.com>
* system.c [LINUX] (MS_MANDLOCK, MS_NOATIME, MS_NODIRATIME, MS_BIND,
MS_MOVE, MS_REC, MS_VERBOSE, MS_POSIXACL, MS_ACTIVE, MS_NOUSER):
New macros.
[LINUX] (mount_flags): Add them.
[LINUX] (sys_mount): If any of (MS_BIND|MS_MOVE|MS_REMOUNT) bits are
set in the flags argument, don't try to fetch the filesystem string.
Fixes RH#141932.
2005-02-02 07:36:11 +03:00
{ MS_ACTIVE , " MS_ACTIVE " } ,
{ MS_NOUSER , " MS_NOUSER " } ,
1999-02-19 03:21:36 +03:00
{ 0 , NULL } ,
} ;
int
2007-01-16 18:10:07 +03:00
sys_mount ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) ) {
2007-01-16 18:10:07 +03:00
int ignore_type = 0 , ignore_data = 0 ;
unsigned long flags = tcp - > u_arg [ 3 ] ;
/* Discard magic */
if ( ( flags & MS_MGC_MSK ) = = MS_MGC_VAL )
flags & = ~ MS_MGC_MSK ;
if ( flags & MS_REMOUNT )
ignore_type = 1 ;
else if ( flags & ( MS_BIND | MS_MOVE ) )
ignore_type = ignore_data = 1 ;
1999-02-19 03:21:36 +03:00
printpath ( tcp , tcp - > u_arg [ 0 ] ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2007-01-16 18:10:07 +03:00
1999-02-19 03:21:36 +03:00
printpath ( tcp , tcp - > u_arg [ 1 ] ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2007-01-16 18:10:07 +03:00
if ( ignore_type & & tcp - > u_arg [ 2 ] )
2005-02-01 Roland McGrath <roland@redhat.com>
* system.c [LINUX] (MS_MANDLOCK, MS_NOATIME, MS_NODIRATIME, MS_BIND,
MS_MOVE, MS_REC, MS_VERBOSE, MS_POSIXACL, MS_ACTIVE, MS_NOUSER):
New macros.
[LINUX] (mount_flags): Add them.
[LINUX] (sys_mount): If any of (MS_BIND|MS_MOVE|MS_REMOUNT) bits are
set in the flags argument, don't try to fetch the filesystem string.
Fixes RH#141932.
2005-02-02 07:36:11 +03:00
tprintf ( " %#lx " , tcp - > u_arg [ 2 ] ) ;
2007-01-16 18:10:07 +03:00
else
printstr ( tcp , tcp - > u_arg [ 2 ] , - 1 ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2007-01-16 18:10:07 +03:00
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( mount_flags , tcp - > u_arg [ 3 ] , " MS_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2007-01-16 18:10:07 +03:00
if ( ignore_data & & tcp - > u_arg [ 4 ] )
2006-01-13 00:21:06 +03:00
tprintf ( " %#lx " , tcp - > u_arg [ 4 ] ) ;
2007-01-16 18:10:07 +03:00
else
printstr ( tcp , tcp - > u_arg [ 4 ] , - 1 ) ;
1999-02-19 03:21:36 +03:00
}
return 0 ;
}
2007-01-13 14:15:48 +03:00
# define MNT_FORCE 0x00000001 /* Attempt to forcibily umount */
# define MNT_DETACH 0x00000002 /* Just detach from the tree */
# define MNT_EXPIRE 0x00000004 /* Mark for expiry */
static const struct xlat umount_flags [ ] = {
{ MNT_FORCE , " MNT_FORCE " } ,
{ MNT_DETACH , " MNT_DETACH " } ,
{ MNT_EXPIRE , " MNT_EXPIRE " } ,
{ 0 , NULL } ,
} ;
1999-06-03 18:21:07 +04:00
int
2007-01-13 14:15:48 +03:00
sys_umount2 ( struct tcb * tcp )
1999-06-03 18:21:07 +04:00
{
if ( entering ( tcp ) ) {
printstr ( tcp , tcp - > u_arg [ 0 ] , - 1 ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2007-01-13 14:15:48 +03:00
printflags ( umount_flags , tcp - > u_arg [ 1 ] , " MNT_??? " ) ;
1999-06-03 18:21:07 +04:00
}
return 0 ;
}
2004-08-31 10:48:46 +04:00
/* These are not macros, but enums. We just copy the values by hand
from Linux 2.6 .9 here . */
2004-09-04 07:39:20 +04:00
static const struct xlat personality_options [ ] = {
2004-08-31 10:48:46 +04:00
{ 0 , " PER_LINUX " } ,
{ 0x00800000 , " PER_LINUX_32BIT " } ,
{ 0x04100001 , " PER_SVR4 " } ,
{ 0x05000002 , " PER_SVR3 " } ,
{ 0x07000003 , " PER_SCOSVR3 " } ,
{ 0x06000003 , " PER_OSR5 " } ,
{ 0x05000004 , " PER_WYSEV386 " } ,
{ 0x04000005 , " PER_ISCR4 " } ,
{ 0x00000006 , " PER_BSD " } ,
{ 0x04000006 , " PER_SUNOS " } ,
{ 0x05000007 , " PER_XENIX " } ,
{ 0x00000008 , " PER_LINUX32 " } ,
{ 0x08000008 , " PER_LINUX32_3GB " } ,
{ 0x04000009 , " PER_IRIX32 " } ,
{ 0x0400000a , " PER_IRIXN32 " } ,
{ 0x0400000b , " PER_IRIX64 " } ,
{ 0x0000000c , " PER_RISCOS " } ,
{ 0x0400000d , " PER_SOLARIS " } ,
{ 0x0410000e , " PER_UW7 " } ,
{ 0x0000000f , " PER_OSF4 " } ,
{ 0x00000010 , " PER_HPUX " } ,
1999-02-19 03:21:36 +03:00
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_personality ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) )
printxval ( personality_options , tcp - > u_arg [ 0 ] , " PER_??? " ) ;
return 0 ;
}
2000-05-01 05:53:59 +04:00
# include <linux/reboot.h>
2004-09-04 07:39:20 +04:00
static const struct xlat bootflags1 [ ] = {
2000-05-01 05:53:59 +04:00
{ LINUX_REBOOT_MAGIC1 , " LINUX_REBOOT_MAGIC1 " } ,
{ 0 , NULL } ,
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat bootflags2 [ ] = {
2000-05-01 05:53:59 +04:00
{ LINUX_REBOOT_MAGIC2 , " LINUX_REBOOT_MAGIC2 " } ,
{ LINUX_REBOOT_MAGIC2A , " LINUX_REBOOT_MAGIC2A " } ,
{ LINUX_REBOOT_MAGIC2B , " LINUX_REBOOT_MAGIC2B " } ,
{ 0 , NULL } ,
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat bootflags3 [ ] = {
2000-05-01 05:53:59 +04:00
{ LINUX_REBOOT_CMD_CAD_OFF , " LINUX_REBOOT_CMD_CAD_OFF " } ,
{ LINUX_REBOOT_CMD_RESTART , " LINUX_REBOOT_CMD_RESTART " } ,
{ LINUX_REBOOT_CMD_HALT , " LINUX_REBOOT_CMD_HALT " } ,
{ LINUX_REBOOT_CMD_CAD_ON , " LINUX_REBOOT_CMD_CAD_ON " } ,
{ LINUX_REBOOT_CMD_POWER_OFF , " LINUX_REBOOT_CMD_POWER_OFF " } ,
{ LINUX_REBOOT_CMD_RESTART2 , " LINUX_REBOOT_CMD_RESTART2 " } ,
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_reboot ( struct tcb * tcp )
2000-05-01 05:53:59 +04:00
{
if ( entering ( tcp ) ) {
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( bootflags1 , tcp - > u_arg [ 0 ] , " LINUX_REBOOT_MAGIC_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( bootflags2 , tcp - > u_arg [ 1 ] , " LINUX_REBOOT_MAGIC_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( bootflags3 , tcp - > u_arg [ 2 ] , " LINUX_REBOOT_CMD_??? " ) ;
2000-05-01 05:53:59 +04:00
if ( tcp - > u_arg [ 2 ] = = LINUX_REBOOT_CMD_RESTART2 ) {
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2000-05-01 05:53:59 +04:00
printstr ( tcp , tcp - > u_arg [ 3 ] , - 1 ) ;
}
}
return 0 ;
}
1999-05-09 04:29:58 +04:00
# ifdef M68K
2004-09-04 07:39:20 +04:00
static const struct xlat cacheflush_scope [ ] = {
1999-05-09 04:29:58 +04:00
# ifdef FLUSH_SCOPE_LINE
{ FLUSH_SCOPE_LINE , " FLUSH_SCOPE_LINE " } ,
# endif
# ifdef FLUSH_SCOPE_PAGE
{ FLUSH_SCOPE_PAGE , " FLUSH_SCOPE_PAGE " } ,
# endif
# ifdef FLUSH_SCOPE_ALL
{ FLUSH_SCOPE_ALL , " FLUSH_SCOPE_ALL " } ,
# endif
{ 0 , NULL } ,
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat cacheflush_flags [ ] = {
1999-05-09 04:29:58 +04:00
# ifdef FLUSH_CACHE_BOTH
{ FLUSH_CACHE_BOTH , " FLUSH_CACHE_BOTH " } ,
# endif
# ifdef FLUSH_CACHE_DATA
{ FLUSH_CACHE_DATA , " FLUSH_CACHE_DATA " } ,
# endif
# ifdef FLUSH_CACHE_INSN
{ FLUSH_CACHE_INSN , " FLUSH_CACHE_INSN " } ,
# endif
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_cacheflush ( struct tcb * tcp )
1999-05-09 04:29:58 +04:00
{
if ( entering ( tcp ) ) {
/* addr */
tprintf ( " %#lx, " , tcp - > u_arg [ 0 ] ) ;
/* scope */
printxval ( cacheflush_scope , tcp - > u_arg [ 1 ] , " FLUSH_SCOPE_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-05-09 04:29:58 +04:00
/* flags */
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( cacheflush_flags , tcp - > u_arg [ 2 ] , " FLUSH_CACHE_??? " ) ;
1999-05-09 04:29:58 +04:00
/* len */
tprintf ( " , %lu " , tcp - > u_arg [ 3 ] ) ;
}
return 0 ;
}
# endif /* M68K */
2008-11-11 01:21:41 +03:00
# ifdef BFIN
# include <bfin_sram.h>
static const struct xlat sram_alloc_flags [ ] = {
{ L1_INST_SRAM , " L1_INST_SRAM " } ,
{ L1_DATA_A_SRAM , " L1_DATA_A_SRAM " } ,
{ L1_DATA_B_SRAM , " L1_DATA_B_SRAM " } ,
{ L1_DATA_SRAM , " L1_DATA_SRAM " } ,
2009-03-23 16:12:46 +03:00
{ L2_SRAM , " L2_SRAM " } ,
2008-11-11 01:21:41 +03:00
{ 0 , NULL } ,
} ;
int
2009-03-23 16:12:46 +03:00
sys_sram_alloc ( struct tcb * tcp )
2008-11-11 01:21:41 +03:00
{
if ( entering ( tcp ) ) {
/* size */
2009-03-23 16:12:46 +03:00
tprintf ( " %lu, " , tcp - > u_arg [ 0 ] ) ;
2008-11-11 01:21:41 +03:00
/* flags */
2009-03-23 16:12:46 +03:00
printxval ( sram_alloc_flags , tcp - > u_arg [ 1 ] , " ???_SRAM " ) ;
2008-11-11 01:21:41 +03:00
}
return 1 ;
}
2010-09-11 23:04:18 +04:00
# include <asm/cachectl.h>
static const struct xlat cacheflush_flags [ ] = {
{ ICACHE , " ICACHE " } ,
{ DCACHE , " DCACHE " } ,
{ BCACHE , " BCACHE " } ,
{ 0 , NULL } ,
} ;
int
sys_cacheflush ( struct tcb * tcp )
{
if ( entering ( tcp ) ) {
/* start addr */
tprintf ( " %#lx, " , tcp - > u_arg [ 0 ] ) ;
/* length */
tprintf ( " %ld, " , tcp - > u_arg [ 1 ] ) ;
/* flags */
printxval ( cacheflush_flags , tcp - > u_arg [ 1 ] , " ?CACHE " ) ;
}
return 0 ;
}
2008-11-11 01:21:41 +03:00
# endif
2010-12-01 16:27:07 +03:00
# ifdef SH
static const struct xlat cacheflush_flags [ ] = {
# ifdef CACHEFLUSH_D_INVAL
{ CACHEFLUSH_D_INVAL , " CACHEFLUSH_D_INVAL " } ,
# endif
# ifdef CACHEFLUSH_D_WB
{ CACHEFLUSH_D_WB , " CACHEFLUSH_D_WB " } ,
# endif
# ifdef CACHEFLUSH_D_PURGE
{ CACHEFLUSH_D_PURGE , " CACHEFLUSH_D_PURGE " } ,
# endif
# ifdef CACHEFLUSH_I
{ CACHEFLUSH_I , " CACHEFLUSH_I " } ,
# endif
{ 0 , NULL } ,
} ;
int
sys_cacheflush ( struct tcb * tcp )
{
if ( entering ( tcp ) ) {
/* addr */
tprintf ( " %#lx, " , tcp - > u_arg [ 0 ] ) ;
/* len */
tprintf ( " %lu, " , tcp - > u_arg [ 1 ] ) ;
/* flags */
printflags ( cacheflush_flags , tcp - > u_arg [ 2 ] , " CACHEFLUSH_??? " ) ;
}
return 0 ;
}
# endif /* SH */
1999-02-19 03:21:36 +03:00
# endif /* LINUX */
# ifdef SUNOS4
# include <sys/reboot.h>
# define NFSCLIENT
# define LOFS
# define RFS
# define PCFS
# include <sys/mount.h>
# include <sys/socket.h>
# include <nfs/export.h>
# include <rpc/types.h>
# include <rpc/auth.h>
/*ARGSUSED*/
int
2011-05-30 16:00:14 +04:00
sys_sync ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
return 0 ;
}
2004-09-04 07:39:20 +04:00
static const struct xlat bootflags [ ] = {
1999-02-19 03:21:36 +03:00
{ RB_AUTOBOOT , " RB_AUTOBOOT " } , /* for system auto-booting itself */
{ RB_ASKNAME , " RB_ASKNAME " } , /* ask for file name to reboot from */
{ RB_SINGLE , " RB_SINGLE " } , /* reboot to single user only */
{ RB_NOSYNC , " RB_NOSYNC " } , /* dont sync before reboot */
{ RB_HALT , " RB_HALT " } , /* don't reboot, just halt */
{ RB_INITNAME , " RB_INITNAME " } , /* name given for /etc/init */
{ RB_NOBOOTRC , " RB_NOBOOTRC " } , /* don't run /etc/rc.boot */
{ RB_DEBUG , " RB_DEBUG " } , /* being run under debugger */
{ RB_DUMP , " RB_DUMP " } , /* dump system core */
{ RB_WRITABLE , " RB_WRITABLE " } , /* mount root read/write */
{ RB_STRING , " RB_STRING " } , /* pass boot args to prom monitor */
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_reboot ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) ) {
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( bootflags , tcp - > u_arg [ 0 ] , " RB_??? " ) ;
1999-02-19 03:21:36 +03:00
if ( tcp - > u_arg [ 0 ] & RB_STRING ) {
printstr ( tcp , tcp - > u_arg [ 1 ] , - 1 ) ;
}
}
return 0 ;
}
int
2011-05-30 16:00:14 +04:00
sys_sysacct ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) ) {
printstr ( tcp , tcp - > u_arg [ 0 ] , - 1 ) ;
}
return 0 ;
}
int
2011-05-30 16:00:14 +04:00
sys_swapon ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) ) {
printstr ( tcp , tcp - > u_arg [ 0 ] , - 1 ) ;
}
return 0 ;
}
int
2011-05-30 16:00:14 +04:00
sys_nfs_svc ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) ) {
printsock ( tcp , tcp - > u_arg [ 0 ] ) ;
}
return 0 ;
}
2004-09-04 07:39:20 +04:00
static const struct xlat mountflags [ ] = {
1999-02-19 03:21:36 +03:00
{ M_RDONLY , " M_RDONLY " } ,
{ M_NOSUID , " M_NOSUID " } ,
{ M_NEWTYPE , " M_NEWTYPE " } ,
{ M_GRPID , " M_GRPID " } ,
# ifdef M_REMOUNT
{ M_REMOUNT , " M_REMOUNT " } ,
# endif
# ifdef M_NOSUB
{ M_NOSUB , " M_NOSUB " } ,
# endif
# ifdef M_MULTI
{ M_MULTI , " M_MULTI " } ,
# endif
# ifdef M_SYS5
{ M_SYS5 , " M_SYS5 " } ,
# endif
{ 0 , NULL } ,
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat nfsflags [ ] = {
1999-02-19 03:21:36 +03:00
{ NFSMNT_SOFT , " NFSMNT_SOFT " } ,
{ NFSMNT_WSIZE , " NFSMNT_WSIZE " } ,
{ NFSMNT_RSIZE , " NFSMNT_RSIZE " } ,
{ NFSMNT_TIMEO , " NFSMNT_TIMEO " } ,
{ NFSMNT_RETRANS , " NFSMNT_RETRANS " } ,
{ NFSMNT_HOSTNAME , " NFSMNT_HOSTNAME " } ,
{ NFSMNT_INT , " NFSMNT_INT " } ,
{ NFSMNT_NOAC , " NFSMNT_NOAC " } ,
{ NFSMNT_ACREGMIN , " NFSMNT_ACREGMIN " } ,
{ NFSMNT_ACREGMAX , " NFSMNT_ACREGMAX " } ,
{ NFSMNT_ACDIRMIN , " NFSMNT_ACDIRMIN " } ,
{ NFSMNT_ACDIRMAX , " NFSMNT_ACDIRMAX " } ,
# ifdef NFSMNT_SECURE
{ NFSMNT_SECURE , " NFSMNT_SECURE " } ,
# endif
# ifdef NFSMNT_NOCTO
{ NFSMNT_NOCTO , " NFSMNT_NOCTO " } ,
# endif
# ifdef NFSMNT_POSIX
{ NFSMNT_POSIX , " NFSMNT_POSIX " } ,
# endif
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_mount ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
char type [ 4 ] ;
if ( entering ( tcp ) ) {
if ( ! ( tcp - > u_arg [ 2 ] & M_NEWTYPE ) | | umovestr ( tcp ,
tcp - > u_arg [ 0 ] , sizeof type , type ) < 0 ) {
tprintf ( " OLDTYPE:#%lx " , tcp - > u_arg [ 0 ] ) ;
} else {
tprintf ( " \" %s \" , " , type ) ;
}
printstr ( tcp , tcp - > u_arg [ 1 ] , - 1 ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( mountflags , tcp - > u_arg [ 2 ] & ~ M_NEWTYPE , " M_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-02-19 03:21:36 +03:00
if ( strcmp ( type , " 4.2 " ) = = 0 ) {
struct ufs_args a ;
if ( umove ( tcp , tcp - > u_arg [ 3 ] , & a ) < 0 )
return 0 ;
printstr ( tcp , ( int ) a . fspec , - 1 ) ;
} else if ( strcmp ( type , " lo " ) = = 0 ) {
struct lo_args a ;
if ( umove ( tcp , tcp - > u_arg [ 3 ] , & a ) < 0 )
return 0 ;
printstr ( tcp , ( int ) a . fsdir , - 1 ) ;
} else if ( strcmp ( type , " nfs " ) = = 0 ) {
struct nfs_args a ;
if ( umove ( tcp , tcp - > u_arg [ 3 ] , & a ) < 0 )
return 0 ;
2011-09-01 12:00:28 +04:00
tprints ( " [ " ) ;
1999-02-19 03:21:36 +03:00
printsock ( tcp , ( int ) a . addr ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( nfsflags , a . flags , " NFSMNT_??? " ) ;
1999-02-19 03:21:36 +03:00
tprintf ( " , ws:%u,rs:%u,to:%u,re:%u, " ,
a . wsize , a . rsize , a . timeo , a . retrans ) ;
if ( a . flags & NFSMNT_HOSTNAME & & a . hostname )
printstr ( tcp , ( int ) a . hostname , - 1 ) ;
else
tprintf ( " %#lx " , ( unsigned long ) a . hostname ) ;
tprintf ( " ,reg-min:%u,max:%u,dir-min:%u,max:%u, " ,
a . acregmin , a . acregmax , a . acdirmin , a . acdirmax ) ;
if ( ( a . flags & NFSMNT_SECURE ) & & a . netname )
printstr ( tcp , ( int ) a . netname , - 1 ) ;
else
tprintf ( " %#lx " , ( unsigned long ) a . netname ) ;
2011-09-01 12:00:28 +04:00
tprints ( " ] " ) ;
1999-02-19 03:21:36 +03:00
} else if ( strcmp ( type , " rfs " ) = = 0 ) {
struct rfs_args a ;
struct token t ;
if ( umove ( tcp , tcp - > u_arg [ 3 ] , & a ) < 0 )
return 0 ;
2011-09-01 12:00:28 +04:00
tprints ( " [ " ) ;
1999-02-19 03:21:36 +03:00
printstr ( tcp , ( int ) a . rmtfs , - 1 ) ;
if ( umove ( tcp , ( int ) a . token , & t ) < 0 )
return 0 ;
tprintf ( " , %u, %s] " , t . t_id , t . t_uname ) ;
} else if ( strcmp ( type , " pcfs " ) = = 0 ) {
struct pc_args a ;
if ( umove ( tcp , tcp - > u_arg [ 3 ] , & a ) < 0 )
return 0 ;
printstr ( tcp , ( int ) a . fspec , - 1 ) ;
}
}
return 0 ;
}
int
2011-05-30 16:00:14 +04:00
sys_unmount ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) ) {
printstr ( tcp , tcp - > u_arg [ 0 ] , - 1 ) ;
}
return 0 ;
}
int
2011-05-30 16:00:14 +04:00
sys_umount ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
return sys_unmount ( tcp ) ;
}
int
2011-05-30 16:00:14 +04:00
sys_auditsys ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
/* XXX - no information available */
return printargs ( tcp ) ;
}
2004-09-04 07:39:20 +04:00
static const struct xlat ex_auth_flags [ ] = {
1999-02-19 03:21:36 +03:00
{ AUTH_UNIX , " AUTH_UNIX " } ,
{ AUTH_DES , " AUTH_DES " } ,
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_exportfs ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
struct export e ;
int i ;
if ( entering ( tcp ) ) {
printstr ( tcp , tcp - > u_arg [ 0 ] , - 1 ) ;
if ( umove ( tcp , tcp - > u_arg [ 1 ] , & e ) < 0 ) {
tprintf ( " %#lx " , tcp - > u_arg [ 1 ] ) ;
return 0 ;
}
tprintf ( " {fl:%u, anon:%u, " , e . ex_flags , e . ex_anon ) ;
printxval ( ex_auth_flags , e . ex_auth , " AUTH_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , roots:[ " ) ;
1999-02-19 03:21:36 +03:00
if ( e . ex_auth = = AUTH_UNIX ) {
2011-06-07 14:13:24 +04:00
for ( i = 0 ; i < e . ex_u . exunix . rootaddrs . naddrs ; i + + ) {
1999-02-19 03:21:36 +03:00
printsock ( tcp ,
( int ) & e . ex_u . exunix . rootaddrs . addrvec [ i ] ) ;
}
2011-09-01 12:00:28 +04:00
tprints ( " ], writers:[ " ) ;
2011-06-07 14:13:24 +04:00
for ( i = 0 ; i < e . ex_writeaddrs . naddrs ; i + + ) {
1999-02-19 03:21:36 +03:00
printsock ( tcp ,
( int ) & e . ex_writeaddrs . addrvec [ i ] ) ;
}
2011-09-01 12:00:28 +04:00
tprints ( " ] " ) ;
1999-02-19 03:21:36 +03:00
} else {
2011-06-07 14:13:24 +04:00
for ( i = 0 ; i < e . ex_u . exdes . nnames ; i + + ) {
1999-02-19 03:21:36 +03:00
printsock ( tcp ,
( int ) & e . ex_u . exdes . rootnames [ i ] ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-02-19 03:21:36 +03:00
}
tprintf ( " ], window:%u " , e . ex_u . exdes . window ) ;
}
2011-09-01 12:00:28 +04:00
tprints ( " } " ) ;
1999-02-19 03:21:36 +03:00
}
return 0 ;
}
2004-09-04 07:39:20 +04:00
static const struct xlat sysconflimits [ ] = {
1999-02-19 03:21:36 +03:00
# ifdef _SC_ARG_MAX
{ _SC_ARG_MAX , " _SC_ARG_MAX " } , /* space for argv & envp */
# endif
# ifdef _SC_CHILD_MAX
{ _SC_CHILD_MAX , " _SC_CHILD_MAX " } , /* maximum children per process??? */
# endif
# ifdef _SC_CLK_TCK
{ _SC_CLK_TCK , " _SC_CLK_TCK " } , /* clock ticks/sec */
# endif
# ifdef _SC_NGROUPS_MAX
{ _SC_NGROUPS_MAX , " _SC_NGROUPS_MAX " } , /* number of groups if multple supp. */
# endif
# ifdef _SC_OPEN_MAX
{ _SC_OPEN_MAX , " _SC_OPEN_MAX " } , /* max open files per process */
# endif
# ifdef _SC_JOB_CONTROL
{ _SC_JOB_CONTROL , " _SC_JOB_CONTROL " } , /* do we have job control */
# endif
# ifdef _SC_SAVED_IDS
{ _SC_SAVED_IDS , " _SC_SAVED_IDS " } , /* do we have saved uid/gids */
# endif
# ifdef _SC_VERSION
{ _SC_VERSION , " _SC_VERSION " } , /* POSIX version supported */
# endif
{ 0 , NULL } ,
} ;
2000-09-02 01:03:06 +04:00
int
2011-05-30 16:00:14 +04:00
sys_sysconf ( struct tcb * tcp )
2000-09-02 01:03:06 +04:00
{
if ( entering ( tcp ) ) {
printxval ( sysconflimits , tcp - > u_arg [ 0 ] , " _SC_??? " ) ;
}
return 0 ;
}
# endif /* SUNOS4 */
# if defined(SUNOS4) || defined(FREEBSD)
2004-09-04 07:39:20 +04:00
static const struct xlat pathconflimits [ ] = {
1999-02-19 03:21:36 +03:00
# ifdef _PC_LINK_MAX
{ _PC_LINK_MAX , " _PC_LINK_MAX " } , /* max links to file/dir */
# endif
# ifdef _PC_MAX_CANON
{ _PC_MAX_CANON , " _PC_MAX_CANON " } , /* max line length */
# endif
# ifdef _PC_MAX_INPUT
{ _PC_MAX_INPUT , " _PC_MAX_INPUT " } , /* max "packet" to a tty device */
# endif
# ifdef _PC_NAME_MAX
{ _PC_NAME_MAX , " _PC_NAME_MAX " } , /* max pathname component length */
# endif
# ifdef _PC_PATH_MAX
{ _PC_PATH_MAX , " _PC_PATH_MAX " } , /* max pathname length */
# endif
# ifdef _PC_PIPE_BUF
{ _PC_PIPE_BUF , " _PC_PIPE_BUF " } , /* size of a pipe */
# endif
# ifdef _PC_CHOWN_RESTRICTED
{ _PC_CHOWN_RESTRICTED , " _PC_CHOWN_RESTRICTED " } , /* can we give away files */
# endif
# ifdef _PC_NO_TRUNC
{ _PC_NO_TRUNC , " _PC_NO_TRUNC " } , /* trunc or error on >NAME_MAX */
# endif
# ifdef _PC_VDISABLE
{ _PC_VDISABLE , " _PC_VDISABLE " } , /* best char to shut off tty c_cc */
# endif
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_pathconf ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) ) {
printstr ( tcp , tcp - > u_arg [ 0 ] , - 1 ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2000-09-02 01:03:06 +04:00
printxval ( pathconflimits , tcp - > u_arg [ 1 ] , " _PC_??? " ) ;
1999-02-19 03:21:36 +03:00
}
return 0 ;
}
int
2011-05-30 16:00:14 +04:00
sys_fpathconf ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) ) {
tprintf ( " %lu, " , tcp - > u_arg [ 0 ] ) ;
2000-09-02 01:03:06 +04:00
printxval ( pathconflimits , tcp - > u_arg [ 1 ] , " _PC_??? " ) ;
1999-02-19 03:21:36 +03:00
}
return 0 ;
}
2000-09-02 01:03:06 +04:00
# endif /* SUNOS4 || FREEBSD */
1999-02-19 03:21:36 +03:00
# ifdef SVR4
# ifdef HAVE_SYS_SYSCONFIG_H
# include <sys/sysconfig.h>
# endif /* HAVE_SYS_SYSCONFIG_H */
# include <sys/mount.h>
# include <sys/systeminfo.h>
# include <sys/utsname.h>
2004-09-04 07:39:20 +04:00
static const struct xlat sysconfig_options [ ] = {
1999-02-19 03:21:36 +03:00
# ifdef _CONFIG_NGROUPS
{ _CONFIG_NGROUPS , " _CONFIG_NGROUPS " } ,
# endif
# ifdef _CONFIG_CHILD_MAX
{ _CONFIG_CHILD_MAX , " _CONFIG_CHILD_MAX " } ,
# endif
# ifdef _CONFIG_OPEN_FILES
{ _CONFIG_OPEN_FILES , " _CONFIG_OPEN_FILES " } ,
# endif
# ifdef _CONFIG_POSIX_VER
{ _CONFIG_POSIX_VER , " _CONFIG_POSIX_VER " } ,
# endif
# ifdef _CONFIG_PAGESIZE
{ _CONFIG_PAGESIZE , " _CONFIG_PAGESIZE " } ,
# endif
# ifdef _CONFIG_CLK_TCK
{ _CONFIG_CLK_TCK , " _CONFIG_CLK_TCK " } ,
# endif
# ifdef _CONFIG_XOPEN_VER
{ _CONFIG_XOPEN_VER , " _CONFIG_XOPEN_VER " } ,
# endif
# ifdef _CONFIG_PROF_TCK
{ _CONFIG_PROF_TCK , " _CONFIG_PROF_TCK " } ,
# endif
# ifdef _CONFIG_NPROC_CONF
{ _CONFIG_NPROC_CONF , " _CONFIG_NPROC_CONF " } ,
# endif
# ifdef _CONFIG_NPROC_ONLN
{ _CONFIG_NPROC_ONLN , " _CONFIG_NPROC_ONLN " } ,
# endif
# ifdef _CONFIG_AIO_LISTIO_MAX
{ _CONFIG_AIO_LISTIO_MAX , " _CONFIG_AIO_LISTIO_MAX " } ,
# endif
# ifdef _CONFIG_AIO_MAX
{ _CONFIG_AIO_MAX , " _CONFIG_AIO_MAX " } ,
# endif
# ifdef _CONFIG_AIO_PRIO_DELTA_MAX
{ _CONFIG_AIO_PRIO_DELTA_MAX , " _CONFIG_AIO_PRIO_DELTA_MAX " } ,
# endif
# ifdef _CONFIG_CONFIG_DELAYTIMER_MAX
{ _CONFIG_DELAYTIMER_MAX , " _CONFIG_DELAYTIMER_MAX " } ,
# endif
# ifdef _CONFIG_MQ_OPEN_MAX
{ _CONFIG_MQ_OPEN_MAX , " _CONFIG_MQ_OPEN_MAX " } ,
# endif
# ifdef _CONFIG_MQ_PRIO_MAX
{ _CONFIG_MQ_PRIO_MAX , " _CONFIG_MQ_PRIO_MAX " } ,
# endif
# ifdef _CONFIG_RTSIG_MAX
{ _CONFIG_RTSIG_MAX , " _CONFIG_RTSIG_MAX " } ,
# endif
# ifdef _CONFIG_SEM_NSEMS_MAX
{ _CONFIG_SEM_NSEMS_MAX , " _CONFIG_SEM_NSEMS_MAX " } ,
# endif
# ifdef _CONFIG_SEM_VALUE_MAX
{ _CONFIG_SEM_VALUE_MAX , " _CONFIG_SEM_VALUE_MAX " } ,
# endif
# ifdef _CONFIG_SIGQUEUE_MAX
{ _CONFIG_SIGQUEUE_MAX , " _CONFIG_SIGQUEUE_MAX " } ,
# endif
# ifdef _CONFIG_SIGRT_MIN
{ _CONFIG_SIGRT_MIN , " _CONFIG_SIGRT_MIN " } ,
# endif
# ifdef _CONFIG_SIGRT_MAX
{ _CONFIG_SIGRT_MAX , " _CONFIG_SIGRT_MAX " } ,
# endif
# ifdef _CONFIG_TIMER_MAX
{ _CONFIG_TIMER_MAX , " _CONFIG_TIMER_MAX " } ,
# endif
# ifdef _CONFIG_CONFIG_PHYS_PAGES
{ _CONFIG_PHYS_PAGES , " _CONFIG_PHYS_PAGES " } ,
# endif
# ifdef _CONFIG_AVPHYS_PAGES
{ _CONFIG_AVPHYS_PAGES , " _CONFIG_AVPHYS_PAGES " } ,
# endif
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_sysconfig ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) )
printxval ( sysconfig_options , tcp - > u_arg [ 0 ] , " _CONFIG_??? " ) ;
return 0 ;
}
2004-09-04 07:39:20 +04:00
static const struct xlat sysinfo_options [ ] = {
1999-02-19 03:21:36 +03:00
{ SI_SYSNAME , " SI_SYSNAME " } ,
{ SI_HOSTNAME , " SI_HOSTNAME " } ,
{ SI_RELEASE , " SI_RELEASE " } ,
{ SI_VERSION , " SI_VERSION " } ,
{ SI_MACHINE , " SI_MACHINE " } ,
{ SI_ARCHITECTURE , " SI_ARCHITECTURE " } ,
{ SI_HW_SERIAL , " SI_HW_SERIAL " } ,
{ SI_HW_PROVIDER , " SI_HW_PROVIDER " } ,
{ SI_SRPC_DOMAIN , " SI_SRPC_DOMAIN " } ,
# ifdef SI_SET_HOSTNAME
{ SI_SET_HOSTNAME , " SI_SET_HOSTNAME " } ,
# endif
# ifdef SI_SET_SRPC_DOMAIN
{ SI_SET_SRPC_DOMAIN , " SI_SET_SRPC_DOMAIN " } ,
# endif
# ifdef SI_SET_KERB_REALM
{ SI_SET_KERB_REALM , " SI_SET_KERB_REALM " } ,
# endif
2011-06-07 14:13:24 +04:00
# ifdef SI_KERB_REALM
1999-02-19 03:21:36 +03:00
{ SI_KERB_REALM , " SI_KERB_REALM " } ,
# endif
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_sysinfo ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) ) {
printxval ( sysinfo_options , tcp - > u_arg [ 0 ] , " SI_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-02-19 03:21:36 +03:00
}
else {
/* Technically some calls write values. So what. */
if ( syserror ( tcp ) )
tprintf ( " %#lx " , tcp - > u_arg [ 1 ] ) ;
else
printpath ( tcp , tcp - > u_arg [ 1 ] ) ;
tprintf ( " , %lu " , tcp - > u_arg [ 2 ] ) ;
}
return 0 ;
}
# ifdef MIPS
# include <sys/syssgi.h>
2004-09-04 07:39:20 +04:00
static const struct xlat syssgi_options [ ] = {
1999-02-19 03:21:36 +03:00
{ SGI_SYSID , " SGI_SYSID " } ,
1999-06-11 17:18:40 +04:00
# ifdef SGI_RDUBLK
1999-02-19 03:21:36 +03:00
{ SGI_RDUBLK , " SGI_RDUBLK " } ,
1999-06-11 17:18:40 +04:00
# endif
1999-02-19 03:21:36 +03:00
{ SGI_TUNE , " SGI_TUNE " } ,
{ SGI_IDBG , " SGI_IDBG " } ,
{ SGI_INVENT , " SGI_INVENT " } ,
{ SGI_RDNAME , " SGI_RDNAME " } ,
{ SGI_SETLED , " SGI_SETLED " } ,
{ SGI_SETNVRAM , " SGI_SETNVRAM " } ,
{ SGI_GETNVRAM , " SGI_GETNVRAM " } ,
{ SGI_QUERY_FTIMER , " SGI_QUERY_FTIMER " } ,
{ SGI_QUERY_CYCLECNTR , " SGI_QUERY_CYCLECNTR " } ,
{ SGI_PROCSZ , " SGI_PROCSZ " } ,
{ SGI_SIGACTION , " SGI_SIGACTION " } ,
{ SGI_SIGPENDING , " SGI_SIGPENDING " } ,
{ SGI_SIGPROCMASK , " SGI_SIGPROCMASK " } ,
{ SGI_SIGSUSPEND , " SGI_SIGSUSPEND " } ,
{ SGI_SETSID , " SGI_SETSID " } ,
{ SGI_SETPGID , " SGI_SETPGID " } ,
{ SGI_SYSCONF , " SGI_SYSCONF " } ,
{ SGI_WAIT4 , " SGI_WAIT4 " } ,
{ SGI_PATHCONF , " SGI_PATHCONF " } ,
{ SGI_READB , " SGI_READB " } ,
{ SGI_WRITEB , " SGI_WRITEB " } ,
{ SGI_SETGROUPS , " SGI_SETGROUPS " } ,
{ SGI_GETGROUPS , " SGI_GETGROUPS " } ,
{ SGI_SETTIMEOFDAY , " SGI_SETTIMEOFDAY " } ,
{ SGI_SETTIMETRIM , " SGI_SETTIMETRIM " } ,
{ SGI_GETTIMETRIM , " SGI_GETTIMETRIM " } ,
{ SGI_SPROFIL , " SGI_SPROFIL " } ,
{ SGI_RUSAGE , " SGI_RUSAGE " } ,
{ SGI_SIGSTACK , " SGI_SIGSTACK " } ,
{ SGI_SIGSTATUS , " SGI_SIGSTATUS " } ,
{ SGI_NETPROC , " SGI_NETPROC " } ,
{ SGI_SIGALTSTACK , " SGI_SIGALTSTACK " } ,
{ SGI_BDFLUSHCNT , " SGI_BDFLUSHCNT " } ,
{ SGI_SSYNC , " SGI_SSYNC " } ,
{ SGI_NFSCNVT , " SGI_NFSCNVT " } ,
{ SGI_GETPGID , " SGI_GETPGID " } ,
{ SGI_GETSID , " SGI_GETSID " } ,
{ SGI_IOPROBE , " SGI_IOPROBE " } ,
{ SGI_CONFIG , " SGI_CONFIG " } ,
{ SGI_ELFMAP , " SGI_ELFMAP " } ,
{ SGI_MCONFIG , " SGI_MCONFIG " } ,
{ SGI_GETPLABEL , " SGI_GETPLABEL " } ,
{ SGI_SETPLABEL , " SGI_SETPLABEL " } ,
{ SGI_GETLABEL , " SGI_GETLABEL " } ,
{ SGI_SETLABEL , " SGI_SETLABEL " } ,
{ SGI_SATREAD , " SGI_SATREAD " } ,
{ SGI_SATWRITE , " SGI_SATWRITE " } ,
{ SGI_SATCTL , " SGI_SATCTL " } ,
{ SGI_LOADATTR , " SGI_LOADATTR " } ,
{ SGI_UNLOADATTR , " SGI_UNLOADATTR " } ,
# ifdef SGI_RECVLMSG
{ SGI_RECVLMSG , " SGI_RECVLMSG " } ,
# endif
{ SGI_PLANGMOUNT , " SGI_PLANGMOUNT " } ,
{ SGI_GETPSOACL , " SGI_GETPSOACL " } ,
{ SGI_SETPSOACL , " SGI_SETPSOACL " } ,
1999-06-11 17:18:40 +04:00
# ifdef SGI_EAG_GET_ATTR
{ SGI_EAG_GET_ATTR , " SGI_EAG_GET_ATTR " } ,
# endif
# ifdef SGI_EAG_SET_ATTR
{ SGI_EAG_SET_ATTR , " SGI_EAG_SET_ATTR " } ,
# endif
# ifdef SGI_EAG_GET_PROCATTR
{ SGI_EAG_GET_PROCATTR , " SGI_EAG_GET_PROCATTR " } ,
# endif
# ifdef SGI_EAG_SET_PROCATTR
{ SGI_EAG_SET_PROCATTR , " SGI_EAG_SET_PROCATTR " } ,
# endif
# ifdef SGI_FREVOKE
{ SGI_FREVOKE , " SGI_FREVOKE " } ,
# endif
# ifdef SGI_SBE_GET_INFO
{ SGI_SBE_GET_INFO , " SGI_SBE_GET_INFO " } ,
# endif
# ifdef SGI_SBE_CLR_INFO
{ SGI_SBE_CLR_INFO , " SGI_SBE_CLR_INFO " } ,
# endif
1999-02-19 03:21:36 +03:00
{ SGI_RMI_FIXECC , " SGI_RMI_FIXECC " } ,
{ SGI_R4K_CERRS , " SGI_R4K_CERRS " } ,
{ SGI_GET_EVCONF , " SGI_GET_EVCONF " } ,
{ SGI_MPCWAROFF , " SGI_MPCWAROFF " } ,
{ SGI_SET_AUTOPWRON , " SGI_SET_AUTOPWRON " } ,
{ SGI_SPIPE , " SGI_SPIPE " } ,
{ SGI_SYMTAB , " SGI_SYMTAB " } ,
# ifdef SGI_SET_FPDEBUG
{ SGI_SET_FPDEBUG , " SGI_SET_FPDEBUG " } ,
1999-06-11 17:18:40 +04:00
# endif
# ifdef SGI_SET_FP_PRECISE
{ SGI_SET_FP_PRECISE , " SGI_SET_FP_PRECISE " } ,
1999-02-19 03:21:36 +03:00
# endif
{ SGI_TOSSTSAVE , " SGI_TOSSTSAVE " } ,
{ SGI_FDHI , " SGI_FDHI " } ,
1999-06-11 17:18:40 +04:00
# ifdef SGI_SET_CONFIG_SMM
{ SGI_SET_CONFIG_SMM , " SGI_SET_CONFIG_SMM " } ,
# endif
# ifdef SGI_SET_FP_PRESERVE
{ SGI_SET_FP_PRESERVE , " SGI_SET_FP_PRESERVE " } ,
# endif
1999-02-19 03:21:36 +03:00
{ SGI_MINRSS , " SGI_MINRSS " } ,
1999-06-11 17:18:40 +04:00
# ifdef SGI_GRIO
{ SGI_GRIO , " SGI_GRIO " } ,
# endif
# ifdef SGI_XLV_SET_TAB
{ SGI_XLV_SET_TAB , " SGI_XLV_SET_TAB " } ,
# endif
# ifdef SGI_XLV_GET_TAB
{ SGI_XLV_GET_TAB , " SGI_XLV_GET_TAB " } ,
# endif
# ifdef SGI_GET_FP_PRECISE
{ SGI_GET_FP_PRECISE , " SGI_GET_FP_PRECISE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GET_CONFIG_SMM
1999-06-11 17:18:40 +04:00
{ SGI_GET_CONFIG_SMM , " SGI_GET_CONFIG_SMM " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_FP_IMPRECISE_SUPP
1999-06-11 17:18:40 +04:00
{ SGI_FP_IMPRECISE_SUPP , " SGI_FP_IMPRECISE_SUPP " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_CONFIG_NSMM_SUPP
1999-06-11 17:18:40 +04:00
{ SGI_CONFIG_NSMM_SUPP , " SGI_CONFIG_NSMM_SUPP " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_RT_TSTAMP_CREATE
1999-06-11 17:18:40 +04:00
{ SGI_RT_TSTAMP_CREATE , " SGI_RT_TSTAMP_CREATE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_RT_TSTAMP_DELETE
1999-06-11 17:18:40 +04:00
{ SGI_RT_TSTAMP_DELETE , " SGI_RT_TSTAMP_DELETE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_RT_TSTAMP_START
1999-06-11 17:18:40 +04:00
{ SGI_RT_TSTAMP_START , " SGI_RT_TSTAMP_START " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_RT_TSTAMP_STOP
1999-06-11 17:18:40 +04:00
{ SGI_RT_TSTAMP_STOP , " SGI_RT_TSTAMP_STOP " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_RT_TSTAMP_ADDR
1999-06-11 17:18:40 +04:00
{ SGI_RT_TSTAMP_ADDR , " SGI_RT_TSTAMP_ADDR " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_RT_TSTAMP_MASK
1999-06-11 17:18:40 +04:00
{ SGI_RT_TSTAMP_MASK , " SGI_RT_TSTAMP_MASK " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_RT_TSTAMP_EOB_MODE
1999-06-11 17:18:40 +04:00
{ SGI_RT_TSTAMP_EOB_MODE , " SGI_RT_TSTAMP_EOB_MODE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_USE_FP_BCOPY
1999-06-11 17:18:40 +04:00
{ SGI_USE_FP_BCOPY , " SGI_USE_FP_BCOPY " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GET_UST
1999-06-11 17:18:40 +04:00
{ SGI_GET_UST , " SGI_GET_UST " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_SPECULATIVE_EXEC
1999-06-11 17:18:40 +04:00
{ SGI_SPECULATIVE_EXEC , " SGI_SPECULATIVE_EXEC " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_XLV_NEXT_RQST
1999-06-11 17:18:40 +04:00
{ SGI_XLV_NEXT_RQST , " SGI_XLV_NEXT_RQST " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_XLV_ATTR_CURSOR
1999-06-11 17:18:40 +04:00
{ SGI_XLV_ATTR_CURSOR , " SGI_XLV_ATTR_CURSOR " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_XLV_ATTR_GET
1999-06-11 17:18:40 +04:00
{ SGI_XLV_ATTR_GET , " SGI_XLV_ATTR_GET " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_XLV_ATTR_SET
1999-06-11 17:18:40 +04:00
{ SGI_XLV_ATTR_SET , " SGI_XLV_ATTR_SET " } ,
# endif
# ifdef SGI_BTOOLSIZE
{ SGI_BTOOLSIZE , " SGI_BTOOLSIZE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_BTOOLGET
1999-06-11 17:18:40 +04:00
{ SGI_BTOOLGET , " SGI_BTOOLGET " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_BTOOLREINIT
1999-06-11 17:18:40 +04:00
{ SGI_BTOOLREINIT , " SGI_BTOOLREINIT " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_CREATE_UUID
1999-06-11 17:18:40 +04:00
{ SGI_CREATE_UUID , " SGI_CREATE_UUID " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_NOFPE
1999-06-11 17:18:40 +04:00
{ SGI_NOFPE , " SGI_NOFPE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_OLD_SOFTFP
1999-06-11 17:18:40 +04:00
{ SGI_OLD_SOFTFP , " SGI_OLD_SOFTFP " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_FS_INUMBERS
1999-06-11 17:18:40 +04:00
{ SGI_FS_INUMBERS , " SGI_FS_INUMBERS " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_FS_BULKSTAT
1999-06-11 17:18:40 +04:00
{ SGI_FS_BULKSTAT , " SGI_FS_BULKSTAT " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_RT_TSTAMP_WAIT
1999-06-11 17:18:40 +04:00
{ SGI_RT_TSTAMP_WAIT , " SGI_RT_TSTAMP_WAIT " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_RT_TSTAMP_UPDATE
1999-06-11 17:18:40 +04:00
{ SGI_RT_TSTAMP_UPDATE , " SGI_RT_TSTAMP_UPDATE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_PATH_TO_HANDLE
1999-06-11 17:18:40 +04:00
{ SGI_PATH_TO_HANDLE , " SGI_PATH_TO_HANDLE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_PATH_TO_FSHANDLE
1999-06-11 17:18:40 +04:00
{ SGI_PATH_TO_FSHANDLE , " SGI_PATH_TO_FSHANDLE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_FD_TO_HANDLE
1999-06-11 17:18:40 +04:00
{ SGI_FD_TO_HANDLE , " SGI_FD_TO_HANDLE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_OPEN_BY_HANDLE
1999-06-11 17:18:40 +04:00
{ SGI_OPEN_BY_HANDLE , " SGI_OPEN_BY_HANDLE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_READLINK_BY_HANDLE
1999-06-11 17:18:40 +04:00
{ SGI_READLINK_BY_HANDLE , " SGI_READLINK_BY_HANDLE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_READ_DANGID
1999-06-11 17:18:40 +04:00
{ SGI_READ_DANGID , " SGI_READ_DANGID " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_CONST
1999-06-11 17:18:40 +04:00
{ SGI_CONST , " SGI_CONST " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_XFS_FSOPERATIONS
1999-06-11 17:18:40 +04:00
{ SGI_XFS_FSOPERATIONS , " SGI_XFS_FSOPERATIONS " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_SETASH
1999-06-11 17:18:40 +04:00
{ SGI_SETASH , " SGI_SETASH " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GETASH
1999-06-11 17:18:40 +04:00
{ SGI_GETASH , " SGI_GETASH " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_SETPRID
1999-06-11 17:18:40 +04:00
{ SGI_SETPRID , " SGI_SETPRID " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GETPRID
1999-06-11 17:18:40 +04:00
{ SGI_GETPRID , " SGI_GETPRID " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_SETSPINFO
1999-06-11 17:18:40 +04:00
{ SGI_SETSPINFO , " SGI_SETSPINFO " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GETSPINFO
1999-06-11 17:18:40 +04:00
{ SGI_GETSPINFO , " SGI_GETSPINFO " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_SHAREII
1999-06-11 17:18:40 +04:00
{ SGI_SHAREII , " SGI_SHAREII " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_NEWARRAYSESS
1999-06-11 17:18:40 +04:00
{ SGI_NEWARRAYSESS , " SGI_NEWARRAYSESS " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GETDFLTPRID
1999-06-11 17:18:40 +04:00
{ SGI_GETDFLTPRID , " SGI_GETDFLTPRID " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_SET_DISMISSED_EXC_CNT
1999-06-11 17:18:40 +04:00
{ SGI_SET_DISMISSED_EXC_CNT , " SGI_SET_DISMISSED_EXC_CNT " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GET_DISMISSED_EXC_CNT
1999-06-11 17:18:40 +04:00
{ SGI_GET_DISMISSED_EXC_CNT , " SGI_GET_DISMISSED_EXC_CNT " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_CYCLECNTR_SIZE
1999-06-11 17:18:40 +04:00
{ SGI_CYCLECNTR_SIZE , " SGI_CYCLECNTR_SIZE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_QUERY_FASTTIMER
1999-06-11 17:18:40 +04:00
{ SGI_QUERY_FASTTIMER , " SGI_QUERY_FASTTIMER " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_PIDSINASH
1999-06-11 17:18:40 +04:00
{ SGI_PIDSINASH , " SGI_PIDSINASH " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_ULI
1999-06-11 17:18:40 +04:00
{ SGI_ULI , " SGI_ULI " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_LPG_SHMGET
1999-06-11 17:18:40 +04:00
{ SGI_LPG_SHMGET , " SGI_LPG_SHMGET " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_LPG_MAP
1999-06-11 17:18:40 +04:00
{ SGI_LPG_MAP , " SGI_LPG_MAP " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_CACHEFS_SYS
1999-06-11 17:18:40 +04:00
{ SGI_CACHEFS_SYS , " SGI_CACHEFS_SYS " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_NFSNOTIFY
1999-06-11 17:18:40 +04:00
{ SGI_NFSNOTIFY , " SGI_NFSNOTIFY " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_LOCKDSYS
1999-06-11 17:18:40 +04:00
{ SGI_LOCKDSYS , " SGI_LOCKDSYS " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_EVENTCTR
1999-06-11 17:18:40 +04:00
{ SGI_EVENTCTR , " SGI_EVENTCTR " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GETPRUSAGE
1999-06-11 17:18:40 +04:00
{ SGI_GETPRUSAGE , " SGI_GETPRUSAGE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_PROCMASK_LOCATION
1999-06-11 17:18:40 +04:00
{ SGI_PROCMASK_LOCATION , " SGI_PROCMASK_LOCATION " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_UNUSED
1999-06-11 17:18:40 +04:00
{ SGI_UNUSED , " SGI_UNUSED " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_CKPT_SYS
1999-06-11 17:18:40 +04:00
{ SGI_CKPT_SYS , " SGI_CKPT_SYS " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_CKPT_SYS
1999-06-11 17:18:40 +04:00
{ SGI_CKPT_SYS , " SGI_CKPT_SYS " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GETGRPPID
1999-06-11 17:18:40 +04:00
{ SGI_GETGRPPID , " SGI_GETGRPPID " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GETSESPID
1999-06-11 17:18:40 +04:00
{ SGI_GETSESPID , " SGI_GETSESPID " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_ENUMASHS
1999-06-11 17:18:40 +04:00
{ SGI_ENUMASHS , " SGI_ENUMASHS " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_SETASMACHID
1999-06-11 17:18:40 +04:00
{ SGI_SETASMACHID , " SGI_SETASMACHID " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GETASMACHID
1999-06-11 17:18:40 +04:00
{ SGI_GETASMACHID , " SGI_GETASMACHID " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_GETARSESS
1999-06-11 17:18:40 +04:00
{ SGI_GETARSESS , " SGI_GETARSESS " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_JOINARRAYSESS
1999-06-11 17:18:40 +04:00
{ SGI_JOINARRAYSESS , " SGI_JOINARRAYSESS " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_SPROC_KILL
1999-06-11 17:18:40 +04:00
{ SGI_SPROC_KILL , " SGI_SPROC_KILL " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_DBA_CONFIG
1999-06-11 17:18:40 +04:00
{ SGI_DBA_CONFIG , " SGI_DBA_CONFIG " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_RELEASE_NAME
1999-06-11 17:18:40 +04:00
{ SGI_RELEASE_NAME , " SGI_RELEASE_NAME " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_SYNCH_CACHE_HANDLER
1999-06-11 17:18:40 +04:00
{ SGI_SYNCH_CACHE_HANDLER , " SGI_SYNCH_CACHE_HANDLER " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_SWASH_INIT
1999-06-11 17:18:40 +04:00
{ SGI_SWASH_INIT , " SGI_SWASH_INIT " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_NUMA_MIGR_PAGE
1999-06-11 17:18:40 +04:00
{ SGI_NUMA_MIGR_PAGE , " SGI_NUMA_MIGR_PAGE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_NUMA_MIGR_PAGE_ALT
1999-06-11 17:18:40 +04:00
{ SGI_NUMA_MIGR_PAGE_ALT , " SGI_NUMA_MIGR_PAGE_ALT " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_KAIO_USERINIT
1999-06-11 17:18:40 +04:00
{ SGI_KAIO_USERINIT , " SGI_KAIO_USERINIT " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_KAIO_READ
1999-06-11 17:18:40 +04:00
{ SGI_KAIO_READ , " SGI_KAIO_READ " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_KAIO_WRITE
1999-06-11 17:18:40 +04:00
{ SGI_KAIO_WRITE , " SGI_KAIO_WRITE " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_KAIO_SUSPEND
1999-06-11 17:18:40 +04:00
{ SGI_KAIO_SUSPEND , " SGI_KAIO_SUSPEND " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_KAIO_STATS
1999-06-11 17:18:40 +04:00
{ SGI_KAIO_STATS , " SGI_KAIO_STATS " } ,
# endif
2004-08-31 10:48:46 +04:00
# ifdef SGI_INITIAL_PT_SPROC
1999-06-11 17:18:40 +04:00
{ SGI_INITIAL_PT_SPROC , " SGI_INITIAL_PT_SPROC " } ,
# endif
1999-02-19 03:21:36 +03:00
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_syssgi ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
int i ;
if ( entering ( tcp ) ) {
printxval ( syssgi_options , tcp - > u_arg [ 0 ] , " SGI_??? " ) ;
switch ( tcp - > u_arg [ 0 ] ) {
default :
for ( i = 1 ; i < tcp - > u_nargs ; i + + )
tprintf ( " , %#lx " , tcp - > u_arg [ i ] ) ;
break ;
}
}
return 0 ;
}
# include <sys/types.h>
# include <rpc/rpc.h>
struct cred ;
struct uio ;
# include <sys/fsid.h>
# include <sys/vnode.h>
# include <sys/fs/nfs.h>
# include <sys/fs/nfs_clnt.h>
2004-09-04 07:39:20 +04:00
static const struct xlat mount_flags [ ] = {
1999-02-19 03:21:36 +03:00
{ MS_RDONLY , " MS_RDONLY " } ,
{ MS_FSS , " MS_FSS " } ,
{ MS_DATA , " MS_DATA " } ,
{ MS_NOSUID , " MS_NOSUID " } ,
{ MS_REMOUNT , " MS_REMOUNT " } ,
{ MS_NOTRUNC , " MS_NOTRUNC " } ,
{ MS_GRPID , " MS_GRPID " } ,
{ MS_NODEV , " MS_NODEV " } ,
{ MS_BEFORE , " MS_BEFORE " } ,
{ MS_AFTER , " MS_AFTER " } ,
{ 0 , NULL } ,
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat nfs_flags [ ] = {
1999-02-19 03:21:36 +03:00
{ NFSMNT_SOFT , " NFSMNT_SOFT " } ,
{ NFSMNT_WSIZE , " NFSMNT_WSIZE " } ,
{ NFSMNT_RSIZE , " NFSMNT_RSIZE " } ,
{ NFSMNT_TIMEO , " NFSMNT_TIMEO " } ,
{ NFSMNT_RETRANS , " NFSMNT_RETRANS " } ,
{ NFSMNT_HOSTNAME , " NFSMNT_HOSTNAME " } ,
1999-06-11 17:18:40 +04:00
# ifdef NFSMNT_NOINT /* IRIX 6 */
{ NFSMNT_NOINT , " NFSMNT_NOINT " } ,
# endif
# ifdef NFSMNT_INT /* IRIX 5 */
1999-02-19 03:21:36 +03:00
{ NFSMNT_INT , " NFSMNT_INT " } ,
1999-06-11 17:18:40 +04:00
# endif
1999-02-19 03:21:36 +03:00
{ NFSMNT_NOAC , " NFSMNT_NOAC " } ,
{ NFSMNT_ACREGMIN , " NFSMNT_ACREGMIN " } ,
{ NFSMNT_ACREGMAX , " NFSMNT_ACREGMAX " } ,
{ NFSMNT_ACDIRMIN , " NFSMNT_ACDIRMIN " } ,
{ NFSMNT_ACDIRMAX , " NFSMNT_ACDIRMAX " } ,
{ NFSMNT_PRIVATE , " NFSMNT_PRIVATE " } ,
{ NFSMNT_SYMTTL , " NFSMNT_SYMTTL " } ,
{ NFSMNT_LOOPBACK , " NFSMNT_LOOPBACK " } ,
{ NFSMNT_BASETYPE , " NFSMNT_BASETYPE " } ,
{ NFSMNT_NAMEMAX , " NFSMNT_NAMEMAX " } ,
1999-06-11 17:18:40 +04:00
# ifdef NFSMNT_SHORTUID /* IRIX 6 */
{ NFSMNT_SHORTUID , " NFSMNT_SHORTUID " } ,
# endif
# ifdef NFSMNT_ASYNCNLM /* IRIX 6 */
{ NFSMNT_ASYNCNLM , " NFSMNT_ASYNCNLM " } ,
# endif
1999-02-19 03:21:36 +03:00
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_mount ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) ) {
printpath ( tcp , tcp - > u_arg [ 0 ] ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-02-19 03:21:36 +03:00
printpath ( tcp , tcp - > u_arg [ 1 ] ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( mount_flags , tcp - > u_arg [ 2 ] , " MS_??? " ) ;
1999-02-19 03:21:36 +03:00
if ( tcp - > u_arg [ 2 ] & ( MS_FSS | MS_DATA ) ) {
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-02-19 03:21:36 +03:00
tprintf ( " %ld " , tcp - > u_arg [ 3 ] ) ;
}
if ( tcp - > u_arg [ 2 ] & MS_DATA ) {
int nfs_type = sysfs ( GETFSIND , FSID_NFS ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-02-19 03:21:36 +03:00
if ( tcp - > u_arg [ 3 ] = = nfs_type ) {
struct nfs_args args ;
if ( umove ( tcp , tcp - > u_arg [ 4 ] , & args ) < 0 )
tprintf ( " %#lx " , tcp - > u_arg [ 4 ] ) ;
else {
2011-09-01 12:00:28 +04:00
tprints ( " addr= " ) ;
1999-02-19 03:21:36 +03:00
printsock ( tcp , ( int ) args . addr ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , flags= " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( nfs_flags , args . flags , " NFSMNT_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , hostname= " ) ;
1999-02-19 03:21:36 +03:00
printstr ( tcp , ( int ) args . hostname , - 1 ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , ...} " ) ;
1999-02-19 03:21:36 +03:00
}
}
else
tprintf ( " %#lx " , tcp - > u_arg [ 4 ] ) ;
tprintf ( " , %ld " , tcp - > u_arg [ 5 ] ) ;
}
}
return 0 ;
}
# else /* !MIPS */
1999-11-26 16:14:41 +03:00
# if UNIXWARE
# include <sys/types.h>
# include <sys/fstyp.h>
# include <sys/mount.h>
# include <sys/xti.h>
# define NFSCLIENT 1
# include <nfs/mount.h>
# include <sys/fs/vx_ioctl.h>
2004-09-04 07:39:20 +04:00
static const struct xlat mount_flags [ ] = {
1999-11-26 16:14:41 +03:00
{ MS_RDONLY , " MS_RDONLY " } ,
{ MS_FSS , " MS_FSS " } ,
{ MS_DATA , " MS_DATA " } ,
{ MS_HADBAD , " MS_HADBAD " } ,
{ MS_NOSUID , " MS_NOSUID " } ,
{ MS_REMOUNT , " MS_REMOUNT " } ,
{ MS_NOTRUNC , " MS_NOTRUNC " } ,
{ MS_SOFTMNT , " MS_SOFTMNT " } ,
{ MS_SYSSPACE , " MS_SYSSPACE " } ,
{ 0 , NULL } ,
} ;
# ifdef VX_MS_MASK
2004-09-04 07:39:20 +04:00
static const struct xlat vxfs_flags [ ] = {
1999-11-26 16:14:41 +03:00
{ VX_MS_NOLOG , " VX_MS_NOLOG " } ,
{ VX_MS_BLKCLEAR , " VX_MS_BLKCLEAR " } ,
{ VX_MS_SNAPSHOT , " VX_MS_SNAPSHOT " } ,
{ VX_MS_NODATAINLOG , " VX_MS_NODATAINLOG " } ,
{ VX_MS_DELAYLOG , " VX_MS_DELAYLOG " } ,
{ VX_MS_TMPLOG , " VX_MS_TMPLOG " } ,
{ VX_MS_FILESET , " VX_MS_FILESET " } ,
{ VX_MS_CACHE_DIRECT , " VX_MS_CACHE_DIRECT " } ,
{ VX_MS_CACHE_DSYNC , " VX_MS_CACHE_DSYNC " } ,
{ VX_MS_CACHE_CLOSESYNC , " VX_MS_CACHE_CLOSESYNC " } ,
{ VX_MS_CACHE_TMPCACHE , " VX_MS_CACHE_TMPCACHE " } ,
{ VX_MS_OSYNC_DIRECT , " VX_MS_OSYNC_DIRECT " } ,
{ VX_MS_OSYNC_DSYNC , " VX_MS_OSYNC_DSYNC " } ,
{ VX_MS_OSYNC_CLOSESYNC , " VX_MS_OSYNC_CLOSESYNC " } ,
{ VX_MS_OSYNC_DELAY , " VX_MS_OSYNC_DELAY " } ,
{ 0 , NULL , } ,
} ;
# endif
2004-09-04 07:39:20 +04:00
static const struct xlat nfs_flags [ ] = {
1999-11-26 16:14:41 +03:00
{ NFSMNT_SOFT , " NFSMNT_SOFT " } ,
{ NFSMNT_WSIZE , " NFSMNT_WSIZE " } ,
{ NFSMNT_RSIZE , " NFSMNT_RSIZE " } ,
{ NFSMNT_TIMEO , " NFSMNT_TIMEO " } ,
{ NFSMNT_RETRANS , " NFSMNT_RETRANS " } ,
{ NFSMNT_HOSTNAME , " NFSMNT_HOSTNAME " } ,
{ NFSMNT_INT , " NFSMNT_INT " } ,
{ NFSMNT_NOAC , " NFSMNT_NOAC " } ,
{ NFSMNT_ACREGMIN , " NFSMNT_ACREGMIN " } ,
{ NFSMNT_ACREGMAX , " NFSMNT_ACREGMAX " } ,
{ NFSMNT_ACDIRMIN , " NFSMNT_ACDIRMIN " } ,
{ NFSMNT_ACDIRMAX , " NFSMNT_ACDIRMAX " } ,
{ NFSMNT_SECURE , " NFSMNT_SECURE " } ,
{ NFSMNT_NOCTO , " NFSMNT_NOCTO " } ,
{ NFSMNT_GRPID , " NFSMNT_GRPID " } ,
{ NFSMNT_RPCTIMESYNC , " NFSMNT_RPCTIMESYNC " } ,
{ NFSMNT_LWPSMAX , " NFSMNT_LWPSMAX " } ,
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_mount ( struct tcb * tcp )
1999-11-26 16:14:41 +03:00
{
if ( entering ( tcp ) ) {
2011-06-07 14:13:24 +04:00
char fstyp [ FSTYPSZ ] ;
1999-11-26 16:14:41 +03:00
printpath ( tcp , tcp - > u_arg [ 0 ] ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-11-26 16:14:41 +03:00
printpath ( tcp , tcp - > u_arg [ 1 ] ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( mount_flags , tcp - > u_arg [ 2 ] , " MS_??? " ) ;
1999-11-26 16:14:41 +03:00
/* The doc sez that the file system type is given as a
fsindex , and we should use sysfs to work out the name .
This appears to be untrue for UW . Maybe it ' s untrue
for all SVR4 ' s ? */
if ( tcp - > u_arg [ 2 ] & ( MS_FSS | MS_DATA ) ) {
if ( umovestr ( tcp , tcp - > u_arg [ 3 ] , FSTYPSZ , fstyp ) < 0 ) {
* fstyp = 0 ;
tprintf ( " , %ld " , tcp - > u_arg [ 3 ] ) ;
}
else
tprintf ( " , \" %s \" " , fstyp ) ;
}
if ( tcp - > u_arg [ 2 ] & MS_DATA ) {
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-11-26 16:14:41 +03:00
# ifdef VX_MS_MASK
/* On UW7 they don't give us the defines and structs
we need to see what is going on . Bummer . */
2011-06-07 14:13:24 +04:00
if ( strcmp ( fstyp , " vxfs " ) = = 0 ) {
1999-11-26 16:14:41 +03:00
struct vx_mountargs5 args ;
if ( umove ( tcp , tcp - > u_arg [ 4 ] , & args ) < 0 )
tprintf ( " %#lx " , tcp - > u_arg [ 4 ] ) ;
else {
2011-09-01 12:00:28 +04:00
tprints ( " { flags= " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( vxfs_flags , args . mflags , " VX_MS_??? " ) ;
1999-11-26 16:14:41 +03:00
if ( args . mflags & VX_MS_SNAPSHOT ) {
2011-09-01 12:00:28 +04:00
tprints ( " , snapof= " ) ;
2011-06-07 14:13:24 +04:00
printstr ( tcp ,
2004-08-31 10:48:46 +04:00
( long ) args . primaryspec ,
1999-11-26 16:14:41 +03:00
- 1 ) ;
if ( args . snapsize > 0 )
2011-06-07 14:13:24 +04:00
tprintf ( " , snapsize=%ld " , args . snapsize ) ;
1999-11-26 16:14:41 +03:00
}
2011-09-01 12:00:28 +04:00
tprints ( " } " ) ;
1999-11-26 16:14:41 +03:00
}
}
else
# endif
2011-06-07 14:13:24 +04:00
if ( strcmp ( fstyp , " specfs " ) = = 0 ) {
2011-09-01 12:00:28 +04:00
tprints ( " dev= " ) ;
2011-06-07 14:13:24 +04:00
printstr ( tcp , tcp - > u_arg [ 4 ] , - 1 ) ;
1999-11-26 16:14:41 +03:00
}
else
2011-06-07 14:13:24 +04:00
if ( strcmp ( fstyp , " nfs " ) = = 0 ) {
1999-11-26 16:14:41 +03:00
struct nfs_args args ;
if ( umove ( tcp , tcp - > u_arg [ 4 ] , & args ) < 0 )
tprintf ( " %#lx " , tcp - > u_arg [ 4 ] ) ;
else {
struct netbuf addr ;
2011-09-01 12:00:28 +04:00
tprints ( " { addr= " ) ;
2011-06-07 14:13:24 +04:00
if ( umove ( tcp , ( int ) args . addr , & addr ) < 0 ) {
tprintf ( " %#lx " , ( long ) args . addr ) ;
1999-11-26 16:14:41 +03:00
}
else {
printsock ( tcp , ( int ) addr . buf , addr . len ) ;
}
2011-09-01 12:00:28 +04:00
tprints ( " , flags= " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( nfs_flags , args . flags , " NFSMNT_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , hostname= " ) ;
1999-11-26 16:14:41 +03:00
printstr ( tcp , ( int ) args . hostname , - 1 ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , ...} " ) ;
1999-11-26 16:14:41 +03:00
}
}
else
tprintf ( " %#lx " , tcp - > u_arg [ 4 ] ) ;
tprintf ( " , %ld " , tcp - > u_arg [ 5 ] ) ;
}
}
return 0 ;
}
# else /* !UNIXWARE */
1999-02-19 03:21:36 +03:00
int
2011-05-30 16:00:14 +04:00
sys_mount ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
if ( entering ( tcp ) ) {
printpath ( tcp , tcp - > u_arg [ 0 ] ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-02-19 03:21:36 +03:00
printpath ( tcp , tcp - > u_arg [ 1 ] ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , ... " ) ;
1999-02-19 03:21:36 +03:00
}
return 0 ;
}
1999-11-29 18:34:02 +03:00
# endif /* !UNIXWARE */
1999-02-19 03:21:36 +03:00
# endif /* !MIPS */
# endif /* SVR4 */
1999-07-03 22:53:05 +04:00
# ifdef SYS_capget
2000-04-11 02:22:31 +04:00
2004-09-04 07:39:20 +04:00
static const struct xlat capabilities [ ] = {
2000-04-11 02:22:31 +04:00
{ 1 < < CAP_CHOWN , " CAP_CHOWN " } ,
{ 1 < < CAP_DAC_OVERRIDE , " CAP_DAC_OVERRIDE " } ,
{ 1 < < CAP_DAC_READ_SEARCH , " CAP_DAC_READ_SEARCH " } ,
{ 1 < < CAP_FOWNER , " CAP_FOWNER " } ,
{ 1 < < CAP_FSETID , " CAP_FSETID " } ,
{ 1 < < CAP_KILL , " CAP_KILL " } ,
{ 1 < < CAP_SETGID , " CAP_SETGID " } ,
{ 1 < < CAP_SETUID , " CAP_SETUID " } ,
{ 1 < < CAP_SETPCAP , " CAP_SETPCAP " } ,
{ 1 < < CAP_LINUX_IMMUTABLE , " CAP_LINUX_IMMUTABLE " } ,
{ 1 < < CAP_NET_BIND_SERVICE , " CAP_NET_BIND_SERVICE " } ,
{ 1 < < CAP_NET_BROADCAST , " CAP_NET_BROADCAST " } ,
{ 1 < < CAP_NET_ADMIN , " CAP_NET_ADMIN " } ,
{ 1 < < CAP_NET_RAW , " CAP_NET_RAW " } ,
{ 1 < < CAP_IPC_LOCK , " CAP_IPC_LOCK " } ,
{ 1 < < CAP_IPC_OWNER , " CAP_IPC_OWNER " } ,
{ 1 < < CAP_SYS_MODULE , " CAP_SYS_MODULE " } ,
{ 1 < < CAP_SYS_RAWIO , " CAP_SYS_RAWIO " } ,
{ 1 < < CAP_SYS_CHROOT , " CAP_SYS_CHROOT " } ,
{ 1 < < CAP_SYS_PTRACE , " CAP_SYS_PTRACE " } ,
{ 1 < < CAP_SYS_PACCT , " CAP_SYS_PACCT " } ,
{ 1 < < CAP_SYS_ADMIN , " CAP_SYS_ADMIN " } ,
{ 1 < < CAP_SYS_BOOT , " CAP_SYS_BOOT " } ,
{ 1 < < CAP_SYS_NICE , " CAP_SYS_NICE " } ,
{ 1 < < CAP_SYS_RESOURCE , " CAP_SYS_RESOURCE " } ,
{ 1 < < CAP_SYS_TIME , " CAP_SYS_TIME " } ,
{ 1 < < CAP_SYS_TTY_CONFIG , " CAP_SYS_TTY_CONFIG " } ,
2008-11-11 03:21:09 +03:00
# ifdef CAP_MKNOD
{ 1 < < CAP_MKNOD , " CAP_MKNOD " } ,
# endif
# ifdef CAP_LEASE
{ 1 < < CAP_LEASE , " CAP_LEASE " } ,
# endif
# ifdef CAP_AUDIT_WRITE
{ 1 < < CAP_AUDIT_WRITE , " CAP_AUDIT_WRITE " } ,
# endif
# ifdef CAP_AUDIT_CONTROL
{ 1 < < CAP_AUDIT_CONTROL , " CAP_AUDIT_CONTROL " } ,
# endif
# ifdef CAP_SETFCAP
{ 1 < < CAP_SETFCAP , " CAP_SETFCAP " } ,
# endif
2011-06-07 14:13:24 +04:00
{ 0 , NULL } ,
2000-04-11 02:22:31 +04:00
} ;
1999-02-19 03:21:36 +03:00
int
2011-05-30 16:00:14 +04:00
sys_capget ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
2011-06-23 15:10:28 +04:00
/* cap_user_ types are _pointers_ to (small) structs. */
/* Structs themselves have no names defined. */
/* Have to use ugly hack to place them on stack. */
cap_user_header_t arg0 ;
cap_user_data_t arg1 ;
long a0 [ sizeof ( * arg0 ) / sizeof ( long ) + 1 ] ;
long a1 [ sizeof ( * arg1 ) / sizeof ( long ) + 1 ] ;
2011-06-23 17:25:09 +04:00
arg0 = ( cap_user_header_t ) a0 ;
arg1 = ( cap_user_data_t ) a1 ;
1999-02-19 03:21:36 +03:00
2011-06-07 14:13:24 +04:00
if ( ! entering ( tcp ) ) {
2000-04-11 02:22:31 +04:00
if ( ! tcp - > u_arg [ 0 ] )
2011-09-01 12:00:28 +04:00
tprints ( " NULL " ) ;
2000-04-11 02:22:31 +04:00
else if ( ! verbose ( tcp ) )
tprintf ( " %#lx " , tcp - > u_arg [ 0 ] ) ;
else if ( umoven ( tcp , tcp - > u_arg [ 0 ] , sizeof ( * arg0 ) , ( char * ) arg0 ) < 0 )
2011-09-01 12:00:28 +04:00
tprints ( " ??? " ) ;
2000-04-11 02:22:31 +04:00
else {
tprintf ( " %#x, %d " , arg0 - > version , arg0 - > pid ) ;
}
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2000-04-11 02:22:31 +04:00
if ( ! tcp - > u_arg [ 1 ] )
2011-09-01 12:00:28 +04:00
tprints ( " NULL " ) ;
2000-04-11 02:22:31 +04:00
else if ( ! verbose ( tcp ) )
tprintf ( " %#lx " , tcp - > u_arg [ 1 ] ) ;
else if ( umoven ( tcp , tcp - > u_arg [ 1 ] , sizeof ( * arg1 ) , ( char * ) arg1 ) < 0 )
2011-09-01 12:00:28 +04:00
tprints ( " ??? " ) ;
2000-04-11 02:22:31 +04:00
else {
2011-09-01 12:00:28 +04:00
tprints ( " { " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( capabilities , arg1 - > effective , " CAP_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( capabilities , arg1 - > permitted , " CAP_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( capabilities , arg1 - > inheritable , " CAP_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " } " ) ;
2004-08-31 10:48:46 +04:00
}
1999-02-19 03:21:36 +03:00
}
return 0 ;
}
int
2011-05-30 16:00:14 +04:00
sys_capset ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
2011-06-23 15:10:28 +04:00
cap_user_header_t arg0 ;
cap_user_data_t arg1 ;
long a0 [ sizeof ( * arg0 ) / sizeof ( long ) + 1 ] ;
long a1 [ sizeof ( * arg1 ) / sizeof ( long ) + 1 ] ;
2011-06-23 17:25:09 +04:00
arg0 = ( cap_user_header_t ) a0 ;
arg1 = ( cap_user_data_t ) a1 ;
2000-04-11 02:22:31 +04:00
2011-06-07 14:13:24 +04:00
if ( entering ( tcp ) ) {
2000-04-11 02:22:31 +04:00
if ( ! tcp - > u_arg [ 0 ] )
2011-09-01 12:00:28 +04:00
tprints ( " NULL " ) ;
2000-04-11 02:22:31 +04:00
else if ( ! verbose ( tcp ) )
tprintf ( " %#lx " , tcp - > u_arg [ 0 ] ) ;
else if ( umoven ( tcp , tcp - > u_arg [ 0 ] , sizeof ( * arg0 ) , ( char * ) arg0 ) < 0 )
2011-09-01 12:00:28 +04:00
tprints ( " ??? " ) ;
2000-04-11 02:22:31 +04:00
else {
tprintf ( " %#x, %d " , arg0 - > version , arg0 - > pid ) ;
}
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2000-04-11 02:22:31 +04:00
if ( ! tcp - > u_arg [ 1 ] )
2011-09-01 12:00:28 +04:00
tprints ( " NULL " ) ;
2000-04-11 02:22:31 +04:00
else if ( ! verbose ( tcp ) )
tprintf ( " %#lx " , tcp - > u_arg [ 1 ] ) ;
else if ( umoven ( tcp , tcp - > u_arg [ 1 ] , sizeof ( * arg1 ) , ( char * ) arg1 ) < 0 )
2011-09-01 12:00:28 +04:00
tprints ( " ??? " ) ;
2000-04-11 02:22:31 +04:00
else {
2011-09-01 12:00:28 +04:00
tprints ( " { " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( capabilities , arg1 - > effective , " CAP_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( capabilities , arg1 - > permitted , " CAP_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2005-05-31 Dmitry V. Levin <ldv@altlinux.org>
* util.c (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument, "const char *", with similar
meaning to the third argument of printxval().
* defs.h (printxval): Change third argument from "char *" to
"const char *".
(printflags): Add third argument.
* bjm.c (sys_query_module) [LINUX]: Pass third argument to
printflags().
* desc.c (sys_fcntl): Likewise.
(sys_flock) [LOCK_SH]: Likewise.
(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
* file.c (sys_open): Likewise.
(solaris_open) [LINUXSPARC]: Likewise.
(sys_access): Likewise.
(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
(realprintstat) [HAVE_LONG_LONG_OFF_T &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(printstat64) [HAVE_STAT64 &&
HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
(sys_setxattr, sys_fsetxattr): Likewise.
* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
(sys_mq_open) [LINUX]: Likewise.
(printmqattr) [HAVE_MQUEUE_H]: Likewise.
* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
(sys_mprotect): Likewise.
(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
(sys_msync) [MS_ASYNC]: Likewise.
(sys_mctl) [MC_SYNC]: Likewise.
(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
Likewise.
* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
(sys_send, sys_sendto): Likewise.
(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
(sys_recv, sys_recvfrom): Likewise.
(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
(printicmpfilter) [ICMP_FILTER]: Likewise.
* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
* process.c (sys_clone) [LINUX]: Likewise.
(printwaitn): Likewise.
(sys_waitid) [SVR4 || LINUX]: Likewise.
* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
(sys_sigaction): Likewise.
(printcontext) [SVR4]: Likewise.
(print_stack_t) [LINUX) || FREEBSD]: Likewise.
(sys_rt_sigaction) [LINUX]: Likewise.
* sock.c (sock_ioctl) [LINUX]: Likewise.
* stream.c (sys_putmsg, sys_getmsg): Likewise.
(sys_putpmsg) [SYS_putpmsg]: Likewise.
(sys_getpmsg) [SYS_getpmsg]: Likewise.
(sys_poll): Likewise.
(print_transport_message) [TI_BIND]: Likewise.
(stream_ioctl): Likewise.
* system.c (sys_mount, sys_reboot): Likewise.
(sys_cacheflush) [LINUX && M68K]: Likewise.
(sys_capget, sys_capset) [SYS_capget]: Likewise.
* term.c (term_ioctl) [TIOCMGET]: Likewise.
* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
Likewise.
Fixes RH#159310.
2005-06-01 23:02:36 +04:00
printflags ( capabilities , arg1 - > inheritable , " CAP_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " } " ) ;
2004-08-31 10:48:46 +04:00
}
1999-02-19 03:21:36 +03:00
}
return 0 ;
}
# else
2011-05-30 16:00:14 +04:00
int sys_capget ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
return printargs ( tcp ) ;
}
2011-05-30 16:00:14 +04:00
int sys_capset ( struct tcb * tcp )
1999-02-19 03:21:36 +03:00
{
return printargs ( tcp ) ;
}
# endif
1999-05-27 16:00:57 +04:00
# ifdef LINUX
2006-12-04 16:48:10 +03:00
/* Linux 2.6.18+ headers removed CTL_PROC enum. */
# define CTL_PROC 4
2007-01-12 01:48:39 +03:00
# define CTL_CPU 10 /* older headers lack */
2004-09-04 07:39:20 +04:00
static const struct xlat sysctl_root [ ] = {
1999-05-27 16:00:57 +04:00
{ CTL_KERN , " CTL_KERN " } ,
{ CTL_VM , " CTL_VM " } ,
{ CTL_NET , " CTL_NET " } ,
{ CTL_PROC , " CTL_PROC " } ,
{ CTL_FS , " CTL_FS " } ,
{ CTL_DEBUG , " CTL_DEBUG " } ,
{ CTL_DEV , " CTL_DEV " } ,
2006-12-04 16:48:10 +03:00
{ CTL_BUS , " CTL_BUS " } ,
{ CTL_ABI , " CTL_ABI " } ,
{ CTL_CPU , " CTL_CPU " } ,
1999-05-27 16:00:57 +04:00
{ 0 , NULL }
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat sysctl_kern [ ] = {
1999-05-27 16:00:57 +04:00
{ KERN_OSTYPE , " KERN_OSTYPE " } ,
{ KERN_OSRELEASE , " KERN_OSRELEASE " } ,
{ KERN_OSREV , " KERN_OSREV " } ,
{ KERN_VERSION , " KERN_VERSION " } ,
{ KERN_SECUREMASK , " KERN_SECUREMASK " } ,
{ KERN_PROF , " KERN_PROF " } ,
{ KERN_NODENAME , " KERN_NODENAME " } ,
{ KERN_DOMAINNAME , " KERN_DOMAINNAME " } ,
1999-08-30 03:15:07 +04:00
# ifdef KERN_SECURELVL
1999-05-27 16:00:57 +04:00
{ KERN_SECURELVL , " KERN_SECURELVL " } ,
1999-08-30 03:15:07 +04:00
# endif
1999-05-27 16:00:57 +04:00
{ KERN_PANIC , " KERN_PANIC " } ,
1999-08-30 03:15:07 +04:00
# ifdef KERN_REALROOTDEV
1999-05-27 16:00:57 +04:00
{ KERN_REALROOTDEV , " KERN_REALROOTDEV " } ,
1999-08-30 03:15:07 +04:00
# endif
# ifdef KERN_JAVA_INTERPRETER
1999-05-27 16:00:57 +04:00
{ KERN_JAVA_INTERPRETER , " KERN_JAVA_INTERPRETER " } ,
1999-08-30 03:15:07 +04:00
# endif
# ifdef KERN_JAVA_APPLETVIEWER
1999-05-27 16:00:57 +04:00
{ KERN_JAVA_APPLETVIEWER , " KERN_JAVA_APPLETVIEWER " } ,
1999-08-30 03:15:07 +04:00
# endif
1999-05-27 16:00:57 +04:00
{ KERN_SPARC_REBOOT , " KERN_SPARC_REBOOT " } ,
{ KERN_CTLALTDEL , " KERN_CTLALTDEL " } ,
{ KERN_PRINTK , " KERN_PRINTK " } ,
{ KERN_NAMETRANS , " KERN_NAMETRANS " } ,
{ KERN_PPC_HTABRECLAIM , " KERN_PPC_HTABRECLAIM " } ,
{ KERN_PPC_ZEROPAGED , " KERN_PPC_ZEROPAGED " } ,
{ KERN_PPC_POWERSAVE_NAP , " KERN_PPC_POWERSAVE_NAP " } ,
{ KERN_MODPROBE , " KERN_MODPROBE " } ,
{ KERN_SG_BIG_BUFF , " KERN_SG_BIG_BUFF " } ,
{ KERN_ACCT , " KERN_ACCT " } ,
{ KERN_PPC_L2CR , " KERN_PPC_L2CR " } ,
{ KERN_RTSIGNR , " KERN_RTSIGNR " } ,
{ KERN_RTSIGMAX , " KERN_RTSIGMAX " } ,
{ KERN_SHMMAX , " KERN_SHMMAX " } ,
{ KERN_MSGMAX , " KERN_MSGMAX " } ,
{ KERN_MSGMNB , " KERN_MSGMNB " } ,
{ KERN_MSGPOOL , " KERN_MSGPOOL " } ,
{ 0 , NULL }
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat sysctl_vm [ ] = {
2004-03-02 01:10:54 +03:00
# ifdef VM_SWAPCTL
1999-05-27 16:00:57 +04:00
{ VM_SWAPCTL , " VM_SWAPCTL " } ,
2004-03-02 01:10:54 +03:00
# endif
# ifdef VM_UNUSED1
{ VM_UNUSED1 , " VM_UNUSED1 " } ,
# endif
# ifdef VM_SWAPOUT
1999-05-27 16:00:57 +04:00
{ VM_SWAPOUT , " VM_SWAPOUT " } ,
2004-03-02 01:10:54 +03:00
# endif
# ifdef VM_UNUSED2
{ VM_UNUSED2 , " VM_UNUSED2 " } ,
# endif
# ifdef VM_FREEPG
1999-05-27 16:00:57 +04:00
{ VM_FREEPG , " VM_FREEPG " } ,
2004-03-02 01:10:54 +03:00
# endif
# ifdef VM_UNUSED3
{ VM_UNUSED3 , " VM_UNUSED3 " } ,
# endif
# ifdef VM_BDFLUSH
1999-05-27 16:00:57 +04:00
{ VM_BDFLUSH , " VM_BDFLUSH " } ,
2004-03-02 01:10:54 +03:00
# endif
# ifdef VM_UNUSED4
{ VM_UNUSED4 , " VM_UNUSED4 " } ,
# endif
1999-05-27 16:00:57 +04:00
{ VM_OVERCOMMIT_MEMORY , " VM_OVERCOMMIT_MEMORY " } ,
2004-03-02 01:10:54 +03:00
# ifdef VM_BUFFERMEM
1999-05-27 16:00:57 +04:00
{ VM_BUFFERMEM , " VM_BUFFERMEM " } ,
2004-03-02 01:10:54 +03:00
# endif
# ifdef VM_UNUSED5
{ VM_UNUSED5 , " VM_UNUSED5 " } ,
# endif
# ifdef VM_PAGECACHE
1999-05-27 16:00:57 +04:00
{ VM_PAGECACHE , " VM_PAGECACHE " } ,
2004-03-02 01:10:54 +03:00
# endif
# ifdef VM_UNUSED7
{ VM_UNUSED7 , " VM_UNUSED7 " } ,
# endif
# ifdef VM_PAGERDAEMON
1999-05-27 16:00:57 +04:00
{ VM_PAGERDAEMON , " VM_PAGERDAEMON " } ,
2004-03-02 01:10:54 +03:00
# endif
# ifdef VM_UNUSED8
{ VM_UNUSED8 , " VM_UNUSED8 " } ,
# endif
# ifdef VM_PGT_CACHE
1999-05-27 16:00:57 +04:00
{ VM_PGT_CACHE , " VM_PGT_CACHE " } ,
2004-03-02 01:10:54 +03:00
# endif
# ifdef VM_UNUSED9
{ VM_UNUSED9 , " VM_UNUSED9 " } ,
# endif
1999-05-27 16:00:57 +04:00
{ VM_PAGE_CLUSTER , " VM_PAGE_CLUSTER " } ,
{ 0 , NULL } ,
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat sysctl_net [ ] = {
1999-05-27 16:00:57 +04:00
{ NET_CORE , " NET_CORE " } ,
{ NET_ETHER , " NET_ETHER " } ,
{ NET_802 , " NET_802 " } ,
{ NET_UNIX , " NET_UNIX " } ,
{ NET_IPV4 , " NET_IPV4 " } ,
{ NET_IPX , " NET_IPX " } ,
{ NET_ATALK , " NET_ATALK " } ,
{ NET_NETROM , " NET_NETROM " } ,
{ NET_AX25 , " NET_AX25 " } ,
{ NET_BRIDGE , " NET_BRIDGE " } ,
{ NET_ROSE , " NET_ROSE " } ,
{ NET_IPV6 , " NET_IPV6 " } ,
{ NET_X25 , " NET_X25 " } ,
{ NET_TR , " NET_TR " } ,
{ NET_DECNET , " NET_DECNET " } ,
{ 0 , NULL }
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat sysctl_net_core [ ] = {
1999-05-27 16:00:57 +04:00
{ NET_CORE_WMEM_MAX , " NET_CORE_WMEM_MAX " } ,
{ NET_CORE_RMEM_MAX , " NET_CORE_RMEM_MAX " } ,
{ NET_CORE_WMEM_DEFAULT , " NET_CORE_WMEM_DEFAULT " } ,
{ NET_CORE_RMEM_DEFAULT , " NET_CORE_RMEM_DEFAULT " } ,
{ NET_CORE_MAX_BACKLOG , " NET_CORE_MAX_BACKLOG " } ,
{ NET_CORE_FASTROUTE , " NET_CORE_FASTROUTE " } ,
{ NET_CORE_MSG_COST , " NET_CORE_MSG_COST " } ,
{ NET_CORE_MSG_BURST , " NET_CORE_MSG_BURST " } ,
{ NET_CORE_OPTMEM_MAX , " NET_CORE_OPTMEM_MAX " } ,
{ 0 , NULL }
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat sysctl_net_unix [ ] = {
1999-05-27 16:00:57 +04:00
{ NET_UNIX_DESTROY_DELAY , " NET_UNIX_DESTROY_DELAY " } ,
{ NET_UNIX_DELETE_DELAY , " NET_UNIX_DELETE_DELAY " } ,
{ 0 , NULL }
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat sysctl_net_ipv4 [ ] = {
1999-05-27 16:00:57 +04:00
{ NET_IPV4_FORWARD , " NET_IPV4_FORWARD " } ,
{ NET_IPV4_DYNADDR , " NET_IPV4_DYNADDR " } ,
{ NET_IPV4_CONF , " NET_IPV4_CONF " } ,
{ NET_IPV4_NEIGH , " NET_IPV4_NEIGH " } ,
{ NET_IPV4_ROUTE , " NET_IPV4_ROUTE " } ,
{ NET_IPV4_FIB_HASH , " NET_IPV4_FIB_HASH " } ,
{ NET_IPV4_TCP_TIMESTAMPS , " NET_IPV4_TCP_TIMESTAMPS " } ,
{ NET_IPV4_TCP_WINDOW_SCALING , " NET_IPV4_TCP_WINDOW_SCALING " } ,
{ NET_IPV4_TCP_SACK , " NET_IPV4_TCP_SACK " } ,
{ NET_IPV4_TCP_RETRANS_COLLAPSE , " NET_IPV4_TCP_RETRANS_COLLAPSE " } ,
{ NET_IPV4_DEFAULT_TTL , " NET_IPV4_DEFAULT_TTL " } ,
{ NET_IPV4_AUTOCONFIG , " NET_IPV4_AUTOCONFIG " } ,
{ NET_IPV4_NO_PMTU_DISC , " NET_IPV4_NO_PMTU_DISC " } ,
{ NET_IPV4_TCP_SYN_RETRIES , " NET_IPV4_TCP_SYN_RETRIES " } ,
{ NET_IPV4_IPFRAG_HIGH_THRESH , " NET_IPV4_IPFRAG_HIGH_THRESH " } ,
{ NET_IPV4_IPFRAG_LOW_THRESH , " NET_IPV4_IPFRAG_LOW_THRESH " } ,
{ NET_IPV4_IPFRAG_TIME , " NET_IPV4_IPFRAG_TIME " } ,
{ NET_IPV4_TCP_MAX_KA_PROBES , " NET_IPV4_TCP_MAX_KA_PROBES " } ,
{ NET_IPV4_TCP_KEEPALIVE_TIME , " NET_IPV4_TCP_KEEPALIVE_TIME " } ,
{ NET_IPV4_TCP_KEEPALIVE_PROBES , " NET_IPV4_TCP_KEEPALIVE_PROBES " } ,
{ NET_IPV4_TCP_RETRIES1 , " NET_IPV4_TCP_RETRIES1 " } ,
{ NET_IPV4_TCP_RETRIES2 , " NET_IPV4_TCP_RETRIES2 " } ,
{ NET_IPV4_TCP_FIN_TIMEOUT , " NET_IPV4_TCP_FIN_TIMEOUT " } ,
{ NET_IPV4_IP_MASQ_DEBUG , " NET_IPV4_IP_MASQ_DEBUG " } ,
{ NET_TCP_SYNCOOKIES , " NET_TCP_SYNCOOKIES " } ,
{ NET_TCP_STDURG , " NET_TCP_STDURG " } ,
{ NET_TCP_RFC1337 , " NET_TCP_RFC1337 " } ,
{ NET_TCP_SYN_TAILDROP , " NET_TCP_SYN_TAILDROP " } ,
{ NET_TCP_MAX_SYN_BACKLOG , " NET_TCP_MAX_SYN_BACKLOG " } ,
{ NET_IPV4_LOCAL_PORT_RANGE , " NET_IPV4_LOCAL_PORT_RANGE " } ,
{ NET_IPV4_ICMP_ECHO_IGNORE_ALL , " NET_IPV4_ICMP_ECHO_IGNORE_ALL " } ,
{ NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS , " NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS " } ,
{ NET_IPV4_ICMP_SOURCEQUENCH_RATE , " NET_IPV4_ICMP_SOURCEQUENCH_RATE " } ,
{ NET_IPV4_ICMP_DESTUNREACH_RATE , " NET_IPV4_ICMP_DESTUNREACH_RATE " } ,
{ NET_IPV4_ICMP_TIMEEXCEED_RATE , " NET_IPV4_ICMP_TIMEEXCEED_RATE " } ,
{ NET_IPV4_ICMP_PARAMPROB_RATE , " NET_IPV4_ICMP_PARAMPROB_RATE " } ,
{ NET_IPV4_ICMP_ECHOREPLY_RATE , " NET_IPV4_ICMP_ECHOREPLY_RATE " } ,
{ NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES , " NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES " } ,
{ NET_IPV4_IGMP_MAX_MEMBERSHIPS , " NET_IPV4_IGMP_MAX_MEMBERSHIPS " } ,
{ 0 , NULL }
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat sysctl_net_ipv4_route [ ] = {
1999-05-27 16:00:57 +04:00
{ NET_IPV4_ROUTE_FLUSH , " NET_IPV4_ROUTE_FLUSH " } ,
{ NET_IPV4_ROUTE_MIN_DELAY , " NET_IPV4_ROUTE_MIN_DELAY " } ,
{ NET_IPV4_ROUTE_MAX_DELAY , " NET_IPV4_ROUTE_MAX_DELAY " } ,
{ NET_IPV4_ROUTE_GC_THRESH , " NET_IPV4_ROUTE_GC_THRESH " } ,
{ NET_IPV4_ROUTE_MAX_SIZE , " NET_IPV4_ROUTE_MAX_SIZE " } ,
{ NET_IPV4_ROUTE_GC_MIN_INTERVAL , " NET_IPV4_ROUTE_GC_MIN_INTERVAL " } ,
{ NET_IPV4_ROUTE_GC_TIMEOUT , " NET_IPV4_ROUTE_GC_TIMEOUT " } ,
{ NET_IPV4_ROUTE_GC_INTERVAL , " NET_IPV4_ROUTE_GC_INTERVAL " } ,
{ NET_IPV4_ROUTE_REDIRECT_LOAD , " NET_IPV4_ROUTE_REDIRECT_LOAD " } ,
{ NET_IPV4_ROUTE_REDIRECT_NUMBER , " NET_IPV4_ROUTE_REDIRECT_NUMBER " } ,
{ NET_IPV4_ROUTE_REDIRECT_SILENCE , " NET_IPV4_ROUTE_REDIRECT_SILENCE " } ,
{ NET_IPV4_ROUTE_ERROR_COST , " NET_IPV4_ROUTE_ERROR_COST " } ,
{ NET_IPV4_ROUTE_ERROR_BURST , " NET_IPV4_ROUTE_ERROR_BURST " } ,
{ NET_IPV4_ROUTE_GC_ELASTICITY , " NET_IPV4_ROUTE_GC_ELASTICITY " } ,
{ 0 , NULL }
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat sysctl_net_ipv4_conf [ ] = {
1999-05-27 16:00:57 +04:00
{ NET_IPV4_CONF_FORWARDING , " NET_IPV4_CONF_FORWARDING " } ,
{ NET_IPV4_CONF_MC_FORWARDING , " NET_IPV4_CONF_MC_FORWARDING " } ,
{ NET_IPV4_CONF_PROXY_ARP , " NET_IPV4_CONF_PROXY_ARP " } ,
{ NET_IPV4_CONF_ACCEPT_REDIRECTS , " NET_IPV4_CONF_ACCEPT_REDIRECTS " } ,
{ NET_IPV4_CONF_SECURE_REDIRECTS , " NET_IPV4_CONF_SECURE_REDIRECTS " } ,
{ NET_IPV4_CONF_SEND_REDIRECTS , " NET_IPV4_CONF_SEND_REDIRECTS " } ,
{ NET_IPV4_CONF_SHARED_MEDIA , " NET_IPV4_CONF_SHARED_MEDIA " } ,
{ NET_IPV4_CONF_RP_FILTER , " NET_IPV4_CONF_RP_FILTER " } ,
{ NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE , " NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE " } ,
{ NET_IPV4_CONF_BOOTP_RELAY , " NET_IPV4_CONF_BOOTP_RELAY " } ,
{ NET_IPV4_CONF_LOG_MARTIANS , " NET_IPV4_CONF_LOG_MARTIANS " } ,
{ 0 , NULL }
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat sysctl_net_ipv6 [ ] = {
1999-05-27 16:00:57 +04:00
{ NET_IPV6_CONF , " NET_IPV6_CONF " } ,
{ NET_IPV6_NEIGH , " NET_IPV6_NEIGH " } ,
{ NET_IPV6_ROUTE , " NET_IPV6_ROUTE " } ,
{ 0 , NULL }
} ;
2004-09-04 07:39:20 +04:00
static const struct xlat sysctl_net_ipv6_route [ ] = {
1999-05-27 16:00:57 +04:00
{ NET_IPV6_ROUTE_FLUSH , " NET_IPV6_ROUTE_FLUSH " } ,
{ NET_IPV6_ROUTE_GC_THRESH , " NET_IPV6_ROUTE_GC_THRESH " } ,
{ NET_IPV6_ROUTE_MAX_SIZE , " NET_IPV6_ROUTE_MAX_SIZE " } ,
{ NET_IPV6_ROUTE_GC_MIN_INTERVAL , " NET_IPV6_ROUTE_GC_MIN_INTERVAL " } ,
{ NET_IPV6_ROUTE_GC_TIMEOUT , " NET_IPV6_ROUTE_GC_TIMEOUT " } ,
{ NET_IPV6_ROUTE_GC_INTERVAL , " NET_IPV6_ROUTE_GC_INTERVAL " } ,
{ NET_IPV6_ROUTE_GC_ELASTICITY , " NET_IPV6_ROUTE_GC_ELASTICITY " } ,
{ 0 , NULL }
} ;
int
2011-05-30 16:00:14 +04:00
sys_sysctl ( struct tcb * tcp )
1999-05-27 16:00:57 +04:00
{
struct __sysctl_args info ;
int * name ;
2005-06-01 23:22:06 +04:00
unsigned long size ;
2011-06-07 14:13:24 +04:00
if ( umove ( tcp , tcp - > u_arg [ 0 ] , & info ) < 0 )
2005-05-27 03:21:09 +04:00
return printargs ( tcp ) ;
2011-06-07 14:13:24 +04:00
size = sizeof ( int ) * ( unsigned long ) info . nlen ;
name = ( size / sizeof ( int ) ! = info . nlen ) ? NULL : malloc ( size ) ;
2005-05-27 03:21:09 +04:00
if ( name = = NULL | |
2005-06-01 23:22:06 +04:00
umoven ( tcp , ( unsigned long ) info . name , size , ( char * ) name ) < 0 ) {
free ( name ) ;
if ( entering ( tcp ) )
tprintf ( " {%p, %d, %p, %p, %p, %Zu} " ,
info . name , info . nlen , info . oldval ,
info . oldlenp , info . newval , info . newlen ) ;
2005-05-27 03:21:09 +04:00
return 0 ;
}
1999-05-27 16:00:57 +04:00
if ( entering ( tcp ) ) {
2005-06-01 23:22:06 +04:00
int cnt = 0 , max_cnt ;
1999-05-27 16:00:57 +04:00
2011-09-01 12:00:28 +04:00
tprints ( " {{ " ) ;
1999-05-27 16:00:57 +04:00
if ( info . nlen = = 0 )
goto out ;
printxval ( sysctl_root , name [ 0 ] , " CTL_??? " ) ;
+ + cnt ;
if ( info . nlen = = 1 )
goto out ;
switch ( name [ 0 ] ) {
case CTL_KERN :
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-05-27 16:00:57 +04:00
printxval ( sysctl_kern , name [ 1 ] , " KERN_??? " ) ;
+ + cnt ;
break ;
case CTL_VM :
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-05-27 16:00:57 +04:00
printxval ( sysctl_vm , name [ 1 ] , " VM_??? " ) ;
+ + cnt ;
break ;
case CTL_NET :
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-05-27 16:00:57 +04:00
printxval ( sysctl_net , name [ 1 ] , " NET_??? " ) ;
+ + cnt ;
if ( info . nlen = = 2 )
goto out ;
switch ( name [ 1 ] ) {
case NET_CORE :
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-05-27 16:00:57 +04:00
printxval ( sysctl_net_core , name [ 2 ] ,
" NET_CORE_??? " ) ;
break ;
case NET_UNIX :
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-05-27 16:00:57 +04:00
printxval ( sysctl_net_unix , name [ 2 ] ,
" NET_UNIX_??? " ) ;
break ;
case NET_IPV4 :
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-05-27 16:00:57 +04:00
printxval ( sysctl_net_ipv4 , name [ 2 ] ,
" NET_IPV4_??? " ) ;
if ( info . nlen = = 3 )
goto out ;
switch ( name [ 2 ] ) {
case NET_IPV4_ROUTE :
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-05-27 16:00:57 +04:00
printxval ( sysctl_net_ipv4_route ,
name [ 3 ] ,
" NET_IPV4_ROUTE_??? " ) ;
break ;
case NET_IPV4_CONF :
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-05-27 16:00:57 +04:00
printxval ( sysctl_net_ipv4_conf ,
name [ 3 ] ,
" NET_IPV4_CONF_??? " ) ;
break ;
default :
goto out ;
}
break ;
case NET_IPV6 :
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-05-27 16:00:57 +04:00
printxval ( sysctl_net_ipv6 , name [ 2 ] ,
" NET_IPV6_??? " ) ;
if ( info . nlen = = 3 )
goto out ;
switch ( name [ 2 ] ) {
case NET_IPV6_ROUTE :
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
1999-05-27 16:00:57 +04:00
printxval ( sysctl_net_ipv6_route ,
name [ 3 ] ,
" NET_IPV6_ROUTE_??? " ) ;
break ;
default :
goto out ;
}
break ;
default :
goto out ;
}
break ;
default :
goto out ;
}
out :
2006-01-12 14:03:46 +03:00
max_cnt = info . nlen ;
if ( abbrev ( tcp ) & & max_cnt > max_strlen )
max_cnt = max_strlen ;
2005-06-01 23:22:06 +04:00
while ( cnt < max_cnt )
1999-05-27 16:00:57 +04:00
tprintf ( " , %x " , name [ cnt + + ] ) ;
2005-06-01 23:22:06 +04:00
if ( cnt < info . nlen )
2011-09-01 12:00:28 +04:00
tprints ( " , ... " ) ;
1999-05-27 16:00:57 +04:00
tprintf ( " }, %d, " , info . nlen ) ;
} else {
size_t oldlen ;
2005-06-01 23:22:06 +04:00
if ( umove ( tcp , ( size_t ) info . oldlenp , & oldlen ) > = 0
& & info . nlen > = 2
1999-05-27 16:00:57 +04:00
& & ( ( name [ 0 ] = = CTL_KERN
& & ( name [ 1 ] = = KERN_OSRELEASE
| | name [ 1 ] = = KERN_OSTYPE
1999-08-30 03:15:07 +04:00
# ifdef KERN_JAVA_INTERPRETER
1999-05-27 16:00:57 +04:00
| | name [ 1 ] = = KERN_JAVA_INTERPRETER
1999-08-30 03:15:07 +04:00
# endif
# ifdef KERN_JAVA_APPLETVIEWER
| | name [ 1 ] = = KERN_JAVA_APPLETVIEWER
# endif
) ) ) ) {
1999-05-27 16:00:57 +04:00
printpath ( tcp , ( size_t ) info . oldval ) ;
2000-02-04 00:58:30 +03:00
tprintf ( " , %Zu, " , oldlen ) ;
1999-05-27 16:00:57 +04:00
if ( info . newval = = 0 )
2011-09-01 12:00:28 +04:00
tprints ( " NULL " ) ;
1999-05-27 16:00:57 +04:00
else if ( syserror ( tcp ) )
tprintf ( " %p " , info . newval ) ;
else
printpath ( tcp , ( size_t ) info . newval ) ;
tprintf ( " , %Zd " , info . newlen ) ;
} else {
2000-02-04 00:58:30 +03:00
tprintf ( " %p, %Zd, %p, %Zd " , info . oldval , oldlen ,
1999-05-27 16:00:57 +04:00
info . newval , info . newlen ) ;
}
2011-09-01 12:00:28 +04:00
tprints ( " } " ) ;
1999-05-27 16:00:57 +04:00
}
2005-05-27 03:21:09 +04:00
free ( name ) ;
1999-05-27 16:00:57 +04:00
return 0 ;
}
# else
2011-05-30 16:00:14 +04:00
int sys_sysctl ( struct tcb * tcp )
1999-05-27 16:00:57 +04:00
{
return printargs ( tcp ) ;
}
# endif
2000-09-02 01:03:06 +04:00
# ifdef FREEBSD
# include <sys/sysctl.h>
2011-05-30 16:00:14 +04:00
int sys___sysctl ( struct tcb * tcp )
2000-09-02 01:03:06 +04:00
{
int qoid [ CTL_MAXNAME + 2 ] ;
char ctl [ 1024 ] ;
size_t len ;
int i , numeric ;
2004-08-31 10:48:46 +04:00
2000-09-02 01:03:06 +04:00
if ( entering ( tcp ) ) {
if ( tcp - > u_arg [ 1 ] < 0 | | tcp - > u_arg [ 1 ] > CTL_MAXNAME | |
( umoven ( tcp , tcp - > u_arg [ 0 ] , tcp - > u_arg [ 1 ] * sizeof ( int ) ,
( char * ) ( qoid + 2 ) ) < 0 ) )
2011-09-01 12:00:28 +04:00
tprints ( " [...], " ) ;
2000-09-02 01:03:06 +04:00
else {
/* Use sysctl to ask the name of the current MIB
This uses the undocumented " Staff-functions " used
by the sysctl program . See kern_sysctl . c for
details . */
qoid [ 0 ] = 0 ; /* sysctl */
qoid [ 1 ] = 1 ; /* name */
i = sizeof ( ctl ) ;
2011-09-01 12:00:28 +04:00
tprints ( " [ " ) ;
2000-09-02 01:03:06 +04:00
if ( sysctl ( qoid , tcp - > u_arg [ 1 ] + 2 , ctl , & i , 0 , 0 ) > = 0 ) {
numeric = ! abbrev ( tcp ) ;
tprintf ( " %s%s " , ctl , numeric ? " , " : " " ) ;
} else
numeric = 1 ;
if ( numeric ) {
for ( i = 0 ; i < tcp - > u_arg [ 1 ] ; i + + )
tprintf ( " %s%d " , i ? " . " : " " , qoid [ i + 2 ] ) ;
}
2011-09-01 12:00:28 +04:00
tprints ( " ], " ) ;
2000-09-02 01:03:06 +04:00
tprintf ( " %lu, " , tcp - > u_arg [ 1 ] ) ;
}
} else {
if ( ! syserror ( tcp ) & & ( umove ( tcp , tcp - > u_arg [ 3 ] , & len ) > = 0 ) ) {
printstr ( tcp , tcp - > u_arg [ 2 ] , len ) ;
tprintf ( " , [%u], " , len ) ;
2004-08-31 10:48:46 +04:00
} else
2000-09-02 01:03:06 +04:00
tprintf ( " %#lx, %#lx, " , tcp - > u_arg [ 2 ] , tcp - > u_arg [ 3 ] ) ;
printstr ( tcp , tcp - > u_arg [ 4 ] , tcp - > u_arg [ 5 ] ) ;
tprintf ( " , %lu " , tcp - > u_arg [ 5 ] ) ;
}
return 0 ;
}
# endif
2000-08-10 06:14:04 +04:00
# if UNIXWARE >= 2
# include <sys/ksym.h>
# include <sys/elf.h>
2004-09-04 07:39:20 +04:00
static const struct xlat ksym_flags [ ] = {
2004-08-31 10:48:46 +04:00
{ STT_NOTYPE , " STT_NOTYPE " } ,
{ STT_FUNC , " STT_FUNC " } ,
{ STT_OBJECT , " STT_OBJECT " } ,
2000-08-10 06:14:04 +04:00
{ 0 , NULL } ,
} ;
int
2011-05-30 16:00:14 +04:00
sys_getksym ( struct tcb * tcp )
2000-08-10 06:14:04 +04:00
{
2011-06-07 14:13:24 +04:00
if ( entering ( tcp ) ) {
2000-08-10 06:14:04 +04:00
printstr ( tcp , tcp - > u_arg [ 0 ] , - 1 ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2000-08-10 06:14:04 +04:00
}
else {
if ( syserror ( tcp ) ) {
tprintf ( " %#lx, %#lx " ,
tcp - > u_arg [ 1 ] , tcp - > u_arg [ 2 ] ) ;
}
else {
int val ;
2011-06-07 14:13:24 +04:00
printnum ( tcp , tcp - > u_arg [ 1 ] , " %#lx " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " , " ) ;
2000-08-10 06:14:04 +04:00
if ( umove ( tcp , tcp - > u_arg [ 2 ] , & val ) < 0 ) {
tprintf ( " %#lx " , tcp - > u_arg [ 2 ] ) ;
}
else {
2011-09-01 12:00:28 +04:00
tprints ( " [ " ) ;
2011-06-07 14:13:24 +04:00
printxval ( ksym_flags , val , " STT_??? " ) ;
2011-09-01 12:00:28 +04:00
tprints ( " ] " ) ;
2000-08-10 06:14:04 +04:00
}
}
}
return 0 ;
}
2004-02-20 05:22:35 +03:00
# ifdef HAVE_SYS_NSCSYS_H
2001-04-18 19:11:51 +04:00
2001-10-16 22:19:52 +04:00
struct cred ;
2001-04-18 19:11:51 +04:00
# include <sys/nscsys.h>
2011-06-07 14:13:24 +04:00
static const struct xlat ssi_cmd [ ] = {
2001-04-18 19:11:51 +04:00
{ SSISYS_BADOP , " SSISYS_BADOP " } ,
{ SSISYS_LDLVL_INIT , " SSISYS_LDLVL_INIT " } ,
{ SSISYS_LDLVL_GETVEC , " SSISYS_LDLVL_GETVEC " } ,
{ SSISYS_LDLVL_PUTVEC , " SSISYS_LDLVL_PUTVEC " } ,
{ SSISYS_LDLVL_PUTRCMDS , " SSISYS_LDLVL_PUTRCMDS " } ,
{ SSISYS_LDLVL_SETREXEC , " SSISYS_LDLVL_SETREXEC " } ,
{ SSISYS_CMS_CLUSTERID , " SSISYS_CMS_CLUSTERID " } ,
{ SSISYS_CFS_STATVFS , " SSISYS_CFS_STATVFS " } ,
{ SSISYS_NODE_GETNUM , " SSISYS_NODE_GETNUM " } ,
{ SSISYS_NODE_TABLE , " SSISYS_NODE_TABLE " } ,
{ SSISYS_NODE_DOWN , " SSISYS_NODE_DOWN " } ,
{ SSISYS_RECLAIM_CHILD , " SSISYS_RECLAIM_CHILD " } ,
{ SSISYS_IPC_GETINFO , " SSISYS_IPC_GETINFO " } ,
{ SSISYS_ICS_TEST , " SSISYS_ICS_TEST " } ,
{ SSISYS_NODE_PID , " SSISYS_NODE_PID " } ,
{ SSISYS_ISLOCAL , " SSISYS_ISLOCAL " } ,
{ SSISYS_CFS_ISSTACKED , " SSISYS_CFS_ISSTACKED " } ,
{ SSISYS_DNET_SYNC , " SSISYS_DNET_SYNC " } ,
{ SSISYS_CFS_WAIT_MODE , " SSISYS_CFS_WAIT_MODE " } ,
{ SSISYS_CFS_UMOUNT , " SSISYS_CFS_UMOUNT " } ,
{ SSISYS_LLSTAT , " SSISYS_LLSTAT " } ,
{ SSISYS_LTS_PERFTEST , " SSISYS_LTS_PERFTEST " } ,
{ SSISYS_LTS_CONFIG , " SSISYS_LTS_CONFIG " } ,
{ SSISYS_SNET_PERFTEST , " SSISYS_SNET_PERFTEST " } ,
{ SSISYS_IGNORE_HALFUP , " SSISYS_IGNORE_HALFUP " } ,
{ SSISYS_NODE_ROOTDEV , " SSISYS_NODE_ROOTDEV " } ,
{ SSISYS_GET_PRIMARY , " SSISYS_GET_PRIMARY " } ,
{ SSISYS_GET_SECONDARY , " SSISYS_GET_SECONDARY " } ,
{ SSISYS_GET_ROOTDISK , " SSISYS_GET_ROOTDISK " } ,
{ SSISYS_CLUSTERNODE_NUM , " SSISYS_CLUSTERNODE_NUM " } ,
{ SSISYS_CLUSTER_MEMBERSHIP , " SSISYS_CLUSTER_MEMBERSHIP " } ,
{ SSISYS_CLUSTER_DETAILEDTRANS , " SSISYS_CLUSTER_DETAILEDTRANS " } ,
{ SSISYS_CLUSTERNODE_INFO , " SSISYS_CLUSTERNODE_INFO " } ,
{ SSISYS_CLUSTERNODE_SETINFO , " SSISYS_CLUSTERNODE_SETINFO " } ,
{ SSISYS_CLUSTERNODE_AVAIL , " SSISYS_CLUSTERNODE_AVAIL " } ,
{ SSISYS_CLUSTER_MAXNODES , " SSISYS_CLUSTER_MAXNODES " } ,
{ SSISYS_SET_MEMPRIO , " SSISYS_SET_MEMPRIO " } ,
{ SSISYS_GET_USERS , " SSISYS_GET_USERS " } ,
{ SSISYS_FORCE_ROOT_NODE , " SSISYS_FORCE_ROOT_NODE " } ,
{ SSISYS_CVIP_SET , " SSISYS_CVIP_SET " } ,
{ SSISYS_CVIP_GET , " SSISYS_CVIP_GET " } ,
{ SSISYS_GET_NODE_COUNTS , " SSISYS_GET_NODE_COUNTS " } ,
{ SSISYS_GET_TRANSPORT , " SSISYS_GET_TRANSPORT " } ,
{ 0 , NULL } ,
} ;
2011-05-30 16:00:14 +04:00
int sys_ssisys ( struct tcb * tcp )
2001-04-18 19:11:51 +04:00
{
struct ssisys_iovec iov ;
2001-10-18 18:52:24 +04:00
cls_nodeinfo_args_t cni ;
clusternode_info_t info ;
2011-06-07 14:13:24 +04:00
if ( entering ( tcp ) ) {
2001-10-16 22:19:52 +04:00
ts_reclaim_child_inargs_t trc ;
2001-04-18 19:11:51 +04:00
if ( tcp - > u_arg [ 1 ] ! = sizeof iov | |
2011-06-07 14:13:24 +04:00
umove ( tcp , tcp - > u_arg [ 0 ] , & iov ) < 0 )
2001-04-18 19:11:51 +04:00
{
2011-06-07 14:13:24 +04:00
tprintf ( " %#lx, %ld " , tcp - > u_arg [ 0 ] , tcp - > u_arg [ 1 ] ) ;
2001-04-18 19:11:51 +04:00
return 0 ;
}
2011-09-01 12:00:28 +04:00
tprints ( " {id= " ) ;
2001-04-18 19:11:51 +04:00
printxval ( ssi_cmd , iov . tio_id . id_cmd , " SSISYS_??? " ) ;
2011-06-07 14:13:24 +04:00
tprintf ( " :%d " , iov . tio_id . id_ver ) ;
2001-04-18 19:11:51 +04:00
switch ( iov . tio_id . id_cmd ) {
2001-10-16 22:19:52 +04:00
case SSISYS_RECLAIM_CHILD :
if ( iov . tio_udatainlen ! = sizeof trc | |
2011-06-07 14:13:24 +04:00
umove ( tcp , ( long ) iov . tio_udatain , & trc ) < 0 )
2001-10-16 22:19:52 +04:00
goto bad ;
2011-06-07 14:13:24 +04:00
tprintf ( " , in={pid=%ld, start=%ld} " ,
2004-02-20 05:22:35 +03:00
trc . trc_pid , trc . trc_start ) ;
2001-10-16 22:19:52 +04:00
break ;
case SSISYS_CLUSTERNODE_INFO :
if ( iov . tio_udatainlen ! = sizeof cni | |
2011-06-07 14:13:24 +04:00
umove ( tcp , ( long ) iov . tio_udatain , & cni ) < 0 )
2001-10-16 22:19:52 +04:00
goto bad ;
2011-06-07 14:13:24 +04:00
tprintf ( " , in={node=%ld, len=%d} " ,
2001-10-16 22:19:52 +04:00
cni . nodenum , cni . info_len ) ;
break ;
2001-04-18 19:11:51 +04:00
default :
2001-10-16 22:19:52 +04:00
bad :
2001-04-18 19:11:51 +04:00
if ( iov . tio_udatainlen ) {
2011-06-07 14:13:24 +04:00
tprintf ( " , in=[/* %d bytes */] " ,
2001-04-18 19:11:51 +04:00
iov . tio_udatainlen ) ;
}
}
}
else {
2001-10-18 18:52:24 +04:00
if ( tcp - > u_arg [ 1 ] ! = sizeof iov | |
2011-06-07 14:13:24 +04:00
umove ( tcp , tcp - > u_arg [ 0 ] , & iov ) < 0 )
2001-10-18 18:52:24 +04:00
goto done ;
2001-04-18 19:11:51 +04:00
switch ( iov . tio_id . id_cmd ) {
2001-10-18 18:52:24 +04:00
case SSISYS_CLUSTERNODE_INFO :
if ( iov . tio_udatainlen ! = sizeof cni | |
2011-06-07 14:13:24 +04:00
umove ( tcp , ( long ) iov . tio_udatain , & cni ) < 0 )
2001-10-18 18:52:24 +04:00
goto bad_out ;
2004-08-31 10:48:46 +04:00
if ( cni . info_len ! = sizeof info | |
2004-02-20 05:22:35 +03:00
iov . tio_udataoutlen ! = sizeof & info | |
2011-06-07 14:13:24 +04:00
umove ( tcp , ( long ) iov . tio_udataout , & info ) < 0 )
2001-10-18 18:52:24 +04:00
goto bad_out ;
2011-06-07 14:13:24 +04:00
tprintf ( " , out={node=%ld, cpus=%d, online=%d} " ,
2001-10-18 18:52:24 +04:00
info . node_num , info . node_totalcpus ,
info . node_onlinecpus ) ;
break ;
2004-08-31 10:48:46 +04:00
2001-04-18 19:11:51 +04:00
default :
2001-10-18 18:52:24 +04:00
bad_out :
2001-04-18 19:11:51 +04:00
if ( iov . tio_udataoutlen ) {
2011-06-07 14:13:24 +04:00
tprintf ( " , out=[/* %d bytes */] " ,
2001-04-18 19:11:51 +04:00
iov . tio_udataoutlen ) ;
}
}
2001-10-18 18:52:24 +04:00
done :
2011-06-07 14:13:24 +04:00
tprintf ( " }, %ld " , tcp - > u_arg [ 1 ] ) ;
2001-04-18 19:11:51 +04:00
}
return 0 ;
}
2004-02-20 05:22:35 +03:00
# endif
2001-04-18 19:11:51 +04:00
2004-02-20 05:22:35 +03:00
# endif /* UNIXWARE > 2 */
2001-02-19 16:35:53 +03:00
# ifdef MIPS
2001-04-08 01:37:12 +04:00
# ifndef __NEW_UTS_LEN
# define __NEW_UTS_LEN 64
# endif
2004-09-04 07:39:20 +04:00
static const struct xlat sysmips_operations [ ] = {
2001-02-19 16:35:53 +03:00
{ SETNAME , " SETNAME " } ,
{ FLUSH_CACHE , " FLUSH_CACHE " } ,
{ MIPS_FIXADE , " MIPS_FIXADE " } ,
{ MIPS_RDNVRAM , " MIPS_RDNVRAM " } ,
{ MIPS_ATOMIC_SET , " MIPS_ATOMIC_SET " } ,
{ 0 , NULL }
} ;
2011-05-30 16:00:14 +04:00
int sys_sysmips ( struct tcb * tcp )
2001-02-19 16:35:53 +03:00
{
if ( entering ( tcp ) ) {
2001-04-10 14:27:52 +04:00
printxval ( sysmips_operations , tcp - > u_arg [ 0 ] , " ??? " ) ;
2001-02-19 16:35:53 +03:00
if ( ! verbose ( tcp ) ) {
2001-04-10 14:27:52 +04:00
tprintf ( " %ld, %ld, %ld " , tcp - > u_arg [ 1 ] , tcp - > u_arg [ 2 ] , tcp - > u_arg [ 3 ] ) ;
2011-06-07 14:13:24 +04:00
} else if ( tcp - > u_arg [ 0 ] = = SETNAME ) {
2001-04-10 14:27:52 +04:00
char nodename [ __NEW_UTS_LEN + 1 ] ;
if ( umovestr ( tcp , tcp - > u_arg [ 1 ] , ( __NEW_UTS_LEN + 1 ) , nodename ) < 0 )
2001-02-19 16:35:53 +03:00
tprintf ( " , %#lx " , tcp - > u_arg [ 1 ] ) ;
else
tprintf ( " , \" %s \" " , nodename ) ;
2001-04-10 14:27:52 +04:00
} else if ( tcp - > u_arg [ 0 ] = = MIPS_ATOMIC_SET ) {
tprintf ( " , %#lx, 0x%lx " , tcp - > u_arg [ 1 ] , tcp - > u_arg [ 2 ] ) ;
} else if ( tcp - > u_arg [ 0 ] = = MIPS_FIXADE ) {
tprintf ( " , 0x%lx " , tcp - > u_arg [ 1 ] ) ;
2001-02-19 16:35:53 +03:00
} else {
2001-04-10 14:27:52 +04:00
tprintf ( " %ld, %ld, %ld " , tcp - > u_arg [ 1 ] , tcp - > u_arg [ 2 ] , tcp - > u_arg [ 3 ] ) ;
2001-02-19 16:35:53 +03:00
}
}
return 0 ;
}
# endif /* MIPS */