Sophie

Sophie

distrib > Mandriva > 2009.1 > x86_64 > media > main-backports > by-pkgid > ec081eb1f0fb87b7640153d3a3340fac > files > 75

mono-doc-2.4.2.2-1mdv2009.1.x86_64.rpm

<?xml version="1.0" encoding="us-ascii"?><span>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   <title>mono-api-utils.html</title>
   <style type="text/css">


   h3 { 
       font-size: 18px;
       padding-bottom: 4pt;
       border-bottom: 2px solid #dddddd;
   }
       
   .api {
     border: 1px solid;
     padding: 10pt;
     margin: 10pt;
   } 

   .api-entry { 
       border-bottom: none;
       font-size: 18px;
   }

   .prototype {
     border: 1px solid;
     background-color: #f2f2f2;
     padding: 5pt;
     margin-top: 5pt;
     margin-bottom: 5pt;  
   } 

   .header {
     border: 1px solid;
     padding: 0 0 5pt 5pt;
     margin: 10pt;
     white-space: pre;
       font-family: monospace;
   }
    
   .code {
     border: 1px solid;
     padding: 0 0 5pt 5pt;
     margin: 10pt;
     white-space: pre;
       font-family: monospace;
   }
   

</style>
</head>
<body>
<h2>Utility Methods</h2>

<h3>Bitsets</h3>

	<p />MonoBitsets are a set of routines used to manipulate sets
	of bits.
	
 <a name="api:mono_bitset_alloc_size"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_alloc_size</div>

    <div class="prototype">Prototype: mono_bitset_alloc_size</div>
<p />

</div> <a name="api:mono_bitset_clear"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_clear</div>

    <div class="prototype">Prototype: mono_bitset_clear</div>
<p />

</div> <a name="api:mono_bitset_clear_all"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_clear_all</div>

    <div class="prototype">Prototype: mono_bitset_clear_all</div>
<p />

</div> <a name="api:mono_bitset_clone"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_clone</div>

    <div class="prototype">Prototype: mono_bitset_clone</div>
<p />

</div> <a name="api:mono_bitset_copyto"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_copyto</div>

    <div class="prototype">Prototype: mono_bitset_copyto</div>
<p />

</div> <a name="api:mono_bitset_count"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_count</div>

    <div class="prototype">Prototype: mono_bitset_count</div>
<p />

</div> <a name="api:mono_bitset_equal"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_equal</div>

    <div class="prototype">Prototype: mono_bitset_equal</div>
<p />

</div> <a name="api:mono_bitset_find_first"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_find_first</div>

    <div class="prototype">Prototype: mono_bitset_find_first</div>
<p />

</div> <a name="api:mono_bitset_find_last"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_find_last</div>

    <div class="prototype">Prototype: mono_bitset_find_last</div>
<p />

</div> <a name="api:mono_bitset_find_start"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_find_start</div>

    <div class="prototype">Prototype: mono_bitset_find_start</div>
<p />

</div> <a name="api:mono_bitset_foreach"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_foreach</div>

    <div class="prototype">Prototype: mono_bitset_foreach</div>
<p />

</div> <a name="api:mono_bitset_free"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_free</div>

    <div class="prototype">Prototype: mono_bitset_free</div>
<p />

</div> <a name="api:mono_bitset_intersection"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_intersection</div>

    <div class="prototype">Prototype: mono_bitset_intersection</div>
<p />

</div> <a name="api:mono_bitset_invert"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_invert</div>

    <div class="prototype">Prototype: mono_bitset_invert</div>
<p />

</div> <a name="api:mono_bitset_mem_new"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_mem_new</div>

    <div class="prototype">Prototype: mono_bitset_mem_new</div>
<p />

</div> <a name="api:mono_bitset_new"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_new</div>

    <div class="prototype">Prototype: mono_bitset_new</div>
<p />

</div> <a name="api:mono_bitset_set"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_set</div>

    <div class="prototype">Prototype: mono_bitset_set</div>
<p />

</div> <a name="api:mono_bitset_set_all"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_set_all</div>

    <div class="prototype">Prototype: mono_bitset_set_all</div>
<p />

</div> <a name="api:mono_bitset_size"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_size</div>

    <div class="prototype">Prototype: mono_bitset_size</div>
<p />

</div> <a name="api:mono_bitset_sub"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_sub</div>

    <div class="prototype">Prototype: mono_bitset_sub</div>
<p />

</div> <a name="api:mono_bitset_test"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_test</div>

    <div class="prototype">Prototype: mono_bitset_test</div>
<p />

</div> <a name="api:mono_bitset_test_bulk"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_test_bulk</div>

    <div class="prototype">Prototype: mono_bitset_test_bulk</div>
<p />

</div> <a name="api:mono_bitset_union"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_union</div>

    <div class="prototype">Prototype: mono_bitset_union</div>
<p />

</div> <a name="api:mono_bitset_find_first_unset"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_find_first_unset</div>

    <div class="prototype">Prototype: mono_bitset_find_first_unset</div>
<p />

</div> <a name="api:mono_bitset_intersection_2"></a>
 <div class="api">
    <div class="api-entry">mono_bitset_intersection_2</div>

    <div class="prototype">Prototype: mono_bitset_intersection_2</div>
<p />


</div><h3>Hashtables</h3>

	<p /><tt>GHashTable</tt> is used when you need to store object
	references into a hashtable, objects stored in a
	<tt>MonoGHashTable</tt> are properly tracked by the garbage
	collector.

	<p />The <tt>MonoGHashTable</tt> data type has the same API as
	the GLIB.
	
 <a name="api:mono_g_hash_table_destroy"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_destroy</div>

    <div class="prototype">Prototype: mono_g_hash_table_destroy</div>
<p />

</div> <a name="api:mono_g_hash_table_foreach"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_foreach</div>

    <div class="prototype">Prototype: mono_g_hash_table_foreach</div>
<p />

</div> <a name="api:mono_g_hash_table_foreach_remove"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_foreach_remove</div>

    <div class="prototype">Prototype: mono_g_hash_table_foreach_remove</div>
<p />

</div> <a name="api:mono_g_hash_table_foreach_steal"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_foreach_steal</div>

    <div class="prototype">Prototype: mono_g_hash_table_foreach_steal</div>
<p />

</div> <a name="api:mono_g_hash_table_insert"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_insert</div>

    <div class="prototype">Prototype: mono_g_hash_table_insert</div>
<p />

</div> <a name="api:mono_g_hash_table_lookup"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_lookup</div>

    <div class="prototype">Prototype: mono_g_hash_table_lookup</div>
<p />

</div> <a name="api:mono_g_hash_table_lookup_extended"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_lookup_extended</div>

    <div class="prototype">Prototype: mono_g_hash_table_lookup_extended</div>
<p />

</div> <a name="api:mono_g_hash_table_new"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_new</div>

    <div class="prototype">Prototype: mono_g_hash_table_new</div>
<p />

</div> <a name="api:mono_g_hash_table_new_full"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_new_full</div>

    <div class="prototype">Prototype: mono_g_hash_table_new_full</div>
<p />

</div> <a name="api:mono_g_hash_table_remap"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_remap</div>

    <div class="prototype">void        
mono_g_hash_table_remap (MonoGHashTable *hash_table,
						 MonoGRemapperFunc func,
						 gpointer user_data)

</div>
<p />
<b>Remarks</b>
<p />	 <p />

	  Calls the given function for each key-value pair in the hash table, 
	 and replaces the value stored in the hash table by the value returned by 
	 the function.
	
<p />

</div> <a name="api:mono_g_hash_table_remove"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_remove</div>

    <div class="prototype">Prototype: mono_g_hash_table_remove</div>
<p />

</div> <a name="api:mono_g_hash_table_replace"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_replace</div>

    <div class="prototype">Prototype: mono_g_hash_table_replace</div>
<p />

</div> <a name="api:mono_g_hash_table_size"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_size</div>

    <div class="prototype">Prototype: mono_g_hash_table_size</div>
<p />

</div> <a name="api:mono_g_hash_table_steal"></a>
 <div class="api">
    <div class="api-entry">mono_g_hash_table_steal</div>

    <div class="prototype">Prototype: mono_g_hash_table_steal</div>
<p />


</div><h3>Raw buffer</h3>

	<p />Raw buffers provide an abstraction to load segments of
	files into memory.  If the operating system supports it, the
	files are not loaded, but are mapped into the address space of
	the process (On Unix, this is done using the <tt>mmap(2)</tt>
	system call).
	
 <a name="api:mono_raw_buffer_load"></a>
 <div class="api">
    <div class="api-entry">mono_raw_buffer_load</div>

    <div class="prototype">Prototype: mono_raw_buffer_load</div>
<p />

</div> <a name="api:mono_raw_buffer_update"></a>
 <div class="api">
    <div class="api-entry">mono_raw_buffer_update</div>

    <div class="prototype">Prototype: mono_raw_buffer_update</div>
<p />

</div> <a name="api:mono_raw_buffer_free"></a>
 <div class="api">
    <div class="api-entry">mono_raw_buffer_free</div>

    <div class="prototype">Prototype: mono_raw_buffer_free</div>
<p />


</div><h3>SHA1 Signatures</h3>

 <a name="api:mono_sha1_init"></a>
 <div class="api">
    <div class="api-entry">mono_sha1_init</div>

    <div class="prototype">Prototype: mono_sha1_init</div>
<p />

</div> <a name="api:mono_sha1_update"></a>
 <div class="api">
    <div class="api-entry">mono_sha1_update</div>

    <div class="prototype">Prototype: mono_sha1_update</div>
<p />

</div> <a name="api:mono_sha1_get_digest_from_file"></a>
 <div class="api">
    <div class="api-entry">mono_sha1_get_digest_from_file</div>

    <div class="prototype">Prototype: mono_sha1_get_digest_from_file</div>
<p />

</div> <a name="api:mono_sha1_get_digest"></a>
 <div class="api">
    <div class="api-entry">mono_sha1_get_digest</div>

    <div class="prototype">Prototype: mono_sha1_get_digest</div>
<p />

</div> <a name="api:mono_sha1_final"></a>
 <div class="api">
    <div class="api-entry">mono_sha1_final</div>

    <div class="prototype">Prototype: mono_sha1_final</div>
<p />


</div><h3>MD5 Signatures</h3>

 <a name="api:mono_md5_init"></a>
 <div class="api">
    <div class="api-entry">mono_md5_init</div>

    <div class="prototype">Prototype: mono_md5_init</div>
<p />

</div> <a name="api:mono_md5_update"></a>
 <div class="api">
    <div class="api-entry">mono_md5_update</div>

    <div class="prototype">Prototype: mono_md5_update</div>
<p />

</div> <a name="api:mono_md5_get_digest_from_file"></a>
 <div class="api">
    <div class="api-entry">mono_md5_get_digest_from_file</div>

    <div class="prototype">Prototype: mono_md5_get_digest_from_file</div>
<p />

</div> <a name="api:mono_md5_get_digest"></a>
 <div class="api">
    <div class="api-entry">mono_md5_get_digest</div>

    <div class="prototype">Prototype: mono_md5_get_digest</div>
<p />

</div> <a name="api:mono_md5_final"></a>
 <div class="api">
    <div class="api-entry">mono_md5_final</div>

    <div class="prototype">Prototype: mono_md5_final</div>
<p />


</div> <a name="api:mono_digest_get_public_token"></a>
 <div class="api">
    <div class="api-entry">mono_digest_get_public_token</div>

    <div class="prototype">Prototype: mono_digest_get_public_token</div>
<p />


</div><h3>Memory Pools</h3>

	<p />Memory pools are a convenient way of tracking memory
	allocations that are used for one specific task, they are also
	faster than using the standard memory allocation procedures,
	as they are designed to be used only by a single thread at a
	time. 

	<p /><tt>MonoMemPool</tt> objects are not thread safe, which
	means that you should not share the objects across multiple
	threads without providing proper locking around it (unlike
	<tt>malloc</tt> and <tt>free</tt> which are thread safe). 

	<p />When a <tt>MonoMemPool</tt> is released with
	<tt>mono_mempool_destroy</tt> all of the of the memory
	allocated from that memory pool with
	<tt>mono_mempool_alloc</tt> and <tt>mono_mempool_alloc0</tt>
	is released.
	
 <a name="api:mono_mempool_new"></a>
 <div class="api">
    <div class="api-entry">mono_mempool_new</div>

    <div class="prototype">MonoMemPool*
mono_mempool_new (void)

</div>
<p />
<b>Returns</b>
<blockquote>	  a new memory pool.
</blockquote>

</div> <a name="api:mono_mempool_destroy"></a>
 <div class="api">
    <div class="api-entry">mono_mempool_destroy</div>

    <div class="prototype">void
mono_mempool_destroy (MonoMemPool *pool)

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>pool:</i></dt><dd> the memory pool to destroy</dd></blockquote>
<b>Remarks</b>
<p />	 
	 Free all memory associated with this pool.

</div> <a name="api:mono_mempool_alloc"></a>
 <div class="api">
    <div class="api-entry">mono_mempool_alloc</div>

    <div class="prototype">gpointer
mono_mempool_alloc (MonoMemPool *pool, guint size)

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>pool:</i></dt><dd> the momory pool to use</dd><dt><i>size:</i></dt><dd> size of the momory block</dd></blockquote>
<b>Returns</b>
<blockquote>	  the address of a newly allocated memory block.
</blockquote>
<b>Remarks</b>
<p />	 
	 Allocates a new block of memory in <i>pool</i>.
	

</div> <a name="api:mono_mempool_alloc0"></a>
 <div class="api">
    <div class="api-entry">mono_mempool_alloc0</div>

    <div class="prototype">gpointer
mono_mempool_alloc0 (MonoMemPool *pool, guint size)

</div>
<p />
<b>Remarks</b>
<p />	 
	 same as mono_mempool_alloc, but fills memory with zero.

</div> <a name="api:mono_mempool_empty"></a>
 <div class="api">
    <div class="api-entry">mono_mempool_empty</div>

    <div class="prototype">Prototype: mono_mempool_empty</div>
<p />

</div> <a name="api:mono_mempool_invalidate"></a>
 <div class="api">
    <div class="api-entry">mono_mempool_invalidate</div>

    <div class="prototype">void
mono_mempool_invalidate (MonoMemPool *pool)

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>pool:</i></dt><dd> the memory pool to invalidate</dd></blockquote>
<b>Remarks</b>
<p />	 
	 Fill the memory associated with this pool to 0x2a (42). Useful for debugging.

</div> <a name="api:mono_mempool_stats"></a>
 <div class="api">
    <div class="api-entry">mono_mempool_stats</div>

    <div class="prototype">void
mono_mempool_stats (MonoMemPool *pool)

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>pool:</i></dt><dd> the momory pool we need stats for</dd></blockquote>
<b>Remarks</b>
<p />	 
	 Print a few stats about the mempool

</div> <a name="api:mono_mempool_contains_addr"></a>
 <div class="api">
    <div class="api-entry">mono_mempool_contains_addr</div>

    <div class="prototype">gboolean
mono_mempool_contains_addr (MonoMemPool *pool,
							gpointer addr)

</div>
<p />
<b>Remarks</b>
<p />	 
	  Determines whenever ADDR is inside the memory used by the mempool.

 
</div><h3>JIT utilities</h3>

 <a name="api:mono_is_power_of_two"></a>
 <div class="api">
    <div class="api-entry">mono_is_power_of_two</div>

    <div class="prototype">Prototype: mono_is_power_of_two</div>
<p />

</div> <a name="api:mono_signbit_double"></a>
 <div class="api">
    <div class="api-entry">mono_signbit_double</div>

    <div class="prototype">Prototype: mono_signbit_double</div>
<p />

</div> <a name="api:mono_signbit_float"></a>
 <div class="api">
    <div class="api-entry">mono_signbit_float</div>

    <div class="prototype">Prototype: mono_signbit_float</div>
<p />


</div><h3>Disassembling Generated Code</h3>

	<p />Routines used to debug the JIT-produced code.
	
 <a name="api:mono_disasm_code"></a>
 <div class="api">
    <div class="api-entry">mono_disasm_code</div>

    <div class="prototype">Prototype: mono_disasm_code</div>
<p />

</div> <a name="api:mono_disasm_code_one"></a>
 <div class="api">
    <div class="api-entry">mono_disasm_code_one</div>

    <div class="prototype">Prototype: mono_disasm_code_one</div>
<p />

</div> <a name="api:mono_disassemble_code"></a>
 <div class="api">
    <div class="api-entry">mono_disassemble_code</div>

    <div class="prototype">void
mono_disassemble_code (MonoCompile *cfg, guint8 *code, int size, char *id)

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>cfg:</i></dt><dd> compilation context</dd><dt><i>code:</i></dt><dd> a pointer to the code</dd><dt><i>size:</i></dt><dd> the code size in bytes</dd></blockquote>
<b>Remarks</b>
<p />	 
	 Disassemble to code to stdout.


</div><h3>Walking the Stack</h3>

 <a name="api:mono_walk_stack"></a>
 <div class="api">
    <div class="api-entry">mono_walk_stack</div>

    <div class="prototype">void
mono_walk_stack (MonoDomain *domain, MonoJitTlsData *jit_tls, MonoContext *start_ctx, MonoStackFrameWalk func, gpointer user_data)

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>domain:</i></dt><dd> starting appdomain</dd><dt><i>jit_tls:</i></dt><dd> JIT data for the thread</dd><dt><i>start_ctx:</i></dt><dd> starting state of the stack frame</dd><dt><i>func:</i></dt><dd> callback to call for each stack frame</dd><dt><i>user_data:</i></dt><dd> data passed to the callback</dd></blockquote>
<b>Remarks</b>
<p />	 
	 This function walks the stack of a thread, starting from the state
	 represented by jit_tls and start_ctx. For each frame the callback
	 function is called with the relevant info. The walk ends when no more
	 managed stack frames are found or when the callback returns a TRUE value.
	 Note that the function can be used to walk the stack of a thread 
	 different from the current.

</div> <a name="api:mono_stack_walk_no_il"></a>
 <div class="api">
    <div class="api-entry">mono_stack_walk_no_il</div>

    <div class="prototype">Prototype: mono_stack_walk_no_il</div>
<p />


</div><h3>Others</h3>

 <a name="api:mono_escape_uri_string"></a>
 <div class="api">
    <div class="api-entry">mono_escape_uri_string</div>

    <div class="prototype">Prototype: mono_escape_uri_string</div>
<p />

</div></body>
</html>
</span>