Imported Upstream version 5.10.0.47

Former-commit-id: d0813289fa2d35e1f8ed77530acb4fb1df441bc0
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-01-24 17:04:36 +00:00
parent 88ff76fe28
commit e46a49ecf1
5927 changed files with 226314 additions and 129848 deletions

View File

@ -48,6 +48,16 @@
line-height: 0px;
}
.mapi-codeblock {
display: block;
padding: 5pt 5pt;
margin: 10pt;
white-space: pre;
font-family: monospace;
border: 1px solid rgba(233,233,233,1);
background-color: rgba(249,249,249,1);
}
.mapi-entry code {
border: none;
background-color: transparent;
@ -282,7 +292,10 @@ mono_jit_parse_options (int argc, char * argv[])
</div>
<p />
<div class="mapi-section">Description</div>
<div> <p /> Process the command line options in <i>argv</i> as done by the runtime executable. This should be called before <code>mono_jit_init</code>.</div>
<div>
<p />
Process the command line options in <i>argv</i> as done by the runtime executable.
This should be called before <code>mono_jit_init</code>.</div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -303,7 +316,8 @@ mono_jit_exec (MonoDomain *domain, MonoAssembly *assembly, int argc, char *argv[
<p />
<div class="mapi-section">Parameters</div>
<table class="mapi-parameters"><tbody><tr><td><i>assembly</i></td><td> reference to an assembly</td></tr><tr><td><i>argc</i></td><td> argument count</td></tr><tr><td><i>argv</i></td><td> argument vector</td></tr></tbody></table> <div class="mapi-section">Description</div>
<div> Start execution of a program.</div>
<div>
Start execution of a program.</div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -324,7 +338,27 @@ mono_set_dirs (const char *assembly_dir, const char *config_dir)
<p />
<div class="mapi-section">Parameters</div>
<table class="mapi-parameters"><tbody><tr><td><i>assembly_dir</i></td><td> the base directory for assemblies</td></tr><tr><td><i>config_dir</i></td><td> the base directory for configuration files</td></tr></tbody></table> <div class="mapi-section">Description</div>
<div> <p /> This routine is used internally and by developers embedding the runtime into their own applications. <p /> There are a number of cases to consider: Mono as a system-installed package that is available on the location preconfigured or Mono in a relocated location. <p /> If you are using a system-installed Mono, you can pass <code>NULL</code> to both parameters. If you are not, you should compute both directory values and call this routine. <p /> The values for a given PREFIX are: <p /> assembly_dir: PREFIX/lib config_dir: PREFIX/etc <p /> Notice that embedders that use Mono in a relocated way must compute the location at runtime, as they will be in control of where Mono is installed.</div>
<div>
<p />
This routine is used internally and by developers embedding
the runtime into their own applications.
<p />
There are a number of cases to consider: Mono as a system-installed
package that is available on the location preconfigured or Mono in
a relocated location.
<p />
If you are using a system-installed Mono, you can pass <code>NULL</code>
to both parameters. If you are not, you should compute both
directory values and call this routine.
<p />
The values for a given PREFIX are:
<p />
assembly_dir: PREFIX/lib
config_dir: PREFIX/etc
<p />
Notice that embedders that use Mono in a relocated way must
compute the location at runtime, as they will be in control
of where Mono is installed.</div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -363,7 +397,9 @@ mono_runtime_set_main_args (int argc, char* argv[])
<p />
<div class="mapi-section">Parameters</div>
<table class="mapi-parameters"><tbody><tr><td><i>argc</i></td><td> number of arguments from the command line</td></tr><tr><td><i>argv</i></td><td> array of strings from the command line</td></tr></tbody></table> <div class="mapi-section">Description</div>
<div> Set the command line arguments from an embedding application that doesn't otherwise call <code>mono_runtime_run_main</code>.</div>
<div>
Set the command line arguments from an embedding application that doesn't otherwise call
<code>mono_runtime_run_main</code>.</div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -405,7 +441,10 @@ mono_jit_set_trace_options (const char* options)
<div> <code>TRUE</code> if the options were parsed and set correctly, <code>FALSE</code> otherwise.
</div>
<div class="mapi-section">Description</div>
<div> Set the options of the tracing engine. This function can be called before initializing the mono runtime. See the --trace mono(1) manpage for the options format. <p /></div>
<div>
Set the options of the tracing engine. This function can be called before initializing
the mono runtime. See the --trace mono(1) manpage for the options format.
<p /></div>
</div><!--mapi-description -->
</div><!--height container -->
@ -445,7 +484,39 @@ mono_add_internal_call (const char *name, gconstpointer method)
<p />
<div class="mapi-section">Parameters</div>
<table class="mapi-parameters"><tbody><tr><td><i>name</i></td><td> method specification to surface to the managed world</td></tr><tr><td><i>method</i></td><td> pointer to a C method to invoke when the method is called</td></tr></tbody></table> <div class="mapi-section">Description</div>
<div> <p /> This method surfaces the C function pointed by <i>method</i> as a method that has been surfaced in managed code with the method specified in <i>name</i> as an internal call. <p /> Internal calls are surfaced to all app domains loaded and they are accessibly by a type with the specified name. <p /> You must provide a fully qualified type name, that is namespaces and type name, followed by a colon and the method name, with an optional signature to bind. <p /> For example, the following are all valid declarations: <p /> <code>MyApp.Services.ScriptService:Accelerate</code> <p /> <code>MyApp.Services.ScriptService:Slowdown(int,bool)</code> <p /> You use method parameters in cases where there might be more than one surface method to managed code. That way you can register different internal calls for different method overloads. <p /> The internal calls are invoked with no marshalling. This means that .NET types like <code>System.String</code> are exposed as <code>MonoString*</code> parameters. This is different than the way that strings are surfaced in P/Invoke. <p /> For more information on how the parameters are marshalled, see the <a href="http://www.mono-project.com/docs/advanced/embedding/">Mono Embedding</a> page. <p /> See the <a href="mono-api-methods.html&lt;code&gt;method&lt;/code&gt;-desc">Method Description</a> reference for more information on the format of method descriptions.</div>
<div>
<p />
This method surfaces the C function pointed by <i>method</i> as a method
that has been surfaced in managed code with the method specified in
<i>name</i> as an internal call.
<p />
Internal calls are surfaced to all app domains loaded and they are
accessibly by a type with the specified name.
<p />
You must provide a fully qualified type name, that is namespaces
and type name, followed by a colon and the method name, with an
optional signature to bind.
<p />
For example, the following are all valid declarations:
<p />
<code>MyApp.Services.ScriptService:Accelerate</code>
<p />
<code>MyApp.Services.ScriptService:Slowdown(int,bool)</code>
<p />
You use method parameters in cases where there might be more than
one surface method to managed code. That way you can register different
internal calls for different method overloads.
<p />
The internal calls are invoked with no marshalling. This means that .NET
types like <code>System.String</code> are exposed as <code>MonoString*</code> parameters. This is
different than the way that strings are surfaced in P/Invoke.
<p />
For more information on how the parameters are marshalled, see the
<a href="http://www.mono-project.com/docs/advanced/embedding/">Mono Embedding</a>
page.
<p />
See the <a href="mono-api-methods.html&lt;code&gt;method&lt;/code&gt;-desc">Method Description</a>
reference for more information on the format of method descriptions.</div>
</div><!--mapi-description -->
</div><!--height container -->
@ -567,7 +638,9 @@ mono_config_parse (const char *filename)
<p />
<div class="mapi-section">Parameters</div>
<table class="mapi-parameters"><tbody><tr><td><i>filename</i></td><td> the filename to load the configuration variables from.</td></tr></tbody></table> <div class="mapi-section">Description</div>
<div> Pass a <code>NULL</code> filename to parse the default config files (or the file in the <code>MONO_CONFIG</code> env var).</div>
<div>
Pass a <code>NULL</code> filename to parse the default config files
(or the file in the <code>MONO_CONFIG</code> env var).</div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -588,7 +661,8 @@ mono_config_parse_memory (const char *buffer)
<p />
<div class="mapi-section">Parameters</div>
<table class="mapi-parameters"><tbody><tr><td><i>buffer</i></td><td> a pointer to an string XML representation of the configuration</td></tr></tbody></table> <div class="mapi-section">Description</div>
<div> Parses the configuration from a buffer</div>
<div>
Parses the configuration from a buffer</div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -698,7 +772,8 @@ mono_set_config_dir (const char *dir)
</div>
<p />
<div class="mapi-section">Description</div>
<div> Invoked during startup</div>
<div>
Invoked during startup</div>
</div><!--mapi-description -->
</div><!--height container -->
@ -728,7 +803,16 @@ mono_runtime_exec_managed_code (MonoDomain *domain,
<p />
<div class="mapi-section">Parameters</div>
<table class="mapi-parameters"><tbody><tr><td><i>domain</i></td><td> Application domain</td></tr><tr><td><i>main_func</i></td><td> function to invoke from the execution thread</td></tr><tr><td><i>main_args</i></td><td> parameter to the main_func</td></tr></tbody></table> <div class="mapi-section">Description</div>
<div> Launch a new thread to execute a function <p /> <i>main_func</i> is called back from the thread with main_args as the parameter. The callback function is expected to start <code>Main</code> eventually. This function then waits for all managed threads to finish. It is not necessary anymore to execute managed code in a subthread, so this function should not be used anymore by default: just execute the code and then call mono_thread_manage().</div>
<div>
Launch a new thread to execute a function
<p />
<i>main_func</i> is called back from the thread with main_args as the
parameter. The callback function is expected to start <code>Main</code>
eventually. This function then waits for all managed threads to
finish.
It is not necessary anymore to execute managed code in a subthread,
so this function should not be used anymore by default: just
execute the code and then call mono_thread_manage().</div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -766,7 +850,14 @@ mono_init (const char *domain_name)
<div> the initial domain.
</div>
<div class="mapi-section">Description</div>
<div> <p /> Creates the initial application domain and initializes the mono_defaults structure. <p /> This function is guaranteed to not run any IL code. The runtime is initialized using the default runtime version. <p /></div>
<div>
<p />
Creates the initial application domain and initializes the mono_defaults
structure.
<p />
This function is guaranteed to not run any IL code.
The runtime is initialized using the default runtime version.
<p /></div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -790,7 +881,17 @@ mono_init_from_assembly (const char *domain_name, const char *filename)
<div> the initial domain.
</div>
<div class="mapi-section">Description</div>
<div> <p /> Used by the runtime, users should use mono_jit_init instead. <p /> Creates the initial application domain and initializes the mono_defaults structure. This function is guaranteed to not run any IL code. The runtime is initialized using the runtime version required by the provided executable. The version is determined by looking at the exe configuration file and the version PE field) <p /></div>
<div>
<p />
Used by the runtime, users should use mono_jit_init instead.
<p />
Creates the initial application domain and initializes the mono_defaults
structure.
This function is guaranteed to not run any IL code.
The runtime is initialized using the runtime version required by the
provided executable. The version is determined by looking at the exe
configuration file and the version PE field)
<p /></div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -813,7 +914,16 @@ mono_init_version (const char *domain_name, const char *version)
<div> the initial domain.
</div>
<div class="mapi-section">Description</div>
<div> <p /> Used by the runtime, users should use <code>mono_jit_init</code> instead. <p /> Creates the initial application domain and initializes the <code>mono_defaults</code> structure. <p /> This function is guaranteed to not run any IL code. The runtime is initialized using the provided rutime version. <p /></div>
<div>
<p />
Used by the runtime, users should use <code>mono_jit_init</code> instead.
<p />
Creates the initial application domain and initializes the <code>mono_defaults</code>
structure.
<p />
This function is guaranteed to not run any IL code.
The runtime is initialized using the provided rutime version.
<p /></div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -834,7 +944,8 @@ mono_jit_exec (MonoDomain *domain, MonoAssembly *assembly, int argc, char *argv[
<p />
<div class="mapi-section">Parameters</div>
<table class="mapi-parameters"><tbody><tr><td><i>assembly</i></td><td> reference to an assembly</td></tr><tr><td><i>argc</i></td><td> argument count</td></tr><tr><td><i>argv</i></td><td> argument vector</td></tr></tbody></table> <div class="mapi-section">Description</div>
<div> Start execution of a program.</div>
<div>
Start execution of a program.</div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -873,7 +984,18 @@ mono_set_break_policy (MonoBreakPolicyFunc policy_callback)
<p />
<div class="mapi-section">Parameters</div>
<table class="mapi-parameters"><tbody><tr><td><i>policy_callback</i></td><td> the new callback function</td></tr></tbody></table> <div class="mapi-section">Description</div>
<div> <p /> Allow embedders to decide whether to actually obey breakpoint instructions (both break IL instructions and <code>Debugger.Break</code> method calls), for example to not allow an app to be aborted by a perfectly valid IL opcode when executing untrusted or semi-trusted code. <p /> <i>policy_callback</i> will be called every time a break point instruction needs to be inserted with the method argument being the method that calls <code>Debugger.Break</code> or has the IL <code>break</code> instruction. The callback should return <code>MONO_BREAK_POLICY_NEVER</code> if it wants the breakpoint to not be effective in the given method. <code>MONO_BREAK_POLICY_ALWAYS</code> is the default.</div>
<div>
<p />
Allow embedders to decide whether to actually obey breakpoint instructions
(both break IL instructions and <code>Debugger.Break</code> method calls), for example
to not allow an app to be aborted by a perfectly valid IL opcode when executing
untrusted or semi-trusted code.
<p />
<i>policy_callback</i> will be called every time a break point instruction needs to
be inserted with the method argument being the method that calls <code>Debugger.Break</code>
or has the IL <code>break</code> instruction. The callback should return <code>MONO_BREAK_POLICY_NEVER</code>
if it wants the breakpoint to not be effective in the given method.
<code>MONO_BREAK_POLICY_ALWAYS</code> is the default.</div>
</div><!--mapi-description -->
</div><!--height container -->
</div> <!-- class=mapi -->
@ -896,7 +1018,9 @@ mono_get_runtime_build_info (void)
<div> the runtime version + build date in string format.
</div>
<div class="mapi-section">Description</div>
<div> The returned string is owned by the caller. The returned string format is <code>VERSION (FULL_VERSION BUILD_DATE)</code> and build date is optional.</div>
<div>
The returned string is owned by the caller. The returned string
format is <code>VERSION (FULL_VERSION BUILD_DATE)</code> and build date is optional.</div>
</div><!--mapi-description -->
</div><!--height container -->
@ -919,6 +1043,16 @@ mono_set_signal_chaining (gboolean chain_signals)
</div>
<p />
<div class="mapi-section">Description</div>
<div> <p /> Enable/disable signal chaining. This should be called before <code>mono_jit_init</code>. If signal chaining is enabled, the runtime saves the original signal handlers before installing its own handlers, and calls the original ones in the following cases: - a <code>SIGSEGV</code> / <code>SIGABRT</code> signal received while executing native (i.e. not JITted) code. - <code>SIGPROF</code> - <code>SIGFPE</code> - <code>SIGQUIT</code> - <code>SIGUSR2</code> Signal chaining only works on POSIX platforms.</div>
<div>
<p />
Enable/disable signal chaining. This should be called before <code>mono_jit_init</code>.
If signal chaining is enabled, the runtime saves the original signal handlers before
installing its own handlers, and calls the original ones in the following cases:
- a <code>SIGSEGV</code> / <code>SIGABRT</code> signal received while executing native (i.e. not JITted) code.
- <code>SIGPROF</code>
- <code>SIGFPE</code>
- <code>SIGQUIT</code>
- <code>SIGUSR2</code>
Signal chaining only works on POSIX platforms.</div>
</div><!--mapi-description -->
</div><!--height container -->