Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/compat/sunos32 use struct sunos32_dirent. now getwd() w...
details: https://anonhg.NetBSD.org/src/rev/d21c34a7f83c
branches: trunk
changeset: 503449:d21c34a7f83c
user: mrg <mrg%NetBSD.org@localhost>
date: Tue Feb 06 13:13:42 2001 +0000
description:
use struct sunos32_dirent. now getwd() works.
diffstat:
sys/compat/sunos32/sunos32_dirent.h | 55 +++++++++++++++++++++++++++++++++++++
sys/compat/sunos32/sunos32_misc.c | 14 ++++----
2 files changed, 62 insertions(+), 7 deletions(-)
diffs (122 lines):
diff -r c4be11e26938 -r d21c34a7f83c sys/compat/sunos32/sunos32_dirent.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/compat/sunos32/sunos32_dirent.h Tue Feb 06 13:13:42 2001 +0000
@@ -0,0 +1,55 @@
+/* $NetBSD: sunos32_dirent.h,v 1.1 2001/02/06 13:13:42 mrg Exp $ */
+
+/*-
+ * Copyright (c) 1994 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Christos Zoulas.
+ *
+ * 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 _SUNOS32_DIRENT_H_
+#define _SUNOS32_DIRENT_H_
+
+#define SUNOS32_MAXNAMLEN 255
+
+struct sunos32_dirent {
+ netbsd32_long d_off;
+ netbsd32_u_long d_fileno;
+ u_short d_reclen;
+ u_short d_namlen;
+ char d_name[SUNOS32_MAXNAMLEN + 1];
+};
+
+#define SUNOS32_NAMEOFF(dp) ((char *)&(dp)->d_name - (char *)dp)
+#define SUNOS32_RECLEN(de,namlen) ALIGN((SUNOS32_NAMEOFF(de) + (namlen) + 1))
+
+#endif /* !_SUNOS32_DIRENT_H_ */
diff -r c4be11e26938 -r d21c34a7f83c sys/compat/sunos32/sunos32_misc.c
--- a/sys/compat/sunos32/sunos32_misc.c Tue Feb 06 13:10:03 2001 +0000
+++ b/sys/compat/sunos32/sunos32_misc.c Tue Feb 06 13:13:42 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: sunos32_misc.c,v 1.5 2001/02/06 10:32:34 mrg Exp $ */
+/* $NetBSD: sunos32_misc.c,v 1.6 2001/02/06 13:13:44 mrg Exp $ */
/* from :NetBSD: sunos_misc.c,v 1.107 2000/12/01 19:25:10 jdolecek Exp */
/*
@@ -127,9 +127,9 @@
#include <compat/netbsd32/netbsd32.h>
#include <compat/netbsd32/netbsd32_syscallargs.h>
#include <compat/sunos32/sunos32.h>
+#include <compat/sunos32/sunos32_dirent.h>
#include <compat/sunos32/sunos32_syscallargs.h>
#include <compat/common/compat_util.h>
-#include <compat/sunos/sunos_dirent.h>
#include <netinet/in.h>
@@ -698,7 +698,7 @@
struct file *fp;
struct uio auio;
struct iovec aiov;
- struct sunos_dirent idb;
+ struct sunos32_dirent idb;
off_t off; /* true file offset */
int buflen, error, eofflag;
off_t *cookiebuf, *cookie;
@@ -763,7 +763,7 @@
off = *cookie++;
continue;
}
- sunos_reclen = SUNOS_RECLEN(&idb, bdp->d_namlen);
+ sunos_reclen = SUNOS32_RECLEN(&idb, bdp->d_namlen);
if (reclen > len || resid < sunos_reclen) {
/* entry too big for buffer, so just stop */
outp++;
@@ -805,7 +805,7 @@
return (error);
}
-#define SUNOS__MAP_NEW 0x80000000 /* if not, old mmap & cannot handle */
+#define SUNOS32__MAP_NEW 0x80000000 /* if not, old mmap & cannot handle */
int
sunos32_sys_mmap(p, v, retval)
@@ -834,13 +834,13 @@
if (SCARG(uap, prot) & ~(PROT_READ|PROT_WRITE|PROT_EXEC))
return (EINVAL); /* XXX still needed? */
- if ((SCARG(uap, flags) & SUNOS__MAP_NEW) == 0)
+ if ((SCARG(uap, flags) & SUNOS32__MAP_NEW) == 0)
return (EINVAL);
SUNOS32TOP_UAP(addr, void);
SUNOS32TOX_UAP(len, size_t);
SUNOS32TO64_UAP(prot);
- SCARG(&ua, flags) = SCARG(uap, flags) & ~SUNOS__MAP_NEW;
+ SCARG(&ua, flags) = SCARG(uap, flags) & ~SUNOS32__MAP_NEW;
SUNOS32TO64_UAP(fd);
SCARG(&ua, pad) = 0;
SUNOS32TOX_UAP(pos, off_t);
Home |
Main Index |
Thread Index |
Old Index