Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/compat/irix Added the IRIX /dev/kmem emulation pseudodev...
details: https://anonhg.NetBSD.org/src/rev/ca147705ed5a
branches: trunk
changeset: 523767:ca147705ed5a
user: manu <manu%NetBSD.org@localhost>
date: Fri Mar 15 17:21:26 2002 +0000
description:
Added the IRIX /dev/kmem emulation pseudodevice driver
diffstat:
sys/compat/irix/files.irix | 3 +-
sys/compat/irix/irix_kmem.c | 126 ++++++++++++++++++++++++++++++++++++++++++++
sys/compat/irix/irix_kmem.h | 60 ++++++++++++++++++++
3 files changed, 188 insertions(+), 1 deletions(-)
diffs (211 lines):
diff -r fad17d2f7534 -r ca147705ed5a sys/compat/irix/files.irix
--- a/sys/compat/irix/files.irix Fri Mar 15 17:20:14 2002 +0000
+++ b/sys/compat/irix/files.irix Fri Mar 15 17:21:26 2002 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: files.irix,v 1.15 2002/03/03 20:12:17 manu Exp $
+# $NetBSD: files.irix,v 1.16 2002/03/15 17:21:26 manu Exp $
#
file arch/mips/mips/irix_syscall.c compat_irix
@@ -9,6 +9,7 @@
file compat/irix/irix_exec_elf32.c compat_irix & exec_elf32
file compat/irix/irix_fcntl.c compat_irix
file compat/irix/irix_ioctl.c compat_irix
+file compat/irix/irix_kmem.c compat_irix
file compat/irix/irix_mount.c compat_irix
file compat/irix/irix_prctl.c compat_irix
file compat/irix/irix_signal.c compat_irix
diff -r fad17d2f7534 -r ca147705ed5a sys/compat/irix/irix_kmem.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/compat/irix/irix_kmem.c Fri Mar 15 17:21:26 2002 +0000
@@ -0,0 +1,126 @@
+/* $NetBSD: irix_kmem.c,v 1.1 2002/03/15 17:21:26 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_kmem.c,v 1.1 2002/03/15 17:21:26 manu Exp $");
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/proc.h>
+#include <sys/errno.h>
+#include <sys/ioctl.h>
+#include <sys/device.h>
+#include <sys/vnode.h>
+
+#include <compat/irix/irix_kmem.h>
+#include <compat/irix/irix_sysmp.h>
+
+struct irix_kmem_softc {
+ struct device irix_kmem_dev;
+};
+
+void
+irix_kmemattach(parent, self, aux)
+ struct device *parent;
+ struct device *self;
+ void *aux;
+{
+ return;
+}
+
+int
+irix_kmemopen(dev, flags, fmt, p)
+ dev_t dev;
+ int flags, fmt;
+ struct proc *p;
+{
+ return 0;
+}
+
+int
+irix_kmemread(dev, uio, flag)
+ dev_t dev;
+ struct uio *uio;
+ int flag;
+{
+ void *buf = NULL;
+ off_t buflen = 0;
+ void *offset;
+ int error = 0;
+
+#ifdef DEBUG_IRIX
+ printf("irix_kmemread(): offset = 0x%08lx\n", (long)uio->uio_offset);
+ printf("irix_kmemread(): addr = %p\n", uio->uio_iov->iov_base);
+ printf("irix_kmemread(): len = 0x%08lx\n", (long)uio->uio_iov->iov_len);
+#endif
+ offset = (void *)(uint32_t)uio->uio_offset; /* XXX */
+ if (offset == &averunnable) { /* load average */
+ struct irix_loadavg iav;
+ int scale = averunnable.fscale / IRIX_LOADAVG_SCALE;
+
+ (void)memset(&iav, 0, sizeof(iav));
+ iav.ldavg[0] = averunnable.ldavg[0] / scale;
+ iav.ldavg[1] = averunnable.ldavg[1] / scale;
+ iav.ldavg[2] = averunnable.ldavg[2] / scale;
+ buf = (void *)&iav;
+ buflen = sizeof(iav);
+ }
+
+ if (buflen != 0)
+ error = uiomove(buf, buflen, uio);
+ return error;
+}
+
+int
+irix_kmemwrite(dev, uio, flag)
+ dev_t dev;
+ struct uio *uio;
+ int flag;
+{
+ return 0;
+}
+
+int
+irix_kmemclose(dev, flags, fmt, p)
+ dev_t dev;
+ int flags, fmt;
+ struct proc *p;
+{
+ return 0;
+}
+
diff -r fad17d2f7534 -r ca147705ed5a sys/compat/irix/irix_kmem.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/compat/irix/irix_kmem.h Fri Mar 15 17:21:26 2002 +0000
@@ -0,0 +1,60 @@
+/* $NetBSD: irix_kmem.h,v 1.1 2002/03/15 17:21:26 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.
+ */
+
+#ifndef _IRIX_KMEM_H_
+#define _IRIX_KMEM_H_
+
+#include <sys/param.h>
+#include <sys/device.h>
+
+#ifdef _KERNEL
+void irix_kmemattach __P((struct device *, struct device *, void *));
+int irix_kmemopen __P((dev_t, int, int, struct proc *));
+int irix_kmemread __P((dev_t, struct uio *, int));
+int irix_kmemwrite __P((dev_t, struct uio *, int));
+int irix_kmemclose __P((dev_t, int, int, struct proc *));
+#endif
+
+/* IRIX well-known kernel structures referenced by sysmp() */
+#define IRIX_LOADAVG_SCALE 1000;
+struct irix_loadavg {
+ uint32_t ldavg[3];
+ uint32_t pad;
+};
+
+#endif /* _IRIX_KMEM_H_ */
Home |
Main Index |
Thread Index |
Old Index