Implemented irix_sys_systeminfo()
This commit is contained in:
parent
9e7faceaf4
commit
457750dabf
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: files.irix,v 1.13 2002/01/06 21:43:10 manu Exp $
|
||||
# $NetBSD: files.irix,v 1.14 2002/02/17 22:49:53 manu Exp $
|
||||
#
|
||||
|
||||
file arch/mips/mips/irix_syscall.c compat_irix
|
||||
|
@ -16,6 +16,7 @@ file compat/irix/irix_syscalls.c compat_irix
|
|||
file compat/irix/irix_sysent.c compat_irix
|
||||
file compat/irix/irix_syssgi.c compat_irix
|
||||
file compat/irix/irix_sysmp.c compat_irix
|
||||
file compat/irix/irix_systeminfo.c compat_irix
|
||||
|
||||
file arch/mips/mips/svr4_machdep.c compat_irix
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: irix_signal.c,v 1.4 2002/02/17 20:50:06 manu Exp $ */
|
||||
/* $NetBSD: irix_signal.c,v 1.5 2002/02/17 22:49:54 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1994, 2001-2002 The NetBSD Foundation, Inc.
|
||||
|
@ -37,7 +37,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: irix_signal.c,v 1.4 2002/02/17 20:50:06 manu Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: irix_signal.c,v 1.5 2002/02/17 22:49:54 manu Exp $");
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/signal.h>
|
||||
|
@ -286,7 +286,7 @@ irix_sys_sigreturn(p, v, retval)
|
|||
|
||||
#ifdef DEBUG_IRIX
|
||||
printf("irix_sys_sigreturn()\n");
|
||||
printf("scp = %p, ucp = %p, sig = %d (%d)\n",
|
||||
printf("scp = %p, ucp = %p, sig = %d (%p)\n",
|
||||
(void *)SCARG(uap, isr).scp, (void *)SCARG(uap, isr).ucp,
|
||||
SCARG(uap, isr).signo, (void *)SCARG(uap, isr).signo);
|
||||
#endif /* DEBUG_IRIX */
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
/* $NetBSD: irix_syscall.h,v 1.22 2002/02/17 20:50:07 manu Exp $ */
|
||||
/* $NetBSD: irix_syscall.h,v 1.23 2002/02/17 22:49:54 manu Exp $ */
|
||||
|
||||
/*
|
||||
* System call numbers.
|
||||
*
|
||||
* DO NOT EDIT-- this file is automatically generated.
|
||||
* created from NetBSD: syscalls.master,v 1.20 2002/02/04 20:26:34 manu Exp
|
||||
* created from NetBSD: syscalls.master,v 1.21 2002/02/17 20:50:07 manu Exp
|
||||
*/
|
||||
|
||||
/* syscall: "syscall" ret: "int" args: */
|
||||
|
@ -274,6 +274,9 @@
|
|||
/* syscall: "mmap" ret: "void *" args: "void *" "svr4_size_t" "int" "int" "int" "svr4_off_t" */
|
||||
#define IRIX_SYS_mmap 134
|
||||
|
||||
/* syscall: "systeminfo" ret: "long" args: "int" "char *" "long" */
|
||||
#define IRIX_SYS_systeminfo 156
|
||||
|
||||
/* syscall: "xstat" ret: "int" args: "const int" "const char *" "struct stat *" */
|
||||
#define IRIX_SYS_xstat 158
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
/* $NetBSD: irix_syscallargs.h,v 1.22 2002/02/17 20:50:07 manu Exp $ */
|
||||
/* $NetBSD: irix_syscallargs.h,v 1.23 2002/02/17 22:49:54 manu Exp $ */
|
||||
|
||||
/*
|
||||
* System call argument lists.
|
||||
*
|
||||
* DO NOT EDIT-- this file is automatically generated.
|
||||
* created from NetBSD: syscalls.master,v 1.20 2002/02/04 20:26:34 manu Exp
|
||||
* created from NetBSD: syscalls.master,v 1.21 2002/02/17 20:50:07 manu Exp
|
||||
*/
|
||||
|
||||
#ifndef _IRIX_SYS__SYSCALLARGS_H_
|
||||
|
@ -27,64 +27,6 @@
|
|||
} be; \
|
||||
}
|
||||
|
||||
struct svr4_sys_open_args {
|
||||
syscallarg(const char *) path;
|
||||
syscallarg(int) flags;
|
||||
syscallarg(int) mode;
|
||||
};
|
||||
|
||||
struct svr4_sys_creat_args {
|
||||
syscallarg(const char *) path;
|
||||
syscallarg(int) mode;
|
||||
};
|
||||
|
||||
struct svr4_sys_execv_args {
|
||||
syscallarg(const char *) path;
|
||||
syscallarg(char **) argp;
|
||||
};
|
||||
|
||||
struct svr4_sys_time_args {
|
||||
syscallarg(svr4_time_t *) t;
|
||||
};
|
||||
|
||||
struct svr4_sys_break_args {
|
||||
syscallarg(caddr_t) nsize;
|
||||
};
|
||||
|
||||
struct svr4_sys_alarm_args {
|
||||
syscallarg(unsigned) sec;
|
||||
};
|
||||
|
||||
struct svr4_sys_fstat_args {
|
||||
syscallarg(int) fd;
|
||||
syscallarg(struct svr4_stat *) sb;
|
||||
};
|
||||
|
||||
struct svr4_sys_utime_args {
|
||||
syscallarg(const char *) path;
|
||||
syscallarg(struct svr4_utimbuf *) ubuf;
|
||||
};
|
||||
|
||||
struct svr4_sys_access_args {
|
||||
syscallarg(const char *) path;
|
||||
syscallarg(int) flags;
|
||||
};
|
||||
|
||||
struct svr4_sys_nice_args {
|
||||
syscallarg(int) prio;
|
||||
};
|
||||
|
||||
struct svr4_sys_kill_args {
|
||||
syscallarg(int) pid;
|
||||
syscallarg(int) signum;
|
||||
};
|
||||
|
||||
struct svr4_sys_pgrpsys_args {
|
||||
syscallarg(int) cmd;
|
||||
syscallarg(int) pid;
|
||||
syscallarg(int) pgid;
|
||||
};
|
||||
|
||||
struct irix_sys_syssgi_args {
|
||||
syscallarg(int) request;
|
||||
syscallarg(void *) arg1;
|
||||
|
@ -94,39 +36,6 @@ struct irix_sys_syssgi_args {
|
|||
syscallarg(void *) arg5;
|
||||
};
|
||||
|
||||
struct svr4_sys_times_args {
|
||||
syscallarg(struct tms *) tp;
|
||||
};
|
||||
|
||||
struct svr4_sys_msgsys_args {
|
||||
syscallarg(int) what;
|
||||
syscallarg(int) a2;
|
||||
syscallarg(int) a3;
|
||||
syscallarg(int) a4;
|
||||
syscallarg(int) a5;
|
||||
};
|
||||
|
||||
struct svr4_sys_shmsys_args {
|
||||
syscallarg(int) what;
|
||||
syscallarg(int) a2;
|
||||
syscallarg(int) a3;
|
||||
syscallarg(int) a4;
|
||||
};
|
||||
|
||||
struct svr4_sys_semsys_args {
|
||||
syscallarg(int) what;
|
||||
syscallarg(int) a2;
|
||||
syscallarg(int) a3;
|
||||
syscallarg(int) a4;
|
||||
syscallarg(int) a5;
|
||||
};
|
||||
|
||||
struct svr4_sys_ioctl_args {
|
||||
syscallarg(int) fd;
|
||||
syscallarg(u_long) com;
|
||||
syscallarg(caddr_t) data;
|
||||
};
|
||||
|
||||
struct irix_sys_sysmp_args {
|
||||
syscallarg(int) cmd;
|
||||
syscallarg(void *) arg1;
|
||||
|
@ -135,30 +44,6 @@ struct irix_sys_sysmp_args {
|
|||
syscallarg(void *) arg4;
|
||||
};
|
||||
|
||||
struct svr4_sys_utssys_args {
|
||||
syscallarg(void *) a1;
|
||||
syscallarg(void *) a2;
|
||||
syscallarg(int) sel;
|
||||
syscallarg(void *) a3;
|
||||
};
|
||||
|
||||
struct svr4_sys_execve_args {
|
||||
syscallarg(const char *) path;
|
||||
syscallarg(char **) argp;
|
||||
syscallarg(char **) envp;
|
||||
};
|
||||
|
||||
struct svr4_sys_fcntl_args {
|
||||
syscallarg(int) fd;
|
||||
syscallarg(int) cmd;
|
||||
syscallarg(char *) arg;
|
||||
};
|
||||
|
||||
struct svr4_sys_ulimit_args {
|
||||
syscallarg(int) cmd;
|
||||
syscallarg(long) newlimit;
|
||||
};
|
||||
|
||||
struct irix_sys_lseek64_args {
|
||||
syscallarg(int) fd;
|
||||
syscallarg(int) pad1;
|
||||
|
@ -179,46 +64,19 @@ struct irix_sys_sginap_args {
|
|||
syscallarg(long) ticks;
|
||||
};
|
||||
|
||||
struct svr4_sys_getmsg_args {
|
||||
syscallarg(int) fd;
|
||||
syscallarg(struct svr4_strbuf *) ctl;
|
||||
syscallarg(struct svr4_strbuf *) dat;
|
||||
syscallarg(int *) flags;
|
||||
};
|
||||
|
||||
struct svr4_sys_putmsg_args {
|
||||
syscallarg(int) fd;
|
||||
syscallarg(struct svr4_strbuf *) ctl;
|
||||
syscallarg(struct svr4_strbuf *) dat;
|
||||
syscallarg(int) flags;
|
||||
};
|
||||
|
||||
struct irix_sys_sigreturn_args {
|
||||
syscallarg(struct irix_sigreturna) isr;
|
||||
};
|
||||
|
||||
struct svr4_sys_socket_args {
|
||||
syscallarg(int) domain;
|
||||
syscallarg(int) type;
|
||||
syscallarg(int) protocol;
|
||||
};
|
||||
|
||||
struct svr4_sys_gettimeofday_args {
|
||||
syscallarg(struct timeval *) tp;
|
||||
};
|
||||
|
||||
struct irix_sys_prctl_args {
|
||||
syscallarg(unsigned int) option;
|
||||
syscallarg(void *) arg1;
|
||||
};
|
||||
|
||||
struct svr4_sys_mmap_args {
|
||||
syscallarg(void *) addr;
|
||||
syscallarg(svr4_size_t) len;
|
||||
syscallarg(int) prot;
|
||||
syscallarg(int) flags;
|
||||
syscallarg(int) fd;
|
||||
syscallarg(svr4_off_t) pos;
|
||||
struct irix_sys_systeminfo_args {
|
||||
syscallarg(int) what;
|
||||
syscallarg(char *) buf;
|
||||
syscallarg(long) len;
|
||||
};
|
||||
|
||||
struct irix_sys_xstat_args {
|
||||
|
@ -239,27 +97,6 @@ struct irix_sys_fxstat_args {
|
|||
syscallarg(struct stat *) buf;
|
||||
};
|
||||
|
||||
struct svr4_sys_sigaction_args {
|
||||
syscallarg(int) signum;
|
||||
syscallarg(const struct svr4_sigaction *) nsa;
|
||||
syscallarg(struct svr4_sigaction *) osa;
|
||||
};
|
||||
|
||||
struct svr4_sys_sigpending_args {
|
||||
syscallarg(int) what;
|
||||
syscallarg(svr4_sigset_t *) set;
|
||||
};
|
||||
|
||||
struct svr4_sys_sigprocmask_args {
|
||||
syscallarg(int) how;
|
||||
syscallarg(const svr4_sigset_t *) set;
|
||||
syscallarg(svr4_sigset_t *) oset;
|
||||
};
|
||||
|
||||
struct svr4_sys_sigsuspend_args {
|
||||
syscallarg(const svr4_sigset_t *) set;
|
||||
};
|
||||
|
||||
struct irix_sys_getcontext_args {
|
||||
syscallarg(irix_ucontext_t *) ucp;
|
||||
};
|
||||
|
@ -399,6 +236,7 @@ int sys_adjtime(struct proc *, void *, register_t *);
|
|||
int svr4_sys_gettimeofday(struct proc *, void *, register_t *);
|
||||
int irix_sys_prctl(struct proc *, void *, register_t *);
|
||||
int svr4_sys_mmap(struct proc *, void *, register_t *);
|
||||
int irix_sys_systeminfo(struct proc *, void *, register_t *);
|
||||
int irix_sys_xstat(struct proc *, void *, register_t *);
|
||||
int irix_sys_lxstat(struct proc *, void *, register_t *);
|
||||
int irix_sys_fxstat(struct proc *, void *, register_t *);
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
/* $NetBSD: irix_syscalls.c,v 1.22 2002/02/17 20:50:07 manu Exp $ */
|
||||
/* $NetBSD: irix_syscalls.c,v 1.23 2002/02/17 22:49:54 manu Exp $ */
|
||||
|
||||
/*
|
||||
* System call names.
|
||||
*
|
||||
* DO NOT EDIT-- this file is automatically generated.
|
||||
* created from NetBSD: syscalls.master,v 1.20 2002/02/04 20:26:34 manu Exp
|
||||
* created from NetBSD: syscalls.master,v 1.21 2002/02/17 20:50:07 manu Exp
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: irix_syscalls.c,v 1.22 2002/02/17 20:50:07 manu Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: irix_syscalls.c,v 1.23 2002/02/17 22:49:54 manu Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#if defined(_KERNEL_OPT)
|
||||
|
@ -24,6 +24,10 @@ __KERNEL_RCSID(0, "$NetBSD: irix_syscalls.c,v 1.22 2002/02/17 20:50:07 manu Exp
|
|||
#include <sys/ioctl_compat.h>
|
||||
#include <sys/syscallargs.h>
|
||||
#include <compat/svr4/svr4_types.h>
|
||||
#include <compat/svr4/svr4_signal.h>
|
||||
#include <compat/svr4/svr4_ucontext.h>
|
||||
#include <compat/svr4/svr4_lwp.h>
|
||||
#include <compat/svr4/svr4_syscallargs.h>
|
||||
#include <compat/irix/irix_types.h>
|
||||
#include <compat/irix/irix_signal.h>
|
||||
#include <compat/irix/irix_syscallargs.h>
|
||||
|
@ -198,7 +202,7 @@ const char *const irix_syscallnames[] = {
|
|||
"#153 (unimplemented fchmod)", /* 153 = unimplemented fchmod */
|
||||
"#154 (unimplemented wait3)", /* 154 = unimplemented wait3 */
|
||||
"#155 (unimplemented socketpair)", /* 155 = unimplemented socketpair */
|
||||
"#156 (unimplemented systeminfo)", /* 156 = unimplemented systeminfo */
|
||||
"systeminfo", /* 156 = systeminfo */
|
||||
"#157 (unimplemented uname)", /* 157 = unimplemented uname */
|
||||
"xstat", /* 158 = xstat */
|
||||
"lxstat", /* 159 = lxstat */
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
/* $NetBSD: irix_sysent.c,v 1.22 2002/02/17 20:50:07 manu Exp $ */
|
||||
/* $NetBSD: irix_sysent.c,v 1.23 2002/02/17 22:49:55 manu Exp $ */
|
||||
|
||||
/*
|
||||
* System call switch table.
|
||||
*
|
||||
* DO NOT EDIT-- this file is automatically generated.
|
||||
* created from NetBSD: syscalls.master,v 1.20 2002/02/04 20:26:34 manu Exp
|
||||
* created from NetBSD: syscalls.master,v 1.21 2002/02/17 20:50:07 manu Exp
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: irix_sysent.c,v 1.22 2002/02/17 20:50:07 manu Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: irix_sysent.c,v 1.23 2002/02/17 22:49:55 manu Exp $");
|
||||
|
||||
#if defined(_KERNEL_OPT)
|
||||
#include "opt_ntp.h"
|
||||
|
@ -23,6 +23,10 @@ __KERNEL_RCSID(0, "$NetBSD: irix_sysent.c,v 1.22 2002/02/17 20:50:07 manu Exp $"
|
|||
#include <sys/ioctl_compat.h>
|
||||
#include <sys/syscallargs.h>
|
||||
#include <compat/svr4/svr4_types.h>
|
||||
#include <compat/svr4/svr4_signal.h>
|
||||
#include <compat/svr4/svr4_ucontext.h>
|
||||
#include <compat/svr4/svr4_lwp.h>
|
||||
#include <compat/svr4/svr4_syscallargs.h>
|
||||
#include <compat/irix/irix_types.h>
|
||||
#include <compat/irix/irix_signal.h>
|
||||
#include <compat/irix/irix_syscallargs.h>
|
||||
|
@ -357,8 +361,8 @@ struct sysent irix_sysent[] = {
|
|||
sys_nosys }, /* 154 = unimplemented wait3 */
|
||||
{ 0, 0, 0,
|
||||
sys_nosys }, /* 155 = unimplemented socketpair */
|
||||
{ 0, 0, 0,
|
||||
sys_nosys }, /* 156 = unimplemented systeminfo */
|
||||
{ 3, s(struct irix_sys_systeminfo_args), 0,
|
||||
irix_sys_systeminfo }, /* 156 = systeminfo */
|
||||
{ 0, 0, 0,
|
||||
sys_nosys }, /* 157 = unimplemented uname */
|
||||
{ 3, s(struct irix_sys_xstat_args), 0,
|
||||
|
|
|
@ -0,0 +1,171 @@
|
|||
/* $NetBSD: irix_systeminfo.c,v 1.1 2002/02/17 22:49:55 manu Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2002 The NetBSD Foundation, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to The NetBSD Foundation
|
||||
* by Emmanuel Dreyfus.
|
||||
*
|
||||
* 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. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the NetBSD
|
||||
* Foundation, Inc. and its contributors.
|
||||
* 4. Neither the name of The NetBSD Foundation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
||||
* ``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 FOUNDATION OR CONTRIBUTORS
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: irix_systeminfo.c,v 1.1 2002/02/17 22:49:55 manu Exp $");
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/signal.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/systm.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/syscallargs.h>
|
||||
|
||||
#include <compat/svr4/svr4_systeminfo.h>
|
||||
#include <compat/svr4/svr4_types.h>
|
||||
#include <compat/svr4/svr4_signal.h>
|
||||
#include <compat/svr4/svr4_ucontext.h>
|
||||
#include <compat/svr4/svr4_lwp.h>
|
||||
#include <compat/svr4/svr4_syscallargs.h>
|
||||
|
||||
#include <compat/irix/irix_types.h>
|
||||
#include <compat/irix/irix_signal.h>
|
||||
#include <compat/irix/irix_syscallargs.h>
|
||||
|
||||
const char irix_si_vendor[] = "Silicon Graphics, Inc.";
|
||||
const char irix_si_os_provider[] = "Silicon Graphics, Inc.";
|
||||
const char irix_si_os_name[] = "IRIX";
|
||||
const char irix_si_hw_name[] = "IP22"; /* XXX */
|
||||
const char irix_si_osrel_maj[] = "6";
|
||||
const char irix_si_osrel_min[] = "5";
|
||||
const char irix_si_osrel_patch[] = "0";
|
||||
const char irix_si_processors[] = "R5000 1.0"; /* XXX */
|
||||
|
||||
#define BUF_SIZE 16
|
||||
|
||||
int
|
||||
irix_sys_systeminfo(p, v, retval)
|
||||
struct proc *p;
|
||||
void *v;
|
||||
register_t *retval;
|
||||
{
|
||||
struct irix_sys_systeminfo_args /* {
|
||||
syscallarg(int) what;
|
||||
syscallarg(char *) buf;
|
||||
syscallarg(long) len;
|
||||
} */ *uap = v;
|
||||
const char *str = NULL;
|
||||
char strbuf[BUF_SIZE + 1];
|
||||
int error;
|
||||
size_t len;
|
||||
char buf[256];
|
||||
|
||||
u_int rlen = SCARG(uap, len);
|
||||
|
||||
switch (SCARG(uap, what)) {
|
||||
case SVR4_MIPS_SI_VENDOR:
|
||||
str = irix_si_vendor;
|
||||
break;
|
||||
|
||||
case SVR4_MIPS_SI_OS_PROVIDER:
|
||||
str = irix_si_os_provider;
|
||||
break;
|
||||
|
||||
case SVR4_MIPS_SI_OS_NAME:
|
||||
str = irix_si_os_name;
|
||||
break;
|
||||
|
||||
case SVR4_MIPS_SI_HW_NAME:
|
||||
str = irix_si_hw_name;
|
||||
break;
|
||||
|
||||
case SVR4_MIPS_SI_OSREL_MAJ:
|
||||
str = irix_si_osrel_maj;
|
||||
break;
|
||||
|
||||
case SVR4_MIPS_SI_OSREL_MIN:
|
||||
str = irix_si_osrel_min;
|
||||
break;
|
||||
|
||||
case SVR4_MIPS_SI_OSREL_PATCH:
|
||||
str = irix_si_osrel_patch;
|
||||
break;
|
||||
|
||||
case SVR4_MIPS_SI_PROCESSORS:
|
||||
str = irix_si_processors;
|
||||
break;
|
||||
|
||||
case SVR4_MIPS_SI_NUM_PROCESSORS:
|
||||
case SVR4_MIPS_SI_AVAIL_PROCESSORS: {
|
||||
int ncpu;
|
||||
int name = HW_NCPU;
|
||||
int namelen = sizeof(name);
|
||||
|
||||
error = hw_sysctl(&name, 1, &ncpu, &namelen, NULL, 0, p);
|
||||
if (!error) {
|
||||
snprintf(strbuf, BUF_SIZE, "%d", ncpu);
|
||||
str = strbuf;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case SVR4_MIPS_SI_HOSTID: /* Unimplemented yet */
|
||||
case SVR4_MIPS_SI_SERIAL: /* Unimplemented yet */
|
||||
default:
|
||||
return svr4_sys_systeminfo(p, v, retval);
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* This duplicates some code in
|
||||
* svr4_sys_systeminfo().
|
||||
* Ideally, it should be merged.
|
||||
*/
|
||||
if (str) {
|
||||
len = strlen(str) + 1;
|
||||
if (len > rlen)
|
||||
len = rlen;
|
||||
|
||||
if (SCARG(uap, buf)) {
|
||||
error = copyout(str, SCARG(uap, buf), len);
|
||||
if (error)
|
||||
return error;
|
||||
/* make sure we are NULL terminated */
|
||||
buf[0] = '\0';
|
||||
error = copyout(buf, &(SCARG(uap, buf)[len - 1]), 1);
|
||||
}
|
||||
else
|
||||
error = 0;
|
||||
}
|
||||
|
||||
*retval = len;
|
||||
return error;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
$NetBSD: syscalls.master,v 1.21 2002/02/17 20:50:07 manu Exp $
|
||||
$NetBSD: syscalls.master,v 1.22 2002/02/17 22:49:55 manu Exp $
|
||||
|
||||
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
|
||||
|
||||
|
@ -46,6 +46,10 @@
|
|||
#include <sys/syscallargs.h>
|
||||
|
||||
#include <compat/svr4/svr4_types.h>
|
||||
#include <compat/svr4/svr4_signal.h>
|
||||
#include <compat/svr4/svr4_ucontext.h>
|
||||
#include <compat/svr4/svr4_lwp.h>
|
||||
#include <compat/svr4/svr4_syscallargs.h>
|
||||
|
||||
#include <compat/irix/irix_types.h>
|
||||
#include <compat/irix/irix_signal.h>
|
||||
|
@ -58,21 +62,21 @@
|
|||
2 NOARGS { int sys_fork(void); }
|
||||
3 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); }
|
||||
4 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); }
|
||||
5 STD { int svr4_sys_open(const char *path, int flags, \
|
||||
5 NOARGS { int svr4_sys_open(const char *path, int flags, \
|
||||
int mode); }
|
||||
6 NOARGS { int sys_close(int fd); }
|
||||
7 OBSOL wait
|
||||
8 STD { int svr4_sys_creat(const char *path, int mode); }
|
||||
8 NOARGS { int svr4_sys_creat(const char *path, int mode); }
|
||||
9 NOARGS { int sys_link(char *path, char *link); }
|
||||
10 NOARGS { int sys_unlink(char *path); }
|
||||
11 STD { int svr4_sys_execv(const char *path, char **argp); }
|
||||
11 NOARGS { int svr4_sys_execv(const char *path, char **argp); }
|
||||
12 NOARGS { int sys_chdir(char *path); }
|
||||
13 STD { int svr4_sys_time(svr4_time_t *t); }
|
||||
13 NOARGS { int svr4_sys_time(svr4_time_t *t); }
|
||||
14 OBSOL mknod
|
||||
15 NOARGS { int sys_chmod(char *path, int mode); }
|
||||
16 NOARGS { int sys___posix_chown(char *path, int uid, \
|
||||
int gid); } chown
|
||||
17 STD { int svr4_sys_break(caddr_t nsize); }
|
||||
17 NOARGS { int svr4_sys_break(caddr_t nsize); }
|
||||
18 OBSOL stat
|
||||
19 NOARGS { long compat_43_sys_lseek(int fd, long offset, \
|
||||
int whence); }
|
||||
|
@ -83,32 +87,32 @@
|
|||
24 NOARGS { uid_t sys_getuid_with_euid(void); }
|
||||
25 UNIMPL stime
|
||||
26 UNIMPL ptrace
|
||||
27 STD { int svr4_sys_alarm(unsigned sec); }
|
||||
28 STD { int svr4_sys_fstat(int fd, struct svr4_stat *sb); }
|
||||
29 STD { int svr4_sys_pause(void); }
|
||||
30 STD { int svr4_sys_utime(const char *path, \
|
||||
27 NOARGS { int svr4_sys_alarm(unsigned sec); }
|
||||
28 NOARGS { int svr4_sys_fstat(int fd, struct svr4_stat *sb); }
|
||||
29 NOARGS { int svr4_sys_pause(void); }
|
||||
30 NOARGS { int svr4_sys_utime(const char *path, \
|
||||
struct svr4_utimbuf *ubuf); }
|
||||
31 UNIMPL was stty
|
||||
32 UNIMPL was gtty
|
||||
33 STD { int svr4_sys_access(const char *path, int flags); }
|
||||
34 STD { int svr4_sys_nice(int prio); }
|
||||
33 NOARGS { int svr4_sys_access(const char *path, int flags); }
|
||||
34 NOARGS { int svr4_sys_nice(int prio); }
|
||||
35 UNIMPL statfs
|
||||
36 NOARGS { int sys_sync(void); }
|
||||
37 STD { int svr4_sys_kill(int pid, int signum); }
|
||||
37 NOARGS { int svr4_sys_kill(int pid, int signum); }
|
||||
38 UNIMPL fstatfs
|
||||
39 STD { int svr4_sys_pgrpsys(int cmd, int pid, int pgid); }
|
||||
39 NOARGS { int svr4_sys_pgrpsys(int cmd, int pid, int pgid); }
|
||||
40 STD { ptrdiff_t irix_sys_syssgi(int request, void *arg1, \
|
||||
void *arg2, void *arg3, void *arg4, void *arg5); }
|
||||
41 NOARGS { int sys_dup(u_int fd); }
|
||||
42 NOARGS { int sys_pipe(void); }
|
||||
43 STD { int svr4_sys_times(struct tms *tp); }
|
||||
43 NOARGS { int svr4_sys_times(struct tms *tp); }
|
||||
44 UNIMPL profil
|
||||
45 UNIMPL plock
|
||||
46 NOARGS { int sys_setgid(gid_t gid); }
|
||||
47 NOARGS { gid_t sys_getgid_with_egid(void); }
|
||||
48 OBSOL ssig
|
||||
#ifdef SYSVMSG
|
||||
49 STD { int svr4_sys_msgsys(int what, int a2, int a3, \
|
||||
49 NOARGS { int svr4_sys_msgsys(int what, int a2, int a3, \
|
||||
int a4, int a5); }
|
||||
#else
|
||||
49 UNIMPL msgsys
|
||||
|
@ -116,31 +120,31 @@
|
|||
50 UNIMPL sysmips
|
||||
51 UNIMPL acct
|
||||
#ifdef SYSVSHM
|
||||
52 STD { int svr4_sys_shmsys(int what, int a2, int a3, \
|
||||
52 NOARGS { int svr4_sys_shmsys(int what, int a2, int a3, \
|
||||
int a4); }
|
||||
#else
|
||||
52 UNIMPL shmsys
|
||||
#endif
|
||||
#ifdef SYSVSEM
|
||||
53 STD { int svr4_sys_semsys(int what, int a2, int a3, \
|
||||
53 NOARGS { int svr4_sys_semsys(int what, int a2, int a3, \
|
||||
int a4, int a5); }
|
||||
#else
|
||||
53 UNIMPL semsys
|
||||
#endif
|
||||
54 STD { int svr4_sys_ioctl(int fd, u_long com, \
|
||||
54 NOARGS { int svr4_sys_ioctl(int fd, u_long com, \
|
||||
caddr_t data); }
|
||||
55 UNIMPL uadmin
|
||||
56 STD { int irix_sys_sysmp(int cmd, void *arg1, void *arg2, \
|
||||
void *arg3, void *arg4); }
|
||||
57 STD { int svr4_sys_utssys(void *a1, void *a2, int sel, \
|
||||
57 NOARGS { int svr4_sys_utssys(void *a1, void *a2, int sel, \
|
||||
void *a3); }
|
||||
58 UNIMPL
|
||||
59 STD { int svr4_sys_execve(const char *path, char **argp, \
|
||||
59 NOARGS { int svr4_sys_execve(const char *path, char **argp, \
|
||||
char **envp); }
|
||||
60 NOARGS { int sys_umask(int newmask); }
|
||||
61 NOARGS { int sys_chroot(char *path); }
|
||||
62 STD { int svr4_sys_fcntl(int fd, int cmd, char *arg); }
|
||||
63 STD { long svr4_sys_ulimit(int cmd, long newlimit); }
|
||||
62 NOARGS { int svr4_sys_fcntl(int fd, int cmd, char *arg); }
|
||||
63 NOARGS { long svr4_sys_ulimit(int cmd, long newlimit); }
|
||||
64 UNIMPL reserved for unix/pc
|
||||
65 UNIMPL reserved for unix/pc
|
||||
66 UNIMPL reserved for unix/pc
|
||||
|
@ -165,9 +169,9 @@
|
|||
82 STD { long irix_sys_sginap (long ticks); }
|
||||
83 UNIMPL sgikopt
|
||||
84 UNIMPL sysfs
|
||||
85 STD { int svr4_sys_getmsg(int fd, struct svr4_strbuf *ctl, \
|
||||
85 NOARGS { int svr4_sys_getmsg(int fd, struct svr4_strbuf *ctl, \
|
||||
struct svr4_strbuf *dat, int *flags); }
|
||||
86 STD { int svr4_sys_putmsg(int fd, struct svr4_strbuf *ctl, \
|
||||
86 NOARGS { int svr4_sys_putmsg(int fd, struct svr4_strbuf *ctl, \
|
||||
struct svr4_strbuf *dat, int flags); }
|
||||
87 NOARGS { int sys_poll(struct pollfd *fds, u_int nfds, \
|
||||
int timeout); }
|
||||
|
@ -206,7 +210,7 @@
|
|||
105 NOARGS { int sys_setsockopt(int s, int level, int name, \
|
||||
const void *val, int valsize); }
|
||||
106 NOARGS { int sys_shutdown(int s, int how); }
|
||||
107 STD { int svr4_sys_socket(int domain, int type, \
|
||||
107 NOARGS { int svr4_sys_socket(int domain, int type, \
|
||||
int protocol); }
|
||||
108 NOARGS { int compat_43_sys_gethostname(char *hostname, \
|
||||
u_int len); }
|
||||
|
@ -237,14 +241,14 @@
|
|||
struct itimerval *itv, struct itimerval *oitv); }
|
||||
127 NOARGS { int sys_adjtime(struct timeval *delta, \
|
||||
struct timeval *olddelta); }
|
||||
128 STD { int svr4_sys_gettimeofday(struct timeval *tp); }
|
||||
128 NOARGS { int svr4_sys_gettimeofday(struct timeval *tp); }
|
||||
129 UNIMPL sproc
|
||||
130 STD { ptrdiff_t irix_sys_prctl(unsigned int option, \
|
||||
void *arg1); }
|
||||
131 UNIMPL procblk
|
||||
132 UNIMPL sprocsp
|
||||
133 UNIMPL sgigsc
|
||||
134 STD { void *svr4_sys_mmap(void *addr, svr4_size_t len, \
|
||||
134 NOARGS { void *svr4_sys_mmap(void *addr, svr4_size_t len, \
|
||||
int prot, int flags, int fd, svr4_off_t pos); }
|
||||
135 UNIMPL munmap
|
||||
136 UNIMPL mprotect
|
||||
|
@ -267,7 +271,8 @@
|
|||
153 UNIMPL fchmod
|
||||
154 UNIMPL wait3
|
||||
155 UNIMPL socketpair
|
||||
156 UNIMPL systeminfo
|
||||
156 STD { long irix_sys_systeminfo(int what, char *buf, \
|
||||
long len); }
|
||||
157 UNIMPL uname
|
||||
158 STD { int irix_sys_xstat(const int version, \
|
||||
const char *path, struct stat *buf); }
|
||||
|
@ -276,15 +281,15 @@
|
|||
160 STD { int irix_sys_fxstat(const int version, \
|
||||
const int fd, struct stat *buf); }
|
||||
161 UNIMPL xmknod
|
||||
162 STD { int svr4_sys_sigaction(int signum, \
|
||||
162 NOARGS { int svr4_sys_sigaction(int signum, \
|
||||
const struct svr4_sigaction *nsa, \
|
||||
struct svr4_sigaction *osa); }
|
||||
163 STD { int svr4_sys_sigpending(int what, \
|
||||
163 NOARGS { int svr4_sys_sigpending(int what, \
|
||||
svr4_sigset_t *set); }
|
||||
164 STD { int svr4_sys_sigprocmask(int how, \
|
||||
164 NOARGS { int svr4_sys_sigprocmask(int how, \
|
||||
const svr4_sigset_t *set, \
|
||||
svr4_sigset_t *oset); }
|
||||
165 STD { int svr4_sys_sigsuspend( \
|
||||
165 NOARGS { int svr4_sys_sigsuspend( \
|
||||
const svr4_sigset_t *set); }
|
||||
166 UNIMPL sigpoll_sys
|
||||
167 UNIMPL swapctl
|
||||
|
|
Loading…
Reference in New Issue