diff options
Diffstat (limited to 'Mig')
-rw-r--r-- | Mig/BuildingMIG.mdwn | 71 | ||||
-rw-r--r-- | Mig/MachInterfaceGenerator.mdwn | 17 | ||||
-rw-r--r-- | Mig/MigDocumentation.mdwn | 33 | ||||
-rw-r--r-- | Mig/WebChanges.mdwn | 1 | ||||
-rw-r--r-- | Mig/WebDiscuss.mdwn | 17 | ||||
-rw-r--r-- | Mig/WebHome.mdwn | 52 | ||||
-rw-r--r-- | Mig/WebIndex.mdwn | 3 | ||||
-rw-r--r-- | Mig/WebNotify.mdwn | 8 | ||||
-rw-r--r-- | Mig/WebPreferences.mdwn | 51 | ||||
-rw-r--r-- | Mig/WebSearch.mdwn | 1 | ||||
-rw-r--r-- | Mig/WebStatistics.mdwn | 56 | ||||
-rw-r--r-- | Mig/WebTopicList.mdwn | 3 |
12 files changed, 313 insertions, 0 deletions
diff --git a/Mig/BuildingMIG.mdwn b/Mig/BuildingMIG.mdwn new file mode 100644 index 00000000..471edea2 --- /dev/null +++ b/Mig/BuildingMIG.mdwn @@ -0,0 +1,71 @@ +# <a name="Building_the_Mach_Interface_Gene"> Building the Mach Interface Generator from Source </a> + +If you want to build the Mach Interface Generator yourself instead of just using a pre-built package, follow these instructions. + +## <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): + + $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co mig + +... or (if you are working on a Debian system) the ones that are used for the [current Debian mig package](http://packages.debian.net/source/unstable/mig): + + $ apt-get source mig + +Please see [[Distrib/DebianFAQ]] before using _apt-get source_. + +The unpacked source tree is around 1 MiB, and the build tree also is around 1 MiB. + +## <a name="Preparing_for_the_Build"> Preparing for the Build </a> + +### <a name="_on_Debian_systems"> ... on Debian systems </a> + +Building the Mach Interface Generator requires the _build-essential_ and _fakeroot_ packages, their dependencies and additional packages that are specified by the source mig package: + + # apt-get install build-essential fakeroot + # apt-get build-dep mig + +### <a name="_on_non_Debian_systems"> ... on non-Debian systems </a> + +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/BuildingGNUMach]] about how to do that, then come back here. + +## <a name="Building_and_Installing"> Building and Installing </a> + +### <a name="_a_deb_file"> ... a _.deb_ file </a> + +Change into the directory with the downloaded / unpacked MIG sources (_mig-1.3.1.99_): + + $ cd mig-1.3.1.99 + +Start the build process: + + $ dpkg-buildpackage -us -uc -b -rfakeroot + +You can then install / distribute the _.deb_ file which will drop out one directory above the current one. + +### <a name="_TODO_"> [TODO] </a> + +The Mach Interface Generator has to be built in a separate directory: + + $ mkdir mig-build + $ cd mig-build + +Find the root directory where you installed GNU Mach's header files and where you now intend to install the Mach Interface Generator (_~/gnu_) and the path to your Mach Interface Generator sources (\_[...]/mig) and configure it: + + $ GNU=~/gnu + $ TARGET_CPPFLAGS=-I"$GNU"/include [...]/mig/configure --prefix="$GNU" + +Build and install the Mach Interface Generator into _$GNU_, i.e. _~/gnu/_ in our example: + + $ make all install + +To make your _mig_ binary easily available, you should append something like the following to e.g. your _~/.bash\_profile_: + + PATH=~/gnu/bin:$PATH + export PATH + +If you already have e.g. _~/bin_ in your _$PATH_, you could also create a symbolic link: + + $ ln -s ~/gnu/bin/mig ~/bin/ diff --git a/Mig/MachInterfaceGenerator.mdwn b/Mig/MachInterfaceGenerator.mdwn new file mode 100644 index 00000000..55f88946 --- /dev/null +++ b/Mig/MachInterfaceGenerator.mdwn @@ -0,0 +1,17 @@ +## <a name="MIG"> </a> MIG + +MIG is the Mach 3.0 interface generator, as maintained by the GNU Hurd developers for the GNU project. + +The interface generator produces stub code from interface definition (.defs) files. The stub code makes it easy to implement and use Mach interfaces as remote procedure calls (RPC). + +You need this tool to compile the GNU Mach and Hurd distributions, and to compile the GNU C library for the Hurd. Also, you will need it for other software in the GNU systems that uses Mach-based inter-process communication. + +## <a name="Status_of_the_project"> Status of the project </a> + +MIG 1.3 was released in March 2002, and features compatibility with OSF Mach. + +---- + +Copyright (C) 2001 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA + +Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. diff --git a/Mig/MigDocumentation.mdwn b/Mig/MigDocumentation.mdwn new file mode 100644 index 00000000..8478a8a4 --- /dev/null +++ b/Mig/MigDocumentation.mdwn @@ -0,0 +1,33 @@ +## <a name="Table_of_Contents"> Table of Contents </a> + +%TOC% + +## <a name="About"> About </a> + +This is a small collection of links to external documents describing the [[MachInterfaceGenerator]] used by GNU Mach. + +## <a name="Carnegie_Mellon_University"> Carnegie-Mellon University </a> + +### <a name="MiG_and_C_Thread_Programming"> MiG and C Thread Programming </a> + +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 ](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](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig_example) for this tutorial. + +### <a name="PostScript_slides_on_MiG"> PostScript slides on MiG </a> + +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) + +### <a name="Definition_of_MiG"> Definition of MiG </a> + +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." + +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. + +### <a name="Other_papers_related_to_MiG"> Other papers related to MiG </a> + +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." diff --git a/Mig/WebChanges.mdwn b/Mig/WebChanges.mdwn new file mode 100644 index 00000000..de565147 --- /dev/null +++ b/Mig/WebChanges.mdwn @@ -0,0 +1 @@ +%INCLUDE\{"%TWIKIWEB%.WebChanges"\}% diff --git a/Mig/WebDiscuss.mdwn b/Mig/WebDiscuss.mdwn new file mode 100644 index 00000000..fdab3a45 --- /dev/null +++ b/Mig/WebDiscuss.mdwn @@ -0,0 +1,17 @@ +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/Mig/WebHome.mdwn b/Mig/WebHome.mdwn new file mode 100644 index 00000000..1e2e29ee --- /dev/null +++ b/Mig/WebHome.mdwn @@ -0,0 +1,52 @@ +The [[MachInterfaceGenerator]] (MIG) is a program which generates inter-process communication (IPC) code. Specifically Mig generates remote procedure call (RPC) code for communication between client and server processes running on a Mach microkernel. + +<form action="%SCRIPTURLPATH%/search%SCRIPTSUFFIX%/%WEB%/"> + <table> + <tr> + <td valign="top" width="65%"> + <p> Mach servers run as separate tasks and communicate with RPC messages. The RPC interface is language independant and somewhat complex. MIG mitigates this complexity. </p> + <p> GNU MIG is fully compatible with OSF MIG. The <a href="http://www.gnu.org/software/hurd/mig.html" target="_top">official Mig</a> site is a page hosted on the official Hurd site. [[MigDocumentation]] is available. Mig also has it's own CVS module within the main Hurd CVS site. </p> + <p>[[BuildingMIG]]</p> + <p> + </p> + <dl> + <dt>[[WebDiscuss]]</dt> + <dd> Discussion about how to make this part of the site better and more informative. </dd> + </dl> + <p> + </p> + <dl> + <dt>[[WebPreferences]]</dt> + <dd> specific settings for this web </dd> + </dl> + <p> + </p> + </td> + <td> + <p> + </p> + </td> + <td valign="top" width="35%"> + <p> + </p> + <table border="1" cellpadding="1" cellspacing="0"> + <tr> + <th bgcolor="#99CCCC"><strong>Hot Topics <font size="-1">([[WebStatistics]])</font></strong></th> + <th bgcolor="#99CCCC"><strong>Top Contributors</strong></th> + </tr> + </table> %INCLUDE{"WebStatistics" pattern=".*?\-\-statTopContributors\-\-\&gt;[^\|]+\|[^\|]+\|[^\|]+\|[^\|]+\|[^\|]+\|[^\|]+(\|[^\|]+\|[^\|]+\|).*"}% <p> + </p><input name="search" size="20" type="text" /> <input type="submit" value="Search %WEB%" /><br /><font size="-1">More search options in [[WebSearch]]</font><br /> + <p> Currently, Web refers to the Mig Web. </p> + <p> + </p> + <ul> + <li>[[WebIndex]] - alphabetical </li> + <li>[[WebChanges]] - by modification time </li> + <li>[[WebNotify]] - email alerts </li> + </ul> + <p> + </p> + </td> + </tr> + </table> +</form> diff --git a/Mig/WebIndex.mdwn b/Mig/WebIndex.mdwn new file mode 100644 index 00000000..0732324b --- /dev/null +++ b/Mig/WebIndex.mdwn @@ -0,0 +1,3 @@ +%SEARCH\{"\\.\*" scope="topic" regex="on" nosearch="on"\}% + +See also the faster [[WebTopicList]] diff --git a/Mig/WebNotify.mdwn b/Mig/WebNotify.mdwn new file mode 100644 index 00000000..2cba92a7 --- /dev/null +++ b/Mig/WebNotify.mdwn @@ -0,0 +1,8 @@ +%NOTIFYTOPIC% is a subscription service to be automatically notified by email when topics change in the **%WIKITOOLNAME%.%WEB%** web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe to the service, please put yourself on the list below. The format is: `3 spaces * %MAINWEB%.yourWikiName - yourEmailAddress` + +* [[Main/JoachimNilsson]] - <joachim@gnufansNOSPAM.org> +* [[Main/ThomasSchwinge]] - <tschwinge@gnuNOSPAM.org> + +**_Note:_** It is helpful to insert your name in alphabetical order (by first name -- ignore the "Main.") -- then you can find your name (or not) more easily if you wish to remove it or confirm that you are on the list. + +**_Related topics:_** %MAINWEB%.%WIKIUSERSTOPIC%, %TWIKIWEB%.TWikiRegistration diff --git a/Mig/WebPreferences.mdwn b/Mig/WebPreferences.mdwn new file mode 100644 index 00000000..cfe62f8d --- /dev/null +++ b/Mig/WebPreferences.mdwn @@ -0,0 +1,51 @@ +## <a name="_WIKITOOLNAME_WEB_Web_Preference"> %WIKITOOLNAME%.%WEB% Web Preferences </a> + +The following settings are **_web preferences_** of the %WIKITOOLNAME%.%WEB% web. These preferences overwrite the **_site-level preferences_** in %TWIKIWEB%.%WIKIPREFSTOPIC%, and can be overwritten by **_user preferences_** (your personal topic, i.e. %MAINWEB%.TWikiGuest in the %WIKITOOLNAME%.%MAINWEB% web) + +**_Preferences:_** + +* List of topics of the %WIKITOOLNAME%.%WEB% web: + * Set WEBTOPICLIST = [[HOMETOPIC]] %SEP% [[WebChanges]] %SEP% [[WebIndex]] %SEP% [[WebSearch]] %SEP% Go <input name="topic" size="16" type="text" /> + +* Web specific background color: (Pick a lighter one of the %TWIKIWEB%.StandardColors) + * Set WEBBGCOLOR = #CCCCFF + +* Exclude web from a `web="all"` search: (Set to `on` for hidden webs) + * Set NOSEARCHALL = + +* Default template for new topics and form(s) for this web: + * [[WebTopicEditTemplate]]: Default template for new topics in this web. (Site-level is used if topic does not exist) + * [[TWIKIWEBWebTopicEditTemplate]]: Site-level default template + * %TWIKIWEB%.TWikiForms: How to enable form(s) + * Set WEBFORMS = + +* Users or groups who **_are not_** / **_are_** allowed to **_view_** / **_change_** / **_rename_** topics in the %WEB% web: (See %TWIKIWEB%.TWikiAccessControl) + * Set DENYWEBVIEW = + * Set ALLOWWEBVIEW = + * Set DENYWEBCHANGE = + * Set ALLOWWEBCHANGE = + * Set DENYWEBRENAME = + * Set ALLOWWEBRENAME = + +* Users or groups allowed to change or rename this %TOPIC% topic: (I.e. %MAINWEB%.TWikiAdminGroup) + * Set ALLOWTOPICCHANGE = %MAINWEB%.TWikiAdminGroup + * Set ALLOWTOPICRENAME = %MAINWEB%.TWikiAdminGroup + +* Web preferences that are **not** allowed to be overridden by user preferences: + * Set FINALPREFERENCES = WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME + +**_Notes:_** + +* A preference is defined as: <br />`6 spaces * Set NAME = value`<br /> Example: + * Set WEBBGCOLOR = #FFFFC0 +* Preferences are used as %TWIKIWEB%.TWikiVariables by enclosing the name in percent signs. Example: + * When you write variable <code>%WEBBGCOLOR%</code> , it gets expanded to `%WEBBGCOLOR%` . +* The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set <code>WEBCOPYRIGHT</code> before <code>WIKIWEBMASTER</code> since <code>%WEBCOPYRIGHT%</code> uses the <code>%WIKIWEBMASTER%</code> variable. +* You can introduce new preferences variables and use them in your topics and templates. There is no need to change the %WIKITOOLNAME% engine (Perl scripts). + +**_Related Topics:_** + +* %TWIKIWEB%.%WIKIPREFSTOPIC% has site-level preferences. +* %MAINWEB%.%WIKIUSERSTOPIC% has a list of user topics. User topics can have optional user preferences. +* %TWIKIWEB%.TWikiVariables has a list of common <code>%VARIABLES%</code>. +* %TWIKIWEB%.TWikiAccessControl explains how to restrict access by users or groups. diff --git a/Mig/WebSearch.mdwn b/Mig/WebSearch.mdwn new file mode 100644 index 00000000..b6d43d86 --- /dev/null +++ b/Mig/WebSearch.mdwn @@ -0,0 +1 @@ +%INCLUDE\{"%TWIKIWEB%.WebSearch"\}% diff --git a/Mig/WebStatistics.mdwn b/Mig/WebStatistics.mdwn new file mode 100644 index 00000000..29960291 --- /dev/null +++ b/Mig/WebStatistics.mdwn @@ -0,0 +1,56 @@ +## <a name="Statistics_for_WIKITOOLNAME_WEB_"> Statistics for %WIKITOOLNAME%.%WEB% Web </a> + +<table border="1" cellpadding="1" cellspacing="0"> + <tr> + <th bgcolor="#99CCCC"><strong>Month:</strong></th> + <th bgcolor="#99CCCC"><strong>Topic <br /> views:</strong></th> + <th bgcolor="#99CCCC"><strong>Topic <br /> saves:</strong></th> + <th bgcolor="#99CCCC"><strong>File <br /> uploads:</strong></th> + <th bgcolor="#99CCCC"><strong>Most popular <br /> topic views:</strong></th> + <th bgcolor="#99CCCC"><strong>Top contributors for <br /> topic save and uploads:</strong></th> + </tr> + <tr> + <td> + </td> + <td> + </td> + <td> + </td> + <td> + </td> + <td> + </td> + <td> + </td> + </tr> + <tr> + <td> Dec 2002 </td> + <td align="right"> 73 </td> + <td align="right"> 2 </td> + <td align="right"> 0 </td> + <td> 42 [[WebHome]]<br /> 13 [[MachInterfaceGenerator]]<br /> 5 [[WebPreferences]]<br /> 5 [[MigDocumentation]]<br /> 3 [[WebStatistics]]<br /> 3 [[WebDiscuss]]<br /> 1 [[WebMenu]]<br /> 1 [[WebChanges]]</td> + <td> 2 [[Main/GrantBow]]</td> + </tr> + <tr> + <td> Nov 2002 </td> + <td align="right"> 159 </td> + <td align="right"> 7 </td> + <td align="right"> 1 </td> + <td> 68 [[WebHome]]<br /> 25 [[MachInterfaceGenerator]]<br /> 17 [[MigDocumentation]]<br /> 7 [[WebDiscuss]]<br /> 6 [[WebSearch]]<br /> 6 [[WebPreferences]]<br /> 6 [[WebNotify]]<br /> 6 [[WebMenu]]<br /> 6 [[WebChanges]]<br /> 5 [[WebIndex]]<br /> 4 [[WebStatistics]]</td> + <td> 5 [[Main/GrantBow]]<br /> 3 [[Main/JoachimNilsson]]</td> + </tr> + <tr> + <td> Oct 2002 </td> + <td align="right"> 48 </td> + <td align="right"> 10 </td> + <td align="right"> 0 </td> + <td> 19 [[WebHome]]<br /> 10 [[MachInterfaceGenerator]]<br /> 8 [[WebPreferences]]<br /> 5 [[MigDocumentation]]<br /> 3 [[WebNotify]]<br /> 2 [[WebIndex]]<br /> 1 [[WebTopicList]]</td> + <td> 9 [[Main/JoachimNilsson]]<br /> 1 [[Main/GrantBow]]</td> + </tr> +</table> + +**_Notes:_** + +* Do not edit this topic, it is updated automatically. (You can also [force](%SCRIPTURLPATH%/statistics%SCRIPTSUFFIX%/%WEB%) an update) +* %TWIKIWEB%.TWikiDocumentation tells you how to enable the automatic updates of the statistics. +* Suggestion: You could archive this topic once a year and delete the previous year's statistics from the table. diff --git a/Mig/WebTopicList.mdwn b/Mig/WebTopicList.mdwn new file mode 100644 index 00000000..fb9b2001 --- /dev/null +++ b/Mig/WebTopicList.mdwn @@ -0,0 +1,3 @@ +%TOPICLIST\{" \* [[Name]]"\}% + +See also the verbose [[WebIndex]]. |