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