summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--microkernel/mach/mig/documentation.mdwn2
-rw-r--r--microkernel/mach/mig/documentation/servercopy.mdwn23
2 files changed, 25 insertions, 0 deletions
diff --git a/microkernel/mach/mig/documentation.mdwn b/microkernel/mach/mig/documentation.mdwn
index 8afad31c..1a1955f4 100644
--- a/microkernel/mach/mig/documentation.mdwn
+++ b/microkernel/mach/mig/documentation.mdwn
@@ -73,4 +73,6 @@ pp. 67--77."
works in [Chapter 4.2.4,
Memory](http://www.gnu.org/software/hurd/gnumach-doc/Memory.html)
+ * The [[ServerCopy]] flag.
+
* MIG *in action*: [[hurd/io_path]].
diff --git a/microkernel/mach/mig/documentation/servercopy.mdwn b/microkernel/mach/mig/documentation/servercopy.mdwn
new file mode 100644
index 00000000..5ede723b
--- /dev/null
+++ b/microkernel/mach/mig/documentation/servercopy.mdwn
@@ -0,0 +1,23 @@
+[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+
+[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU_Free_Documentation_License|/fdl]]."]]"""]]
+
+For IN args. If set it...
+
+ * removes the `__mig_deallocate` for OOL IN data, which is usually done after
+ the implementation has been called;
+
+ * adds a `boolean_t NAMESCopy` for the IN arg `NAME` to indicate whether the
+ data will persist nevertheless (OOL case) or has to be copied by the
+ implementation (inline case).
+
+Cf., [[translator/exec]] server, `exec.defs`.
+
+I.e., the IN args' memory region (OOL case) persists after the implementation
+has returned.