Module Name:    src
Committed By:   pgoyette
Date:           Sat Mar 24 08:24:40 UTC 2018

Modified Files:
        src/sys/compat/common [pgoyette-compat]: Makefile.sysio
        src/sys/fs/puffs [pgoyette-compat]: files.puffs puffs_compat.c
            puffs_msgif.c puffs_sys.h
        src/sys/kern [pgoyette-compat]: compat_stub.c
        src/sys/modules/compat_50 [pgoyette-compat]: Makefile
        src/sys/sys [pgoyette-compat]: compat_stub.h

Log Message:
Add fs/puffs compat_50 to the modules


To generate a diff of this commit:
cvs rdiff -u -r1.7.18.10 -r1.7.18.11 src/sys/compat/common/Makefile.sysio
cvs rdiff -u -r1.6 -r1.6.18.1 src/sys/fs/puffs/files.puffs
cvs rdiff -u -r1.4 -r1.4.16.1 src/sys/fs/puffs/puffs_compat.c
cvs rdiff -u -r1.101 -r1.101.10.1 src/sys/fs/puffs/puffs_msgif.c
cvs rdiff -u -r1.90 -r1.90.16.1 src/sys/fs/puffs/puffs_sys.h
cvs rdiff -u -r1.1.2.5 -r1.1.2.6 src/sys/kern/compat_stub.c
cvs rdiff -u -r1.1.2.5 -r1.1.2.6 src/sys/modules/compat_50/Makefile
cvs rdiff -u -r1.1.2.5 -r1.1.2.6 src/sys/sys/compat_stub.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/common/Makefile.sysio
diff -u src/sys/compat/common/Makefile.sysio:1.7.18.10 src/sys/compat/common/Makefile.sysio:1.7.18.11
--- src/sys/compat/common/Makefile.sysio:1.7.18.10	Sat Mar 24 01:59:15 2018
+++ src/sys/compat/common/Makefile.sysio	Sat Mar 24 08:24:40 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.sysio,v 1.7.18.10 2018/03/24 01:59:15 pgoyette Exp $
+#	$NetBSD: Makefile.sysio,v 1.7.18.11 2018/03/24 08:24:40 pgoyette Exp $
 
 # Sources for syscall and ioctl compatibility across the versions.
 
@@ -53,3 +53,6 @@ SRCS+=	ocryptodev.c
 SRCS+=	rf_compat50.c
 SRCS+=	rf_compat80.c
 
+# Puffs compatability code for NetBSD 5.0
+.PATH:	${S}/fs/puffs
+SRCS+=	puffs_compat.c

Index: src/sys/fs/puffs/files.puffs
diff -u src/sys/fs/puffs/files.puffs:1.6 src/sys/fs/puffs/files.puffs:1.6.18.1
--- src/sys/fs/puffs/files.puffs:1.6	Sat Oct 11 06:42:19 2014
+++ src/sys/fs/puffs/files.puffs	Sat Mar 24 08:24:40 2018
@@ -1,9 +1,9 @@
-#	$NetBSD: files.puffs,v 1.6 2014/10/11 06:42:19 uebayasi Exp $
+#	$NetBSD: files.puffs,v 1.6.18.1 2018/03/24 08:24:40 pgoyette Exp $
 
 deffs	PUFFS
 
 define	puffs: vfs
-file	fs/puffs/puffs_compat.c		puffs
+file	fs/puffs/puffs_compat.c		puffs & compat_50
 file	fs/puffs/puffs_msgif.c		puffs
 file	fs/puffs/puffs_node.c		puffs
 file	fs/puffs/puffs_subr.c		puffs

Index: src/sys/fs/puffs/puffs_compat.c
diff -u src/sys/fs/puffs/puffs_compat.c:1.4 src/sys/fs/puffs/puffs_compat.c:1.4.16.1
--- src/sys/fs/puffs/puffs_compat.c:1.4	Wed Apr 22 17:07:24 2015
+++ src/sys/fs/puffs/puffs_compat.c	Sat Mar 24 08:24:40 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: puffs_compat.c,v 1.4 2015/04/22 17:07:24 pooka Exp $	*/
+/*	$NetBSD: puffs_compat.c,v 1.4.16.1 2018/03/24 08:24:40 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 2010 Antti Kantee.  All Rights Reserved.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_compat.c,v 1.4 2015/04/22 17:07:24 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_compat.c,v 1.4.16.1 2018/03/24 08:24:40 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -44,6 +44,7 @@ __KERNEL_RCSID(0, "$NetBSD: puffs_compat
 #include <sys/proc.h>
 #include <sys/vnode.h>
 #include <sys/atomic.h>
+#include <sys/compat_stub.h>
 
 #include <dev/putter/putter_sys.h>
 
@@ -157,7 +158,6 @@ struct puffs50_vnmsg_symlink {
  * vattr translation routines
  */
 
-#ifdef COMPAT_50
 static void
 vattr_to_50(const struct vattr *va, struct vattr50 *va50)
 {
@@ -207,7 +207,6 @@ vattr_from_50(const struct vattr50 *va50
 	va->va_filerev = va50->va_filerev;
 	va->va_vaflags = va50->va_flags;
 }
-#endif /* COMPAT_50 */
 
 /*
  * XXX: cannot assert that sleeping is possible
@@ -223,12 +222,11 @@ vattr_from_50(const struct vattr50 *va50
 #define ASSIGN(field)							\
 	cmsg->field = omsg->field;
 
-bool
+int
 puffs_compat_outgoing(struct puffs_req *oreq,
 	struct puffs_req **creqp, ssize_t *deltap)
 {
-	bool rv = false;
-#ifdef COMPAT_50
+	int rv = ENOSYS;	/* non-zero return ==> false */
 	struct puffs_req *creq = NULL;
 	ssize_t delta = 0;
 
@@ -331,9 +329,8 @@ puffs_compat_outgoing(struct puffs_req *
 	if (creq) {
 		*creqp = creq;
 		*deltap = delta;
-		rv = true;
+		rv = 0;
 	}
-#endif
 
 	return rv;
 }
@@ -350,7 +347,6 @@ void
 puffs_compat_incoming(struct puffs_req *preq, struct puffs_req *creq)
 {
 
-#ifdef COMPAT_50
 	if (PUFFSOP_OPCLASS(preq->preq_opclass) == PUFFSOP_VFS
 	    && preq->preq_optype == PUFFS_VFS_FHTOVP) {
 		INIT(vfsmsg_fhtonode);
@@ -438,5 +434,18 @@ puffs_compat_incoming(struct puffs_req *
 			panic("puffs compat ops come in pairs");
 		}
 	}
-#endif /* COMPAT_50 */
+}
+
+void puffs_50_init(void)
+{
+
+	puffs50_compat_outgoing = puffs_compat_outgoing;
+	puffs50_compat_incoming = puffs_compat_incoming;
+}
+
+void puffs_50_fini(void)
+{
+
+	puffs50_compat_outgoing = (void *)enosys;
+	puffs50_compat_incoming = (void *)voidop;
 }

Index: src/sys/fs/puffs/puffs_msgif.c
diff -u src/sys/fs/puffs/puffs_msgif.c:1.101 src/sys/fs/puffs/puffs_msgif.c:1.101.10.1
--- src/sys/fs/puffs/puffs_msgif.c:1.101	Mon Apr 17 08:31:01 2017
+++ src/sys/fs/puffs/puffs_msgif.c	Sat Mar 24 08:24:40 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: puffs_msgif.c,v 1.101 2017/04/17 08:31:01 hannken Exp $	*/
+/*	$NetBSD: puffs_msgif.c,v 1.101.10.1 2018/03/24 08:24:40 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006, 2007  Antti Kantee.  All Rights Reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_msgif.c,v 1.101 2017/04/17 08:31:01 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_msgif.c,v 1.101.10.1 2018/03/24 08:24:40 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -348,7 +348,8 @@ puffs_msg_enqueue(struct puffs_mount *pm
 
 #if 1
 	/* check if we do compat adjustments */
-	if (pmp->pmp_docompat && puffs_compat_outgoing(preq, &creq, &delta)) {
+	if (pmp->pmp_docompat &&
+	    puffs_compat_outgoing(preq, &creq, &delta) == 0) {
 		park->park_creq = park->park_preq;
 		park->park_creqlen = park->park_maxlen;
 

Index: src/sys/fs/puffs/puffs_sys.h
diff -u src/sys/fs/puffs/puffs_sys.h:1.90 src/sys/fs/puffs/puffs_sys.h:1.90.16.1
--- src/sys/fs/puffs/puffs_sys.h:1.90	Thu Jul  7 06:55:42 2016
+++ src/sys/fs/puffs/puffs_sys.h	Sat Mar 24 08:24:40 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: puffs_sys.h,v 1.90 2016/07/07 06:55:42 msaitoh Exp $	*/
+/*	$NetBSD: puffs_sys.h,v 1.90.16.1 2018/03/24 08:24:40 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006  Antti Kantee.  All Rights Reserved.
@@ -290,7 +290,7 @@ void	puffs_gop_markupdate(struct vnode *
 void	puffs_senderr(struct puffs_mount *, int, int, const char *,
 		      puffs_cookie_t);
 
-bool	puffs_compat_outgoing(struct puffs_req *, struct puffs_req**, ssize_t*);
+int	puffs_compat_outgoing(struct puffs_req *, struct puffs_req**, ssize_t*);
 void	puffs_compat_incoming(struct puffs_req *, struct puffs_req *);
 
 void	puffs_updatenode(struct puffs_node *, int, voff_t);
@@ -359,4 +359,11 @@ do {									\
 	var = puffs_msg_wait2(pmp, park, vp1, vp2);			\
 } while (/*CONSTCOND*/0)
 
+/*
+ * compat50 init/fini 
+ */
+
+void puffs_50_init(void);
+void puffs_50_fini(void);
+
 #endif /* _PUFFS_SYS_H_ */

Index: src/sys/kern/compat_stub.c
diff -u src/sys/kern/compat_stub.c:1.1.2.5 src/sys/kern/compat_stub.c:1.1.2.6
--- src/sys/kern/compat_stub.c:1.1.2.5	Sat Mar 24 01:59:15 2018
+++ src/sys/kern/compat_stub.c	Sat Mar 24 08:24:40 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.c,v 1.1.2.5 2018/03/24 01:59:15 pgoyette Exp $	*/
+/* $NetBSD: compat_stub.c,v 1.1.2.6 2018/03/24 08:24:40 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -79,3 +79,11 @@ int (*raidframe50_ioctl)(int, int, struc
     struct RF_Config_s **) = (void *)enosys;
 int (*raidframe80_ioctl)(int, int, struct RF_Raid_s *, int, void *,
     struct RF_Config_s **) = (void *)enosys;
+
+/*
+ * puffs compatability
+ */
+int (*puffs50_compat_outgoing)(struct puffs_req *, struct puffs_req **,
+    ssize_t *) = (void *)enosys;
+void (*puffs50_compat_incoming)(struct puffs_req *, struct puffs_req *) =
+    (void *)voidop;

Index: src/sys/modules/compat_50/Makefile
diff -u src/sys/modules/compat_50/Makefile:1.1.2.5 src/sys/modules/compat_50/Makefile:1.1.2.6
--- src/sys/modules/compat_50/Makefile:1.1.2.5	Sat Mar 24 01:59:16 2018
+++ src/sys/modules/compat_50/Makefile	Sat Mar 24 08:24:40 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.1.2.5 2018/03/24 01:59:16 pgoyette Exp $
+#	$NetBSD: Makefile,v 1.1.2.6 2018/03/24 08:24:40 pgoyette Exp $
 
 .include "../Makefile.inc"
 
@@ -22,4 +22,8 @@ SRCS+=	ocryptodev.c
 
 SRCS+=	rf_compat50.c
 
+.PATH:	${S}/fs/puffs
+
+SRCS+=	puffs_compat.c
+
 .include <bsd.kmodule.mk>

Index: src/sys/sys/compat_stub.h
diff -u src/sys/sys/compat_stub.h:1.1.2.5 src/sys/sys/compat_stub.h:1.1.2.6
--- src/sys/sys/compat_stub.h:1.1.2.5	Sat Mar 24 01:59:16 2018
+++ src/sys/sys/compat_stub.h	Sat Mar 24 08:24:40 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.h,v 1.1.2.5 2018/03/24 01:59:16 pgoyette Exp $	*/
+/* $NetBSD: compat_stub.h,v 1.1.2.6 2018/03/24 08:24:40 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -80,4 +80,14 @@ extern int (*raidframe50_ioctl)(int, int
 extern int (*raidframe80_ioctl)(int, int, struct RF_Raid_s *, int, void *,
     struct RF_Config_s **);
 
+/*
+ * puffs compatability
+ */
+
+struct puffs_req;
+
+extern int (*puffs50_compat_outgoing)(struct puffs_req *, struct puffs_req **,
+    ssize_t *);
+extern void (*puffs50_compat_incoming)(struct puffs_req *, struct puffs_req *);
+
 #endif	/* _SYS_COMPAT_STUB_H */

Reply via email to