Updated documentation

Signed-off-by: Github Action <ubpf@users.noreply.github.com>
diff --git a/ubpf_8h_source.html b/ubpf_8h_source.html
index 6dc21cc..3344e69 100644
--- a/ubpf_8h_source.html
+++ b/ubpf_8h_source.html
@@ -153,70 +153,73 @@
 <div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="preprocessor">#if defined(UBPF_HAS_ELF_H)</span></div>
 <div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keywordtype">int</span></div>
 <div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    ubpf_load_elf(<span class="keyword">struct</span> ubpf_vm* vm, <span class="keyword">const</span> <span class="keywordtype">void</span>* elf, <span class="keywordtype">size_t</span> elf_len, <span class="keywordtype">char</span>** errmsg);</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a1ce3eb22d45ec43436758a139ffc8c95">  194</a></span>&#160;    <a class="code" href="ubpf_8h.html#a1ce3eb22d45ec43436758a139ffc8c95">ubpf_exec</a>(<span class="keyword">const</span> <span class="keyword">struct</span> ubpf_vm* vm, <span class="keywordtype">void</span>* mem, <span class="keywordtype">size_t</span> mem_len, uint64_t* bpf_return_value);</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <a class="code" href="ubpf_8h.html#a6334115c4408267ec35087ade6128fa0">ubpf_jit_fn</a></div>
-<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a67b901bf6d169b6b28f818f15bd17cba">  207</a></span>&#160;    <a class="code" href="ubpf_8h.html#a67b901bf6d169b6b28f818f15bd17cba">ubpf_compile</a>(<span class="keyword">struct</span> ubpf_vm* vm, <span class="keywordtype">char</span>** errmsg);</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160; </div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="comment">/*</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment">     * Translate the eBPF byte code to x64 machine code, store in buffer, and</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment">     * write the resulting count of bytes to size.</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="comment">     *</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="comment">     * This must be called after registering all functions.</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="comment">     *</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="comment">     * Returns 0 on success, -1 on error. In case of error a pointer to the error</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="comment">     * message will be stored in &#39;errmsg&#39; and should be freed by the caller.</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="comment">     */</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="ubpf_8h.html#ab34e26c0a46366345df354ce992448c4">  233</a></span>&#160;    <a class="code" href="ubpf_8h.html#ab34e26c0a46366345df354ce992448c4">ubpf_translate</a>(<span class="keyword">struct</span> ubpf_vm* vm, uint8_t* buffer, <span class="keywordtype">size_t</span>* size, <span class="keywordtype">char</span>** errmsg);</div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160; </div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a0046484ecdb72363d0c5ae710e7b96c3">  247</a></span>&#160;    <a class="code" href="ubpf_8h.html#a0046484ecdb72363d0c5ae710e7b96c3">ubpf_set_unwind_function_index</a>(<span class="keyword">struct</span> ubpf_vm* vm, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> idx);</div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160; </div>
-<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="ubpf_8h.html#aeb0990b88e11d2a0ba89fbaf8086cc0f">  256</a></span>&#160;    <a class="code" href="ubpf_8h.html#aeb0990b88e11d2a0ba89fbaf8086cc0f">ubpf_set_registers</a>(<span class="keyword">struct</span> ubpf_vm* vm, uint64_t* regs);</div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160; </div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    uint64_t*</div>
-<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a2e649a921bff795712a97d3ad849f6e4">  265</a></span>&#160;    <a class="code" href="ubpf_8h.html#a2e649a921bff795712a97d3ad849f6e4">ubpf_get_registers</a>(<span class="keyword">const</span> <span class="keyword">struct</span> ubpf_vm* vm);</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160; </div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a3257e0611c177eeaba7053e2eca92701">  276</a></span>&#160;    <a class="code" href="ubpf_8h.html#a3257e0611c177eeaba7053e2eca92701">ubpf_set_pointer_secret</a>(<span class="keyword">struct</span> ubpf_vm* vm, uint64_t secret);</div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160; </div>
-<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a70fb644d080e8448c1db17bb99858391">  290</a></span>&#160;    <span class="keyword">typedef</span> uint64_t (*<a class="code" href="ubpf_8h.html#a70fb644d080e8448c1db17bb99858391">ubpf_data_relocation</a>)(</div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="keywordtype">void</span>* user_context,</div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        <span class="keyword">const</span> uint8_t* data,</div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        uint64_t data_size,</div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* symbol_name,</div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        uint64_t symbol_offset,</div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        uint64_t symbol_size);</div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160; </div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a6ce8c1133902da4629c53aa82c159611">  306</a></span>&#160;    <a class="code" href="ubpf_8h.html#a6ce8c1133902da4629c53aa82c159611">ubpf_register_data_relocation</a>(<span class="keyword">struct</span> ubpf_vm* vm, <span class="keywordtype">void</span>* user_context, <a class="code" href="ubpf_8h.html#a70fb644d080e8448c1db17bb99858391">ubpf_data_relocation</a> relocation);</div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160; </div>
-<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a64bd2f640f675e3eeff48ea52583d699">  308</a></span>&#160;    <span class="keyword">typedef</span> bool (*<a class="code" href="ubpf_8h.html#a64bd2f640f675e3eeff48ea52583d699">ubpf_bounds_check</a>)(<span class="keywordtype">void</span>* context, uint64_t addr, uint64_t size);</div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160; </div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a286aa9da7688d1327756e967eafc2f03">  320</a></span>&#160;    <a class="code" href="ubpf_8h.html#a286aa9da7688d1327756e967eafc2f03">ubpf_register_data_bounds_check</a>(<span class="keyword">struct</span> ubpf_vm* vm, <span class="keywordtype">void</span>* user_context, <a class="code" href="ubpf_8h.html#a64bd2f640f675e3eeff48ea52583d699">ubpf_bounds_check</a> bounds_check);</div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160; </div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;}</div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160; </div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keywordtype">int</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    ubpf_load_elf_ex(<span class="keyword">struct</span> ubpf_vm* vm, <span class="keyword">const</span> <span class="keywordtype">void</span>* elf, <span class="keywordtype">size_t</span> elf_len, <span class="keyword">const</span> <span class="keywordtype">char</span>* main_section_name, <span class="keywordtype">char</span>** errmsg);</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keywordtype">int</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a1ce3eb22d45ec43436758a139ffc8c95">  219</a></span>&#160;    <a class="code" href="ubpf_8h.html#a1ce3eb22d45ec43436758a139ffc8c95">ubpf_exec</a>(<span class="keyword">const</span> <span class="keyword">struct</span> ubpf_vm* vm, <span class="keywordtype">void</span>* mem, <span class="keywordtype">size_t</span> mem_len, uint64_t* bpf_return_value);</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160; </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <a class="code" href="ubpf_8h.html#a6334115c4408267ec35087ade6128fa0">ubpf_jit_fn</a></div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a67b901bf6d169b6b28f818f15bd17cba">  232</a></span>&#160;    <a class="code" href="ubpf_8h.html#a67b901bf6d169b6b28f818f15bd17cba">ubpf_compile</a>(<span class="keyword">struct</span> ubpf_vm* vm, <span class="keywordtype">char</span>** errmsg);</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <span class="comment">/*</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment">     * Translate the eBPF byte code to x64 machine code, store in buffer, and</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="comment">     * write the resulting count of bytes to size.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="comment">     *</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="comment">     * This must be called after registering all functions.</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="comment">     *</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="comment">     * Returns 0 on success, -1 on error. In case of error a pointer to the error</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="comment">     * message will be stored in &#39;errmsg&#39; and should be freed by the caller.</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="comment">     */</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160; </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keywordtype">int</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="ubpf_8h.html#ab34e26c0a46366345df354ce992448c4">  258</a></span>&#160;    <a class="code" href="ubpf_8h.html#ab34e26c0a46366345df354ce992448c4">ubpf_translate</a>(<span class="keyword">struct</span> ubpf_vm* vm, uint8_t* buffer, <span class="keywordtype">size_t</span>* size, <span class="keywordtype">char</span>** errmsg);</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160; </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keywordtype">int</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a0046484ecdb72363d0c5ae710e7b96c3">  272</a></span>&#160;    <a class="code" href="ubpf_8h.html#a0046484ecdb72363d0c5ae710e7b96c3">ubpf_set_unwind_function_index</a>(<span class="keyword">struct</span> ubpf_vm* vm, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> idx);</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160; </div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    <span class="keywordtype">void</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="ubpf_8h.html#aeb0990b88e11d2a0ba89fbaf8086cc0f">  281</a></span>&#160;    <a class="code" href="ubpf_8h.html#aeb0990b88e11d2a0ba89fbaf8086cc0f">ubpf_set_registers</a>(<span class="keyword">struct</span> ubpf_vm* vm, uint64_t* regs);</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160; </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    uint64_t*</div>
+<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a2e649a921bff795712a97d3ad849f6e4">  290</a></span>&#160;    <a class="code" href="ubpf_8h.html#a2e649a921bff795712a97d3ad849f6e4">ubpf_get_registers</a>(<span class="keyword">const</span> <span class="keyword">struct</span> ubpf_vm* vm);</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160; </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="keywordtype">int</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a3257e0611c177eeaba7053e2eca92701">  301</a></span>&#160;    <a class="code" href="ubpf_8h.html#a3257e0611c177eeaba7053e2eca92701">ubpf_set_pointer_secret</a>(<span class="keyword">struct</span> ubpf_vm* vm, uint64_t secret);</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160; </div>
+<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a70fb644d080e8448c1db17bb99858391">  315</a></span>&#160;    <span class="keyword">typedef</span> uint64_t (*<a class="code" href="ubpf_8h.html#a70fb644d080e8448c1db17bb99858391">ubpf_data_relocation</a>)(</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <span class="keywordtype">void</span>* user_context,</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <span class="keyword">const</span> uint8_t* data,</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        uint64_t data_size,</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* symbol_name,</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        uint64_t symbol_offset,</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        uint64_t symbol_size);</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160; </div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <span class="keywordtype">int</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a6ce8c1133902da4629c53aa82c159611">  331</a></span>&#160;    <a class="code" href="ubpf_8h.html#a6ce8c1133902da4629c53aa82c159611">ubpf_register_data_relocation</a>(<span class="keyword">struct</span> ubpf_vm* vm, <span class="keywordtype">void</span>* user_context, <a class="code" href="ubpf_8h.html#a70fb644d080e8448c1db17bb99858391">ubpf_data_relocation</a> relocation);</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160; </div>
+<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a64bd2f640f675e3eeff48ea52583d699">  333</a></span>&#160;    <span class="keyword">typedef</span> bool (*<a class="code" href="ubpf_8h.html#a64bd2f640f675e3eeff48ea52583d699">ubpf_bounds_check</a>)(<span class="keywordtype">void</span>* context, uint64_t addr, uint64_t size);</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160; </div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    <span class="keywordtype">int</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="ubpf_8h.html#a286aa9da7688d1327756e967eafc2f03">  345</a></span>&#160;    <a class="code" href="ubpf_8h.html#a286aa9da7688d1327756e967eafc2f03">ubpf_register_data_bounds_check</a>(<span class="keyword">struct</span> ubpf_vm* vm, <span class="keywordtype">void</span>* user_context, <a class="code" href="ubpf_8h.html#a64bd2f640f675e3eeff48ea52583d699">ubpf_bounds_check</a> bounds_check);</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160; </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;}</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160; </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="ttc" id="aubpf_8h_html_a0046484ecdb72363d0c5ae710e7b96c3"><div class="ttname"><a href="ubpf_8h.html#a0046484ecdb72363d0c5ae710e7b96c3">ubpf_set_unwind_function_index</a></div><div class="ttdeci">int ubpf_set_unwind_function_index(struct ubpf_vm *vm, unsigned int idx)</div><div class="ttdoc">Instruct the uBPF runtime to apply unwind-on-success semantics to a helper function....</div></div>
 <div class="ttc" id="aubpf_8h_html_a1ce3eb22d45ec43436758a139ffc8c95"><div class="ttname"><a href="ubpf_8h.html#a1ce3eb22d45ec43436758a139ffc8c95">ubpf_exec</a></div><div class="ttdeci">int ubpf_exec(const struct ubpf_vm *vm, void *mem, size_t mem_len, uint64_t *bpf_return_value)</div><div class="ttdoc">Execute a BPF program in the VM using the interpreter.</div></div>
 <div class="ttc" id="aubpf_8h_html_a286aa9da7688d1327756e967eafc2f03"><div class="ttname"><a href="ubpf_8h.html#a286aa9da7688d1327756e967eafc2f03">ubpf_register_data_bounds_check</a></div><div class="ttdeci">int ubpf_register_data_bounds_check(struct ubpf_vm *vm, void *user_context, ubpf_bounds_check bounds_check)</div><div class="ttdoc">Set a bounds check function for the VM.</div></div>
 <div class="ttc" id="aubpf_8h_html_a2e649a921bff795712a97d3ad849f6e4"><div class="ttname"><a href="ubpf_8h.html#a2e649a921bff795712a97d3ad849f6e4">ubpf_get_registers</a></div><div class="ttdeci">uint64_t * ubpf_get_registers(const struct ubpf_vm *vm)</div><div class="ttdoc">Retrieve the storage location for the BPF registers in the VM.</div></div>
 <div class="ttc" id="aubpf_8h_html_a3257e0611c177eeaba7053e2eca92701"><div class="ttname"><a href="ubpf_8h.html#a3257e0611c177eeaba7053e2eca92701">ubpf_set_pointer_secret</a></div><div class="ttdeci">int ubpf_set_pointer_secret(struct ubpf_vm *vm, uint64_t secret)</div><div class="ttdoc">Optional secret to improve ROP protection.</div></div>
 <div class="ttc" id="aubpf_8h_html_a6334115c4408267ec35087ade6128fa0"><div class="ttname"><a href="ubpf_8h.html#a6334115c4408267ec35087ade6128fa0">ubpf_jit_fn</a></div><div class="ttdeci">uint64_t(* ubpf_jit_fn)(void *mem, size_t mem_len)</div><div class="ttdoc">Opaque type for a uBPF JIT compiled function.</div><div class="ttdef"><b>Definition:</b> ubpf.h:64</div></div>
-<div class="ttc" id="aubpf_8h_html_a64bd2f640f675e3eeff48ea52583d699"><div class="ttname"><a href="ubpf_8h.html#a64bd2f640f675e3eeff48ea52583d699">ubpf_bounds_check</a></div><div class="ttdeci">bool(* ubpf_bounds_check)(void *context, uint64_t addr, uint64_t size)</div><div class="ttdef"><b>Definition:</b> ubpf.h:308</div></div>
+<div class="ttc" id="aubpf_8h_html_a64bd2f640f675e3eeff48ea52583d699"><div class="ttname"><a href="ubpf_8h.html#a64bd2f640f675e3eeff48ea52583d699">ubpf_bounds_check</a></div><div class="ttdeci">bool(* ubpf_bounds_check)(void *context, uint64_t addr, uint64_t size)</div><div class="ttdef"><b>Definition:</b> ubpf.h:333</div></div>
 <div class="ttc" id="aubpf_8h_html_a67b901bf6d169b6b28f818f15bd17cba"><div class="ttname"><a href="ubpf_8h.html#a67b901bf6d169b6b28f818f15bd17cba">ubpf_compile</a></div><div class="ttdeci">ubpf_jit_fn ubpf_compile(struct ubpf_vm *vm, char **errmsg)</div><div class="ttdoc">Compile a BPF program in the VM to native code.</div></div>
 <div class="ttc" id="aubpf_8h_html_a6ce8c1133902da4629c53aa82c159611"><div class="ttname"><a href="ubpf_8h.html#a6ce8c1133902da4629c53aa82c159611">ubpf_register_data_relocation</a></div><div class="ttdeci">int ubpf_register_data_relocation(struct ubpf_vm *vm, void *user_context, ubpf_data_relocation relocation)</div><div class="ttdoc">Set a relocation function for the VM.</div></div>
-<div class="ttc" id="aubpf_8h_html_a70fb644d080e8448c1db17bb99858391"><div class="ttname"><a href="ubpf_8h.html#a70fb644d080e8448c1db17bb99858391">ubpf_data_relocation</a></div><div class="ttdeci">uint64_t(* ubpf_data_relocation)(void *user_context, const uint8_t *data, uint64_t data_size, const char *symbol_name, uint64_t symbol_offset, uint64_t symbol_size)</div><div class="ttdoc">Data relocation function that is called by the VM when it encounters a R_BPF_64_64 relocation in the ...</div><div class="ttdef"><b>Definition:</b> ubpf.h:290</div></div>
+<div class="ttc" id="aubpf_8h_html_a70fb644d080e8448c1db17bb99858391"><div class="ttname"><a href="ubpf_8h.html#a70fb644d080e8448c1db17bb99858391">ubpf_data_relocation</a></div><div class="ttdeci">uint64_t(* ubpf_data_relocation)(void *user_context, const uint8_t *data, uint64_t data_size, const char *symbol_name, uint64_t symbol_offset, uint64_t symbol_size)</div><div class="ttdoc">Data relocation function that is called by the VM when it encounters a R_BPF_64_64 relocation in the ...</div><div class="ttdef"><b>Definition:</b> ubpf.h:315</div></div>
 <div class="ttc" id="aubpf_8h_html_a80938918080712ac0667359fd163f1a5"><div class="ttname"><a href="ubpf_8h.html#a80938918080712ac0667359fd163f1a5">ubpf_toggle_bounds_check</a></div><div class="ttdeci">bool ubpf_toggle_bounds_check(struct ubpf_vm *vm, bool enable)</div><div class="ttdoc">Enable / disable bounds_check. Bounds check is enabled by default, but it may be too restrictive.</div></div>
 <div class="ttc" id="aubpf_8h_html_a845988047e3c2fe9713e2f8a404d0751"><div class="ttname"><a href="ubpf_8h.html#a845988047e3c2fe9713e2f8a404d0751">ubpf_create</a></div><div class="ttdeci">struct ubpf_vm * ubpf_create(void)</div><div class="ttdoc">Create a new uBPF VM.</div></div>
 <div class="ttc" id="aubpf_8h_html_a8d32748c100c98d69dba8dcf0e9d4d0d"><div class="ttname"><a href="ubpf_8h.html#a8d32748c100c98d69dba8dcf0e9d4d0d">ubpf_load</a></div><div class="ttdeci">int ubpf_load(struct ubpf_vm *vm, const void *code, uint32_t code_len, char **errmsg)</div><div class="ttdoc">Load code into a VM. This must be done before calling ubpf_exec or ubpf_compile and after registering...</div></div>