aboutsummaryrefslogtreecommitdiff
path: root/microkernel/mach/mig
diff options
context:
space:
mode:
Diffstat (limited to 'microkernel/mach/mig')
-rw-r--r--microkernel/mach/mig/discussion.mdwn17
-rw-r--r--microkernel/mach/mig/documentation.mdwn77
-rw-r--r--microkernel/mach/mig/documentation/dealloc.mdwn15
-rw-r--r--microkernel/mach/mig/documentation/servercopy.mdwn23
-rw-r--r--microkernel/mach/mig/gnu_mig.mdwn24
-rw-r--r--microkernel/mach/mig/gnu_mig/building.mdwn (renamed from microkernel/mach/mig/building.mdwn)8
-rw-r--r--microkernel/mach/mig/logo.pngbin23622 -> 0 bytes
7 files changed, 134 insertions, 30 deletions
diff --git a/microkernel/mach/mig/discussion.mdwn b/microkernel/mach/mig/discussion.mdwn
deleted file mode 100644
index fdab3a45..00000000
--- a/microkernel/mach/mig/discussion.mdwn
+++ /dev/null
@@ -1,17 +0,0 @@
-Created
-
--- [[Main/JoachimNilsson]] - 29 Oct 2002
-
-The logo seems very programmer friendly as this web topic is intended.
-
--- [[Main/GrantBow]] - 15 Nov 2002
-
-There's little traffic here and little content. Perhaps we should just remove this web? It seemed like a good idea to create it when we split the others off...
-
--- [[Main/GrantBow]] - 22 Dec 2002
-
-Maybe, but not yet. Let's keep it for a while longer - say, three months. 1st April 2003. If the traffic still is low then we move the Mig topics to the Mach web ...
-
-...Mig = **Mach** Interface Generator.
-
--- [[Main/JoachimNilsson]] - 22 Dec 2002
diff --git a/microkernel/mach/mig/documentation.mdwn b/microkernel/mach/mig/documentation.mdwn
index 222f89d1..be762960 100644
--- a/microkernel/mach/mig/documentation.mdwn
+++ b/microkernel/mach/mig/documentation.mdwn
@@ -1,27 +1,84 @@
-[[toc ]]
+[[!meta copyright="Copyright © 2002, 2003, 2005, 2007, 2008, 2009 Free Software
+Foundation, Inc."]]
-# About
+[[!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]]."]]"""]]
+
+This is a small collection of links to external documents describing the *Mach
+Interface Generator* used by GNU Mach.
-This is a small collection of links to external documents describing the Mach Interface Generator used by GNU Mach.
# MIG and C Thread Programming
-A tutorial which demonstrates the use of the C Threads library primitives in writing a multithreaded program and the use of the Mach Interface Generator (MIG) to generate remote procedure calls for interprocess communication. Like its companion tutorial, it is based on the Mach 2.5 system. However, the concepts are applicable to Mach 3.0 user level programming.
+A tutorial which demonstrates the use of the C Threads library primitives in
+writing a multithreaded program and the use of the Mach Interface Generator
+(MIG) to generate remote procedure calls for interprocess communication. Like
+its companion tutorial, it is based on the Mach 2.5 system. However, the
+concepts are applicable to Mach 3.0 user level programming.
+
+Linda R. Walmer and Mary R. Thompson. *A Programmer's Guide to the Mach User
+Environment*. [PostScript
+](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.ps),
+[Doc](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.doc).
+February 1988. School of Computer Science, Carnegie Mellon University.
-Linda R. Walmer and Mary R. Thompson. **A Programmer's Guide to the Mach User Environment**. [PostScript ](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.ps)[Doc](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.doc) February 1988. School of Computer Science, Carnegie Mellon University.
+An ftp directory containing the [mig programming
+examples](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig_example)
+for this tutorial.
-An ftp directory containing the [mig programming examples](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig_example) for this tutorial.
+Slides to Rich Drave's talk on MIG, on November 21, 1991:
+[PostScript](http://www.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/root.ps),
+[TeX](http://www.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/slides.tex).
-Slides to Rich Drave's talk on Mig, the Mach Interface Generator, on November 21, 1991: [PostScript](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/root.ps) [TeX](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/slides.tex)
# Roots
Mig is an implementation of a subset of the Matchmaker **language**.
-"Matchmaker is a language for specifying and automating the generation of multilingual interprocess communication interfaces. MIG is an interim implementation of a subset of the Matchmaker language that generates C and C++ remote procedure call interfaces for interprocess communication between Mach tasks."
+"Matchmaker is a language for specifying and automating the generation of
+multilingual interprocess communication interfaces. MIG is an interim
+implementation of a subset of the Matchmaker language that generates C and C++
+remote procedure call interfaces for interprocess communication between Mach
+tasks."
+
+Richard P. Draves, Michael B. Jones, Mary R. Thompson, *MIG - THE MACH
+INTERFACE GENERATOR*.
+[ps](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.ps),
+[doc](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.doc).
+November 1989. Department of Computer Science, Carnegie-Mellon University.
-Richard P. Draves,Michael B. Jones,Mary R. Thompson, **MIG - THE MACH INTERFACE GENERATOR**. [ps](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.ps) [doc](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.doc) November 1989. Department of Computer Science, Carnegie-Mellon University.
# Related Work
-See the citations about [Mach and matchmaker: kernel and language support for objectoriented distributed systems](http://citeseer.ist.psu.edu/context/93073/0) here. "M. B. Jones and R. F. Rashid, \`Mach and matchmaker: kernel and language support for objectoriented distributed systems', Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, October 1986, pp. 67--77."
+See the citations about [Mach and matchmaker: kernel and language support for
+objectoriented distributed
+systems](http://citeseer.ist.psu.edu/context/93073/0). "M. B. Jones and
+R. F. Rashid, *Mach and matchmaker: kernel and language support for
+objectoriented distributed systems*, Proceedings of the Conference on
+Object-Oriented Programming Systems, Languages, and Applications, October 1986,
+pp. 67--77."
+
+
+# Further Relevant Documentation
+
+ * The [[GNU_Mach_Reference_Manual|gnumach/reference_manual]], espacially
+ [Chapter 4, Inter Process
+ Communication](http://www.gnu.org/software/hurd/gnumach-doc/Inter-Process-Communication.html).
+
+ * OSF's [Server Writer's Guide (ps)](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/server_writer.ps)
+ [Server Writer's Guide (pdf)](http://shakthimaan.com/downloads/hurd/server_writer.pdf)
+
+ * OSF's [Server Writer's Interfaces (ps)](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/server_interface.ps)
+ [Server Writer's Interfaces (pdf)](http://shakthimaan.com/downloads/hurd/server_interface.pdf)
+
+ * Flags:
+
+ * [[dealloc_and_dealloc[]|dealloc]]
+ * [[ServerCopy]]
+
+ * MIG *in action*: [[hurd/io_path]].
diff --git a/microkernel/mach/mig/documentation/dealloc.mdwn b/microkernel/mach/mig/documentation/dealloc.mdwn
new file mode 100644
index 00000000..b627b532
--- /dev/null
+++ b/microkernel/mach/mig/documentation/dealloc.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2008, 2009 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]]."]]"""]]
+
+The [[GNU_Mach_Reference_Manual|gnumach/reference_manual]] describes the
+`dealloc` flag in [Chapter 4.2.4,
+Memory](http://www.gnu.org/software/hurd/gnumach-doc/Memory.html).
+
+What exactly is `dealloc[]` (`hurd/fs.defs:dir_readdir`)?
diff --git a/microkernel/mach/mig/documentation/servercopy.mdwn b/microkernel/mach/mig/documentation/servercopy.mdwn
new file mode 100644
index 00000000..8abf9b07
--- /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.
diff --git a/microkernel/mach/mig/gnu_mig.mdwn b/microkernel/mach/mig/gnu_mig.mdwn
new file mode 100644
index 00000000..1bcbd545
--- /dev/null
+++ b/microkernel/mach/mig/gnu_mig.mdwn
@@ -0,0 +1,24 @@
+[[!meta copyright="Copyright © 2001, 2006, 2008, 2009 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]]."]]"""]]
+
+GNU MIG is the GNU distribution of the
+[[Mach_3.0_interface_generator_*MIG*|mig]], as maintained by the GNU Hurd
+developers for the GNU project.
+
+You need this tool to compile the GNU Mach and GNU Hurd distributions, and to
+compile the GNU C library for the Hurd. Also, you will need it for other
+software in the GNU system that uses Mach-based
+[[inter-process_communication|ipc]].
+
+GNU MIG is fully compatible with [[OSF_MIG|mig]].
+
+ * [[Building]] - building (and obtaining) GNU MIG
+ * [[Open Issues|tag/open_issue_mig]]
diff --git a/microkernel/mach/mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn
index ee299166..f92f7dbe 100644
--- a/microkernel/mach/mig/building.mdwn
+++ b/microkernel/mach/mig/gnu_mig/building.mdwn
@@ -4,7 +4,8 @@ If you want to build the Mach Interface Generator yourself instead of just using
## <a name="Getting_the_Source_Code"> Getting the Source Code </a>
-You can chose between getting the [sources from the developers's rcs](http://www.gnu.org/software/hurd/mig-download.html#cvs):
+You can chose between getting the [sources from the developers'
+RCS](http://savannah.gnu.org/cvs/?group=hurd):
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co mig
@@ -12,7 +13,7 @@ You can chose between getting the [sources from the developers's rcs](http://www
$ apt-get source mig
-Please see the Debian [[running/debian/FAQ]] before using _apt-get source_.
+Please see the Debian [[hurd/running/debian/FAQ]] before using _apt-get source_.
The unpacked source tree is around 1 MiB, and the build tree also is around 1 MiB.
@@ -29,7 +30,8 @@ Building the Mach Interface Generator requires the _build-essential_ and _fakero
Building the Mach Interface Generator requires a C compiler, a standard C library (with corresponding header files) and your favourite flavor of awk (gawk), yacc (bison), lex (flex) and make.
-Additionally, you need to have GNU Mach's header files installed. See [[mach/gnumach/building]] about how to do that, then come back here.
+Additionally, you need to have GNU Mach's header files installed. See
+[[mach/gnumach/building]] about how to do that, then come back here.
## <a name="Building_and_Installing"> Building and Installing </a>
diff --git a/microkernel/mach/mig/logo.png b/microkernel/mach/mig/logo.png
deleted file mode 100644
index cdfec179..00000000
--- a/microkernel/mach/mig/logo.png
+++ /dev/null
Binary files differ