* statement.cs (Block.Flags); Remove HasVarargs.
[mono.git] / man / mono-config.5
index 1800f42b8d24b17dd841b7f196ba892c37e55eef..1229a104b21cb6debc2083272f85d4b8b3ae204c 100644 (file)
@@ -1,8 +1,9 @@
 .\" 
-.\" mono configuration page.
+.\" mono-config configuration page.
 .\" (C) Ximian, Inc. 
 .\" Author:
 .\"   Miguel de Icaza (miguel@gnu.org)
+.\"   Paolo Molaro (lupus@ximian.com)
 .\"
 .TH Mono "Mono 1.0"
 .SH NAME
@@ -12,6 +13,9 @@ The Mono runtime will load configuration data from the
 installation prefix /etc/mono/config file, the ~/.mono/config or from
 the file pointed by the MONO_CONFIG environment variable.
 .PP
+For each assembly loaded a config file with the name:
+/path/to/the/assembly.exe.config is loaded, too.
+.PP
 This file controls the behavior of the runtime.
 .PP
 The file contains an XML-like file with various sections, all of them
@@ -24,6 +28,37 @@ You use the dllmap directive to map shared libraries referenced by
 P/Invoke in your assemblies to a different shared library.
 .PP
 This is typically used to map Windows libraries to Unix library names.
+The 
+.B dllmap
+element takes two attributes:
+.TP
+.I dll
+This should be the same string used in the DllImport attribute
+.TP
+.I target
+This should be the name of the library where the function can be found: 
+this name should be suitable for use with the platform native shared library 
+loading routines (dlopen etc.), so you may want to check the manpages for that, too.
+.SH <dllentry> directive
+This directive can be used to map a specific dll/function pair to a different
+library and also a different function name. It should appear inside a
+.B dllmap
+element with only the dll attribute specified.
+.PP
+The
+.B dllentry
+element takes 3 attributes:
+.TP
+.I dll
+This is the target library, where the function can be found.
+.TP
+.I name
+This is the name of the fuction as it appears in the metadata: it is the name 
+of the P/Invoke method.
+.TP
+.I target
+This is the name of the function to lookup instead of the name specified in the 
+P/Invoke method.
 .SH EXAMPLES
 The following example maps references to the `cygwin1.dll' shared
 library to the `libc.so.6' file.  
@@ -32,5 +67,23 @@ library to the `libc.so.6' file.
        <dllmap dll="cygwin1.dll" target="libc.so.6"/>
 </configuration>
 .fi
+.PP
+This one maps the following C# method:
+.nf
+       [DllImport ("libc")]
+       static extern void somefunction ();
+.fi
+to
+.B differentfunction
+in
+.B libdifferent.so.
+.nf
+<configuration>
+       <dllmap dll="libc">
+               <dllentry dll="libdifferent.so" name="somefunction" target="differentfunction" />
+       </dllmap>
+</configuration>
+.fi
+
 .SH SEE ALSO
-.BR mono(1), monodis(1), mint(1)
\ No newline at end of file
+.BR mono(1), monodis(1), mint(1)