element takes two attributes:
.TP
.I dll
-This should be the same string used in the DllImport attribute
+This should be the same string used in the DllImport attribute, optionally
+prefixed with "i:" to indicate that the string must be matched in a
+case-insensitive way
.TP
.I target
This should be the name of the library where the function can be found:
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
+This is the name of the function as it appears in the metadata: it is the name
of the P/Invoke method.
.TP
.I target
.TP
.I cpu
This is the name of the architecture for which the mapping should be applied.
-Allowed values are: x86, x86-64, sparc, ppc, s390, s390x, arm, mips, alpha, hppa, ia64.
+Allowed values are: x86, x86-64, sparc, ppc, s390, s390x, arm, mips,
+alpha, hppa, ia64.
+.TP
+.I wordsize
+This is the size of registers on the target architecture, it can be
+either 32 or 64.
+.PP
+The attribute value for both attributes can be a comma-separated list of the allowed
+values. Additionally, the first character may be a
+.I '!'
+to reverse the meaning. An attribute value of "!windows,osx", for example, would mean
+that the entry is considered on all operating systems, except on Windows and OS X.
+No spaces are allowed in any part of the value.
.PP
Note that later entries will override the entries defined earlier in the file.
.SH EXAMPLES
library to the `libc.so.6' file.
.nf
<configuration>
- <dllmap dll="cygwin1.dll" target="libc.so.6"/>
+ <dllmap dll="i:cygwin1.dll" target="libc.so.6"/>
</configuration>
.fi
+The library name in the DllImport attribute is allowed to be in any
+case variant, like the following examples:
+.nf
+.nf
+ [DllImport ("cygwin1.dll")]
+ [DllImport ("Cygwin1.dll")]
+ [DllImport ("cygwiN1.Dll")]
+.fi
.PP
This one maps the following C# method:
.nf
.B libdifferent.so
, but to the same function in the library
.B libanother.so
-when running under the Solaris operating system.
+when running under the Solaris and FreeBSD operating systems.
.nf
<configuration>
<dllmap dll="libc">
<dllentry dll="libdifferent.so" name="somefunction" target="differentfunction" />
- <dllentry os="solaris" dll="libanother.so" name="somefunction" target="differentfunction" />
+ <dllentry os="solaris,freebsd" dll="libanother.so" name="somefunction" target="differentfunction" />
</dllmap>
</configuration>
.fi