2020-07-25 23:50:03 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=9" / >
2021-04-12 20:54:38 +00:00
< meta name = "generator" content = "Doxygen 1.9.1" / >
2020-07-25 23:50:03 +00:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > MyOS Kernel: kernel/rpc.h File Reference< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< link href = "navtree.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "resize.js" > < / script >
< script type = "text/javascript" src = "navtreedata.js" > < / script >
< script type = "text/javascript" src = "navtree.js" > < / script >
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "search/searchdata.js" > < / script >
< script type = "text/javascript" src = "search/search.js" > < / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr style = "height: 56px;" >
< td id = "projectalign" style = "padding-left: 0.5em;" >
< div id = "projectname" > MyOS Kernel
< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
2021-04-12 20:54:38 +00:00
<!-- Generated by Doxygen 1.9.1 -->
2020-07-25 23:50:03 +00:00
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
2021-04-12 20:54:38 +00:00
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
2020-07-25 23:50:03 +00:00
/* @license-end */
< / script >
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */< / script >
< div id = "main-nav" > < / div >
< / div > <!-- top -->
< div id = "side-nav" class = "ui-resizable side-nav-resizable" >
< div id = "nav-tree" >
< div id = "nav-tree-contents" >
< div id = "nav-sync" class = "sync" > < / div >
< / div >
< / div >
< div id = "splitbar" style = "-moz-user-select:none;"
class="ui-resizable-handle">
< / div >
< / div >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('rpc_8h.html',''); initResizable(); });
/* @license-end */
< / script >
< div id = "doc-content" >
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< iframe src = "javascript:void(0)" frameborder = "0"
name="MSearchResults" id="MSearchResults">
< / iframe >
< / div >
< div class = "header" >
< div class = "summary" >
2020-08-02 19:37:55 +00:00
< a href = "#nested-classes" > Data Structures< / a > |
< a href = "#typedef-members" > Typedefs< / a > |
< a href = "#func-members" > Functions< / a > < / div >
2020-07-25 23:50:03 +00:00
< div class = "headertitle" >
< div class = "title" > rpc.h File Reference< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
2020-08-02 19:37:55 +00:00
< div class = "textblock" > < code > #include < stddef.h> < / code > < br / >
< / div >
2020-07-25 23:50:03 +00:00
< p > < a href = "rpc_8h_source.html" > Go to the source code of this file.< / a > < / p >
< table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "nested-classes" > < / a >
Data Structures< / h2 > < / td > < / tr >
2020-08-02 19:37:55 +00:00
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > struct   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "structrpc__func__info.html" > rpc_func_info< / a > < / td > < / tr >
2020-07-25 23:50:03 +00:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2020-08-02 19:37:55 +00:00
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "typedef-members" > < / a >
Typedefs< / h2 > < / td > < / tr >
2020-08-23 13:52:37 +00:00
< tr class = "memitem:a174fb9504d50a112bf0a1f19f4b86d08" > < td class = "memItemLeft" align = "right" valign = "top" > < a id = "a174fb9504d50a112bf0a1f19f4b86d08" > < / a >
typedef void(*  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "rpc_8h.html#a174fb9504d50a112bf0a1f19f4b86d08" > rpc_func< / a > ) (void *)< / td > < / tr >
< tr class = "memdesc:a174fb9504d50a112bf0a1f19f4b86d08" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Type of an RPC function. < br / > < / td > < / tr >
< tr class = "separator:a174fb9504d50a112bf0a1f19f4b86d08" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2020-08-02 19:37:55 +00:00
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
< tr class = "memitem:a3ac7976d394a26bba6522a4e909cfe77" > < td class = "memItemLeft" align = "right" valign = "top" > void *  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "rpc_8h.html#a3ac7976d394a26bba6522a4e909cfe77" > kernel_rpc_call< / a > (pid_t pid, char *name, void *buf, size_t size)< / td > < / tr >
< tr class = "separator:a3ac7976d394a26bba6522a4e909cfe77" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2020-08-23 13:52:37 +00:00
< tr class = "memitem:a113d2ed47245cf53ea3f3813466982b5" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "rpc_8h.html#a113d2ed47245cf53ea3f3813466982b5" > kernel_rpc_register_func< / a > (char *name, < a class = "el" href = "rpc_8h.html#a174fb9504d50a112bf0a1f19f4b86d08" > rpc_func< / a > code)< / td > < / tr >
2020-08-02 19:37:55 +00:00
< tr class = "separator:a113d2ed47245cf53ea3f3813466982b5" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aaaaaf872d3b77af2dd93fdbb97f5f68e" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "rpc_8h.html#aaaaaf872d3b77af2dd93fdbb97f5f68e" > kernel_rpc_deallocate_buf< / a > (void *buf, size_t size)< / td > < / tr >
< tr class = "separator:aaaaaf872d3b77af2dd93fdbb97f5f68e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aeb324d12d21fdfccb80fd958755f8861" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "rpc_8h.html#aeb324d12d21fdfccb80fd958755f8861" > kernel_rpc_return< / a > (void *buf, size_t size)< / td > < / tr >
< tr class = "separator:aeb324d12d21fdfccb80fd958755f8861" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:acff994c080b0e6c8b1c660a0dd4af773" > < td class = "memItemLeft" align = "right" valign = "top" > size_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "rpc_8h.html#acff994c080b0e6c8b1c660a0dd4af773" > kernel_get_num_rpc_funcs< / a > (pid_t pid)< / td > < / tr >
< tr class = "separator:acff994c080b0e6c8b1c660a0dd4af773" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a20588e9084f6b8f78b60980e3e0ae481" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "rpc_8h.html#a20588e9084f6b8f78b60980e3e0ae481" > kernel_rpc_mark_as_init< / a > ()< / td > < / tr >
< tr class = "separator:a20588e9084f6b8f78b60980e3e0ae481" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2020-08-23 13:52:37 +00:00
< tr class = "memitem:ae33c028e34273044697eb2771fadcf7d" > < td class = "memItemLeft" align = "right" valign = "top" > char  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "rpc_8h.html#ae33c028e34273044697eb2771fadcf7d" > kernel_rpc_is_init< / a > (pid_t pid)< / td > < / tr >
< tr class = "separator:ae33c028e34273044697eb2771fadcf7d" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2020-07-25 23:50:03 +00:00
< / table >
2020-08-02 19:37:55 +00:00
< h2 class = "groupheader" > Function Documentation< / h2 >
< a id = "acff994c080b0e6c8b1c660a0dd4af773" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#acff994c080b0e6c8b1c660a0dd4af773" > ◆ < / a > < / span > kernel_get_num_rpc_funcs()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > size_t kernel_get_num_rpc_funcs < / td >
< td > (< / td >
< td class = "paramtype" > pid_t  < / td >
< td class = "paramname" > < em > pid< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Get the number of RPC functions a process has registers < / p > < dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > pid< / td > < td > The PID of the process < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > the number of RPC functions the process has registered < / dd > < / dl >
< / div >
< / div >
< a id = "a3ac7976d394a26bba6522a4e909cfe77" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a3ac7976d394a26bba6522a4e909cfe77" > ◆ < / a > < / span > kernel_rpc_call()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void* kernel_rpc_call < / td >
< td > (< / td >
< td class = "paramtype" > pid_t  < / td >
< td class = "paramname" > < em > pid< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > char *  < / td >
< td class = "paramname" > < em > name< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > void *  < / td >
< td class = "paramname" > < em > buf< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > size< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Call an RPC function < / p > < dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > pid< / td > < td > The PID of the process with the RPC function < / td > < / tr >
< tr > < td class = "paramname" > name< / td > < td > The name of the function to call < / td > < / tr >
< tr > < td class = "paramname" > buf< / td > < td > The argument buffer to provide < / td > < / tr >
< tr > < td class = "paramname" > size< / td > < td > The size of the argument buffer < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > the return buffer of the RPC functiom < / dd > < / dl >
< / div >
< / div >
< a id = "aaaaaf872d3b77af2dd93fdbb97f5f68e" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aaaaaf872d3b77af2dd93fdbb97f5f68e" > ◆ < / a > < / span > kernel_rpc_deallocate_buf()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void kernel_rpc_deallocate_buf < / td >
< td > (< / td >
< td class = "paramtype" > void *  < / td >
< td class = "paramname" > < em > buf< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > size< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Deallocate an RPC return buffer < / p > < dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > buf< / td > < td > The buffer to deallocate < / td > < / tr >
< tr > < td class = "paramname" > size< / td > < td > The size of the buffer to deallocate < / td > < / tr >
< / table >
< / dd >
< / dl >
2020-08-23 13:52:37 +00:00
< / div >
< / div >
< a id = "ae33c028e34273044697eb2771fadcf7d" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ae33c028e34273044697eb2771fadcf7d" > ◆ < / a > < / span > kernel_rpc_is_init()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > char kernel_rpc_is_init < / td >
< td > (< / td >
< td class = "paramtype" > pid_t  < / td >
< td class = "paramname" > < em > pid< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Check if a process is ready to accept RPC calls < / p > < dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > pid< / td > < td > The pid to check < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > whether the process is ready < / dd > < / dl >
2020-08-02 19:37:55 +00:00
< / div >
< / div >
< a id = "a20588e9084f6b8f78b60980e3e0ae481" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a20588e9084f6b8f78b60980e3e0ae481" > ◆ < / a > < / span > kernel_rpc_mark_as_init()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void kernel_rpc_mark_as_init < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Mark the current process as ready to accept RPC calls < / p >
< / div >
< / div >
< a id = "a113d2ed47245cf53ea3f3813466982b5" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a113d2ed47245cf53ea3f3813466982b5" > ◆ < / a > < / span > kernel_rpc_register_func()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void kernel_rpc_register_func < / td >
< td > (< / td >
< td class = "paramtype" > char *  < / td >
< td class = "paramname" > < em > name< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2020-08-23 13:52:37 +00:00
< td class = "paramtype" > < a class = "el" href = "rpc_8h.html#a174fb9504d50a112bf0a1f19f4b86d08" > rpc_func< / a >   < / td >
2020-08-02 19:37:55 +00:00
< td class = "paramname" > < em > code< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Register an RPC function < / p > < dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > name< / td > < td > The name of the function < / td > < / tr >
< tr > < td class = "paramname" > code< / td > < td > The code of the function < / td > < / tr >
< / table >
< / dd >
< / dl >
< / div >
< / div >
< a id = "aeb324d12d21fdfccb80fd958755f8861" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aeb324d12d21fdfccb80fd958755f8861" > ◆ < / a > < / span > kernel_rpc_return()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void kernel_rpc_return < / td >
< td > (< / td >
< td class = "paramtype" > void *  < / td >
< td class = "paramname" > < em > buf< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > size< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Set the RPC return buffer for the calling thread & unblock the calling thread < / p > < dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > buf< / td > < td > The return buffer < / td > < / tr >
< tr > < td class = "paramname" > size< / td > < td > The size of the return buffer < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section note" > < dt > Note< / dt > < dd > This function must only be called from an RPC thread < / dd > < / dl >
< / div >
< / div >
2020-07-25 23:50:03 +00:00
< / div > <!-- contents -->
< / div > <!-- doc - content -->
<!-- start footer part -->
< div id = "nav-path" class = "navpath" > <!-- id is needed for treeview function! -->
< ul >
< li class = "navelem" > < a class = "el" href = "dir_dc43877d82dd332f9fb2071fcca799d6.html" > kernel< / a > < / li > < li class = "navelem" > < a class = "el" href = "rpc_8h.html" > rpc.h< / a > < / li >
2021-04-12 20:54:38 +00:00
< li class = "footer" > Generated by < a href = "https://www.doxygen.org/index.html" > < img class = "footer" src = "doxygen.svg" width = "104" height = "31" alt = "doxygen" / > < / a > 1.9.1 < / li >
2020-07-25 23:50:03 +00:00
< / ul >
< / div >
< / body >
< / html >