summaryrefslogtreecommitdiff
path: root/microkernel/mach/mig.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'microkernel/mach/mig.mdwn')
-rw-r--r--microkernel/mach/mig.mdwn33
1 files changed, 23 insertions, 10 deletions
diff --git a/microkernel/mach/mig.mdwn b/microkernel/mach/mig.mdwn
index 4275a4b4..331b3bf4 100644
--- a/microkernel/mach/mig.mdwn
+++ b/microkernel/mach/mig.mdwn
@@ -1,21 +1,34 @@
-[[!meta copyright="Copyright © 2001, 2002, 2003, 2006, 2007, 2008 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2006, 2007, 2008, 2010 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]]."]]"""]]
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
-The Mach Interface Generator (MIG) is an [[IDL]] compiler. Based on an
-interface definition, it creates stubs to [[invoke]] object methods
-and to demultiplex incoming messages. These stubs conveniently hide
-the details of Mach's [[IPC]] machinery and make it easy to implement
-and use Mach [[interface]]s as [[remote_procedure_calls_(RPC)|rpc]].
+The *Mach Interface Generator* (*MIG*) is an [[IDL]] compiler. Based on an
+interface definition, it creates stub code to [[invoke]] object methods and to
+demultiplex incoming messages. These stub functions conveniently hide the
+details of Mach's [[IPC]] and [[port]] machinery and make it easy to implement
+and use Mach [[interface]]s as [[remote procedure calls (RPC)|rpc]]: by using
+the stub functions, the client programs can call remote procedures more or less
+like any other C function.
+
+These functions encode arguments into [[message]]s' format (*marshalling*),
+wait for a result on a newly created [[reply port|port]], decode return
+arguments from the reply message (*demarshalling*, or *unmarshalling*) and pass
+them to the client program. Similar actions are provided in the skeletons that
+are linked to server programs.
+
+MIG allows very precise semantics to be specified about what the arguments are
+and how to be passed.
+
+
+ * [[Documentation]]
-* [[Documentation]]
# Implementations