Module Name:    src
Committed By:   riastradh
Date:           Thu Jul  3 20:48:19 UTC 2014

Modified Files:
        src/sys/external/bsd/common/include/linux: completion.h errno.h list.h

Log Message:
Add some notes on using these shims to port Linux kernel code.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
    src/sys/external/bsd/common/include/linux/completion.h
cvs rdiff -u -r1.1 -r1.2 src/sys/external/bsd/common/include/linux/errno.h \
    src/sys/external/bsd/common/include/linux/list.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/external/bsd/common/include/linux/completion.h
diff -u src/sys/external/bsd/common/include/linux/completion.h:1.3 src/sys/external/bsd/common/include/linux/completion.h:1.4
--- src/sys/external/bsd/common/include/linux/completion.h:1.3	Mon May  5 15:59:11 2014
+++ src/sys/external/bsd/common/include/linux/completion.h	Thu Jul  3 20:48:19 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: completion.h,v 1.3 2014/05/05 15:59:11 skrll Exp $	*/
+/*	$NetBSD: completion.h,v 1.4 2014/07/03 20:48:19 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -29,6 +29,20 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * Notes on porting:
+ *
+ * - Linux does not have destroy_completion.  You must add it yourself
+ *   in the appropriate place.
+ *
+ * - Some Linux code does `completion->done++' or similar.  Convert
+ *   that to complete(completion) and suggest the same change upstream,
+ *   unless it turns out there actually is a good reason to do that, in
+ *   which case the Linux completion API should be extended with a
+ *   sensible name for this that doesn't expose the guts of `struct
+ *   completion'.
+ */
+
 #ifndef _LINUX_COMPLETION_H_
 #define _LINUX_COMPLETION_H_
 

Index: src/sys/external/bsd/common/include/linux/errno.h
diff -u src/sys/external/bsd/common/include/linux/errno.h:1.1 src/sys/external/bsd/common/include/linux/errno.h:1.2
--- src/sys/external/bsd/common/include/linux/errno.h:1.1	Mon Apr  7 11:55:29 2014
+++ src/sys/external/bsd/common/include/linux/errno.h	Thu Jul  3 20:48:19 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: errno.h,v 1.1 2014/04/07 11:55:29 riastradh Exp $	*/
+/*	$NetBSD: errno.h,v 1.2 2014/07/03 20:48:19 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -29,6 +29,15 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * Notes on porting:
+ *
+ * - Linux consistently passes around negative errno values.  NetBSD
+ *   consistently passes around positive ones, except the special magic
+ *   in-kernel ones (EJUSTRETURN, ERESTART, &c.) which should not be
+ *   exposed to userland.  Be careful!
+ */
+
 #ifndef _LINUX_ERRNO_H_
 #define _LINUX_ERRNO_H_
 
Index: src/sys/external/bsd/common/include/linux/list.h
diff -u src/sys/external/bsd/common/include/linux/list.h:1.1 src/sys/external/bsd/common/include/linux/list.h:1.2
--- src/sys/external/bsd/common/include/linux/list.h:1.1	Thu Sep  5 15:28:07 2013
+++ src/sys/external/bsd/common/include/linux/list.h	Thu Jul  3 20:48:19 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: list.h,v 1.1 2013/09/05 15:28:07 skrll Exp $	*/
+/*	$NetBSD: list.h,v 1.2 2014/07/03 20:48:19 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -29,6 +29,18 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
+/*
+ * Notes on porting:
+ *
+ * - LIST_HEAD(x) means a declaration `struct list_head x =
+ *   LIST_HEAD_INIT(x)' in Linux, but something else in NetBSD.
+ *   Replace by the expansion.
+ *
+ * - The `_rcu' routines here are not actually pserialize(9)-safe.
+ *   They need dependent read memory barriers added.  Please fix this
+ *   if you need to use them with pserialize(9).
+ */
+
 #ifndef _LINUX_LIST_H_
 #define _LINUX_LIST_H_
 

Reply via email to