<!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" lang="en-US"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=11"/> <meta name="generator" content="Doxygen 1.9.8"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libnx: include/switch/services/sm.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="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 id="projectrow"> <td id="projectalign"> <div id="projectname">libnx<span id="projectnumber"> v4.9.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.9.8 --> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ var searchBox = new SearchBox("searchBox", "search/",'.html'); /* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); /* @license-end */ </script> <div id="main-nav"></div> <!-- 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"> <div id="MSearchResults"> <div class="SRPage"> <div id="SRIndex"> <div id="SRResults"></div> <div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="NoMatches">No Matches</div> </div> </div> </div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_42bea3d40f1f1694e41a8f3166c98108.html">switch</a></li><li class="navelem"><a class="el" href="dir_04a7e0b94d44ce4fc7ca3462163fd33c.html">services</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#define-members">Macros</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"><div class="title">sm.h File Reference</div></div> </div><!--header--> <div class="contents"> <p><a class="el" href="structService.html" title="Service object structure.">Service</a> manager (sm) IPC wrapper. <a href="#details">More...</a></p> <div class="textblock"><code>#include "<a class="el" href="types_8h_source.html">../types.h</a>"</code><br /> <code>#include "<a class="el" href="svc_8h_source.html">../kernel/svc.h</a>"</code><br /> <code>#include "<a class="el" href="service_8h_source.html">../sf/service.h</a>"</code><br /> <code>#include "<a class="el" href="tipc_8h_source.html">../sf/tipc.h</a>"</code><br /> </div> <p><a href="sm_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 id="nested-classes" name="nested-classes"></a> Data Structures</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structSmServiceName.html">SmServiceName</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Structure representing a service name (null terminated, remaining characters set to zero). <a href="structSmServiceName.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:a3f4dc0df317770098fcad00a9d06f806" id="r_a3f4dc0df317770098fcad00a9d06f806"><td class="memItemLeft" align="right" valign="top"><a id="a3f4dc0df317770098fcad00a9d06f806" name="a3f4dc0df317770098fcad00a9d06f806"></a> #define </td><td class="memItemRight" valign="bottom"><b>__COPY_CHAR</b>(_n)    if (len > _n) name_encoded.name[_n] = name[_n]</td></tr> <tr class="separator:a3f4dc0df317770098fcad00a9d06f806"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:a15de72ad0c8325005e12c3b69b883dfc" id="r_a15de72ad0c8325005e12c3b69b883dfc"><td class="memItemLeft" align="right" valign="top"><a id="a15de72ad0c8325005e12c3b69b883dfc" name="a15de72ad0c8325005e12c3b69b883dfc"></a> static <a class="el" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> </td><td class="memItemRight" valign="bottom"><b>smServiceNameToU64</b> (<a class="el" href="structSmServiceName.html">SmServiceName</a> name)</td></tr> <tr class="memdesc:a15de72ad0c8325005e12c3b69b883dfc"><td class="mdescLeft"> </td><td class="mdescRight">Converts a service name into a 64-bit integer. <br /></td></tr> <tr class="separator:a15de72ad0c8325005e12c3b69b883dfc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3bf17ea8964cacdcc1f150496f60846d" id="r_a3bf17ea8964cacdcc1f150496f60846d"><td class="memItemLeft" align="right" valign="top"><a id="a3bf17ea8964cacdcc1f150496f60846d" name="a3bf17ea8964cacdcc1f150496f60846d"></a> static <a class="el" href="structSmServiceName.html">SmServiceName</a> </td><td class="memItemRight" valign="bottom"><b>smServiceNameFromU64</b> (<a class="el" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> name)</td></tr> <tr class="memdesc:a3bf17ea8964cacdcc1f150496f60846d"><td class="mdescLeft"> </td><td class="mdescRight">Converts a 64-bit integer into a service name. <br /></td></tr> <tr class="separator:a3bf17ea8964cacdcc1f150496f60846d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6f294f0e6b4fd79bf743bbe748f63686" id="r_a6f294f0e6b4fd79bf743bbe748f63686"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#a6f294f0e6b4fd79bf743bbe748f63686">smServiceNamesAreEqual</a> (<a class="el" href="structSmServiceName.html">SmServiceName</a> a, <a class="el" href="structSmServiceName.html">SmServiceName</a> b)</td></tr> <tr class="memdesc:a6f294f0e6b4fd79bf743bbe748f63686"><td class="mdescLeft"> </td><td class="mdescRight">Checks whether two service names are equal. <br /></td></tr> <tr class="separator:a6f294f0e6b4fd79bf743bbe748f63686"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a15007ddfa1ae8fbb4ce55e9f888c3035" id="r_a15007ddfa1ae8fbb4ce55e9f888c3035"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structSmServiceName.html">SmServiceName</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#a15007ddfa1ae8fbb4ce55e9f888c3035">smEncodeName</a> (const char *name)</td></tr> <tr class="memdesc:a15007ddfa1ae8fbb4ce55e9f888c3035"><td class="mdescLeft"> </td><td class="mdescRight">Encodes a service name string as a <a class="el" href="structSmServiceName.html">SmServiceName</a> structure. <br /></td></tr> <tr class="separator:a15007ddfa1ae8fbb4ce55e9f888c3035"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6444117b5110072d76272b71dcecaf7e" id="r_a6444117b5110072d76272b71dcecaf7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#a6444117b5110072d76272b71dcecaf7e">smInitialize</a> (void)</td></tr> <tr class="memdesc:a6444117b5110072d76272b71dcecaf7e"><td class="mdescLeft"> </td><td class="mdescRight">Initializes SM. <br /></td></tr> <tr class="separator:a6444117b5110072d76272b71dcecaf7e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7c1b3eb06f8d2bc751062f0923afe03d" id="r_a7c1b3eb06f8d2bc751062f0923afe03d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#a7c1b3eb06f8d2bc751062f0923afe03d">smExit</a> (void)</td></tr> <tr class="memdesc:a7c1b3eb06f8d2bc751062f0923afe03d"><td class="mdescLeft"> </td><td class="mdescRight">Uninitializes SM. <br /></td></tr> <tr class="separator:a7c1b3eb06f8d2bc751062f0923afe03d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abbae970503f69ff0074075a9ecf9298c" id="r_abbae970503f69ff0074075a9ecf9298c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#abbae970503f69ff0074075a9ecf9298c">smGetServiceWrapper</a> (<a class="el" href="structService.html">Service</a> *service_out, <a class="el" href="structSmServiceName.html">SmServiceName</a> name)</td></tr> <tr class="memdesc:abbae970503f69ff0074075a9ecf9298c"><td class="mdescLeft"> </td><td class="mdescRight">Requests a service from SM, allowing overrides. <br /></td></tr> <tr class="separator:abbae970503f69ff0074075a9ecf9298c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2a30d14a4d76f2491e346c338a1fe96e" id="r_a2a30d14a4d76f2491e346c338a1fe96e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#a2a30d14a4d76f2491e346c338a1fe96e">smGetServiceOriginal</a> (<a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> *handle_out, <a class="el" href="structSmServiceName.html">SmServiceName</a> name)</td></tr> <tr class="memdesc:a2a30d14a4d76f2491e346c338a1fe96e"><td class="mdescLeft"> </td><td class="mdescRight">Requests a service from SM, as an IPC session handle directly. <br /></td></tr> <tr class="separator:a2a30d14a4d76f2491e346c338a1fe96e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab6985610d040278db668e451bd921fdb" id="r_ab6985610d040278db668e451bd921fdb"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#ab6985610d040278db668e451bd921fdb">smGetService</a> (<a class="el" href="structService.html">Service</a> *service_out, const char *name)</td></tr> <tr class="memdesc:ab6985610d040278db668e451bd921fdb"><td class="mdescLeft"> </td><td class="mdescRight">Requests a service from SM. <br /></td></tr> <tr class="separator:ab6985610d040278db668e451bd921fdb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a200019faf902e5cd08809ee67a1fd71a" id="r_a200019faf902e5cd08809ee67a1fd71a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#a200019faf902e5cd08809ee67a1fd71a">smGetServiceOverride</a> (<a class="el" href="structSmServiceName.html">SmServiceName</a> name)</td></tr> <tr class="memdesc:a200019faf902e5cd08809ee67a1fd71a"><td class="mdescLeft"> </td><td class="mdescRight">Retrieves an overriden service in the homebrew environment. <br /></td></tr> <tr class="separator:a200019faf902e5cd08809ee67a1fd71a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a43fa5e877529ddc7fde0a38356d479bd" id="r_a43fa5e877529ddc7fde0a38356d479bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#a43fa5e877529ddc7fde0a38356d479bd">smRegisterService</a> (<a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> *handle_out, <a class="el" href="structSmServiceName.html">SmServiceName</a> name, bool is_light, <a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> max_sessions)</td></tr> <tr class="memdesc:a43fa5e877529ddc7fde0a38356d479bd"><td class="mdescLeft"> </td><td class="mdescRight">Creates and registers a new service within SM. <br /></td></tr> <tr class="separator:a43fa5e877529ddc7fde0a38356d479bd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0de0bc4f7a5399a239ff9c2a77d0f761" id="r_a0de0bc4f7a5399a239ff9c2a77d0f761"><td class="memItemLeft" align="right" valign="top"><a id="a0de0bc4f7a5399a239ff9c2a77d0f761" name="a0de0bc4f7a5399a239ff9c2a77d0f761"></a> <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><b>smRegisterServiceCmif</b> (<a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> *handle_out, <a class="el" href="structSmServiceName.html">SmServiceName</a> name, bool is_light, <a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> max_sessions)</td></tr> <tr class="memdesc:a0de0bc4f7a5399a239ff9c2a77d0f761"><td class="mdescLeft"> </td><td class="mdescRight">Same as <a class="el" href="sm_8h.html#a43fa5e877529ddc7fde0a38356d479bd">smRegisterService</a>, but always using cmif serialization. <br /></td></tr> <tr class="separator:a0de0bc4f7a5399a239ff9c2a77d0f761"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a517c7878f8b27ffc9456efbcce23a817" id="r_a517c7878f8b27ffc9456efbcce23a817"><td class="memItemLeft" align="right" valign="top"><a id="a517c7878f8b27ffc9456efbcce23a817" name="a517c7878f8b27ffc9456efbcce23a817"></a> <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><b>smRegisterServiceTipc</b> (<a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> *handle_out, <a class="el" href="structSmServiceName.html">SmServiceName</a> name, bool is_light, <a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> max_sessions)</td></tr> <tr class="memdesc:a517c7878f8b27ffc9456efbcce23a817"><td class="mdescLeft"> </td><td class="mdescRight">Same as <a class="el" href="sm_8h.html#a43fa5e877529ddc7fde0a38356d479bd">smRegisterService</a>, but always using tipc serialization. <br /></td></tr> <tr class="separator:a517c7878f8b27ffc9456efbcce23a817"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af7b921c0ac933f41bc3e919a6cae1dd6" id="r_af7b921c0ac933f41bc3e919a6cae1dd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#af7b921c0ac933f41bc3e919a6cae1dd6">smUnregisterService</a> (<a class="el" href="structSmServiceName.html">SmServiceName</a> name)</td></tr> <tr class="memdesc:af7b921c0ac933f41bc3e919a6cae1dd6"><td class="mdescLeft"> </td><td class="mdescRight">Unregisters a previously registered service in SM. <br /></td></tr> <tr class="separator:af7b921c0ac933f41bc3e919a6cae1dd6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab356865486d900b7b1547c574469ce22" id="r_ab356865486d900b7b1547c574469ce22"><td class="memItemLeft" align="right" valign="top"><a id="ab356865486d900b7b1547c574469ce22" name="ab356865486d900b7b1547c574469ce22"></a> <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><b>smUnregisterServiceCmif</b> (<a class="el" href="structSmServiceName.html">SmServiceName</a> name)</td></tr> <tr class="memdesc:ab356865486d900b7b1547c574469ce22"><td class="mdescLeft"> </td><td class="mdescRight">Same as <a class="el" href="sm_8h.html#af7b921c0ac933f41bc3e919a6cae1dd6">smUnregisterService</a>, but always using cmif serialization. <br /></td></tr> <tr class="separator:ab356865486d900b7b1547c574469ce22"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a40b98418133f9a7c3f1f4451fae7e4f1" id="r_a40b98418133f9a7c3f1f4451fae7e4f1"><td class="memItemLeft" align="right" valign="top"><a id="a40b98418133f9a7c3f1f4451fae7e4f1" name="a40b98418133f9a7c3f1f4451fae7e4f1"></a> <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><b>smUnregisterServiceTipc</b> (<a class="el" href="structSmServiceName.html">SmServiceName</a> name)</td></tr> <tr class="memdesc:a40b98418133f9a7c3f1f4451fae7e4f1"><td class="mdescLeft"> </td><td class="mdescRight">Same as <a class="el" href="sm_8h.html#af7b921c0ac933f41bc3e919a6cae1dd6">smUnregisterService</a>, but always using tipc serialization. <br /></td></tr> <tr class="separator:a40b98418133f9a7c3f1f4451fae7e4f1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae24cbdb302afbc4cc4ffae54d0d9d583" id="r_ae24cbdb302afbc4cc4ffae54d0d9d583"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#ae24cbdb302afbc4cc4ffae54d0d9d583">smDetachClient</a> (void)</td></tr> <tr class="memdesc:ae24cbdb302afbc4cc4ffae54d0d9d583"><td class="mdescLeft"> </td><td class="mdescRight">Detaches the current SM session. <br /></td></tr> <tr class="separator:ae24cbdb302afbc4cc4ffae54d0d9d583"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae5739e6fcb6f09ea7ab9ba416ea1171a" id="r_ae5739e6fcb6f09ea7ab9ba416ea1171a"><td class="memItemLeft" align="right" valign="top"><a id="ae5739e6fcb6f09ea7ab9ba416ea1171a" name="ae5739e6fcb6f09ea7ab9ba416ea1171a"></a> <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><b>smDetachClientCmif</b> (void)</td></tr> <tr class="memdesc:ae5739e6fcb6f09ea7ab9ba416ea1171a"><td class="mdescLeft"> </td><td class="mdescRight">Same as <a class="el" href="sm_8h.html#ae24cbdb302afbc4cc4ffae54d0d9d583">smDetachClient</a>, but always using cmif serialization. <br /></td></tr> <tr class="separator:ae5739e6fcb6f09ea7ab9ba416ea1171a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7791785c381a7260045b16986ca1d048" id="r_a7791785c381a7260045b16986ca1d048"><td class="memItemLeft" align="right" valign="top"><a id="a7791785c381a7260045b16986ca1d048" name="a7791785c381a7260045b16986ca1d048"></a> <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><b>smDetachClientTipc</b> (void)</td></tr> <tr class="memdesc:a7791785c381a7260045b16986ca1d048"><td class="mdescLeft"> </td><td class="mdescRight">Same as <a class="el" href="sm_8h.html#ae24cbdb302afbc4cc4ffae54d0d9d583">smDetachClient</a>, but always using tipc serialization. <br /></td></tr> <tr class="separator:a7791785c381a7260045b16986ca1d048"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a71d15ce747ad1affe29cba7399323d06" id="r_a71d15ce747ad1affe29cba7399323d06"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structService.html">Service</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#a71d15ce747ad1affe29cba7399323d06">smGetServiceSession</a> (void)</td></tr> <tr class="memdesc:a71d15ce747ad1affe29cba7399323d06"><td class="mdescLeft"> </td><td class="mdescRight">Gets the <a class="el" href="structService.html" title="Service object structure.">Service</a> session used to communicate with SM. <br /></td></tr> <tr class="separator:a71d15ce747ad1affe29cba7399323d06"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a07e938f3e6c675ed97035ca7c23154d5" id="r_a07e938f3e6c675ed97035ca7c23154d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structTipcService.html">TipcService</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#a07e938f3e6c675ed97035ca7c23154d5">smGetServiceSessionTipc</a> (void)</td></tr> <tr class="memdesc:a07e938f3e6c675ed97035ca7c23154d5"><td class="mdescLeft"> </td><td class="mdescRight">Gets the <a class="el" href="structTipcService.html" title="tipc Service object structure">TipcService</a> session used to communicate with SM. <br /></td></tr> <tr class="separator:a07e938f3e6c675ed97035ca7c23154d5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2616fba3d0f6ab8a4b4a2e9288221504" id="r_a2616fba3d0f6ab8a4b4a2e9288221504"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="sm_8h.html#a2616fba3d0f6ab8a4b4a2e9288221504">smAddOverrideHandle</a> (<a class="el" href="structSmServiceName.html">SmServiceName</a> name, <a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> handle)</td></tr> <tr class="memdesc:a2616fba3d0f6ab8a4b4a2e9288221504"><td class="mdescLeft"> </td><td class="mdescRight">Overrides a service with a custom IPC service handle. <br /></td></tr> <tr class="separator:a2616fba3d0f6ab8a4b4a2e9288221504"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p><a class="el" href="structService.html" title="Service object structure.">Service</a> manager (sm) IPC wrapper. </p> <dl class="section author"><dt>Author</dt><dd>plutoo </dd> <dd> yellows8 </dd></dl> <dl class="section copyright"><dt>Copyright</dt><dd>libnx Authors </dd></dl> </div><h2 class="groupheader">Function Documentation</h2> <a id="a2616fba3d0f6ab8a4b4a2e9288221504" name="a2616fba3d0f6ab8a4b4a2e9288221504"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2616fba3d0f6ab8a4b4a2e9288221504">◆ </a></span>smAddOverrideHandle()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void smAddOverrideHandle </td> <td>(</td> <td class="paramtype"><a class="el" href="structSmServiceName.html">SmServiceName</a> </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> </td> <td class="paramname"><em>handle</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Overrides a service with a custom IPC service handle. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name of the service. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>IPC session handle. </td></tr> </table> </dd> </dl> </div> </div> <a id="ae24cbdb302afbc4cc4ffae54d0d9d583" name="ae24cbdb302afbc4cc4ffae54d0d9d583"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae24cbdb302afbc4cc4ffae54d0d9d583">◆ </a></span>smDetachClient()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> smDetachClient </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Detaches the current SM session. </p> <dl class="section note"><dt>Note</dt><dd>After this function is called, the rest of the SM API cannot be used. </dd> <dd> Only available on [11.0.0-11.0.1], or Atmosphère. </dd></dl> </div> </div> <a id="a15007ddfa1ae8fbb4ce55e9f888c3035" name="a15007ddfa1ae8fbb4ce55e9f888c3035"></a> <h2 class="memtitle"><span class="permalink"><a href="#a15007ddfa1ae8fbb4ce55e9f888c3035">◆ </a></span>smEncodeName()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="structSmServiceName.html">SmServiceName</a> smEncodeName </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>name</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Encodes a service name string as a <a class="el" href="structSmServiceName.html">SmServiceName</a> structure. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name of the service. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Encoded name. </dd></dl> </div> </div> <a id="a7c1b3eb06f8d2bc751062f0923afe03d" name="a7c1b3eb06f8d2bc751062f0923afe03d"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7c1b3eb06f8d2bc751062f0923afe03d">◆ </a></span>smExit()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void smExit </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Uninitializes SM. </p> <dl class="section return"><dt>Returns</dt><dd>Result code. </dd></dl> <dl class="section note"><dt>Note</dt><dd>This function is already handled in the default application exit code (after main() returns). </dd></dl> </div> </div> <a id="ab6985610d040278db668e451bd921fdb" name="ab6985610d040278db668e451bd921fdb"></a> <h2 class="memtitle"><span class="permalink"><a href="#ab6985610d040278db668e451bd921fdb">◆ </a></span>smGetService()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> smGetService </td> <td>(</td> <td class="paramtype"><a class="el" href="structService.html">Service</a> * </td> <td class="paramname"><em>service_out</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>name</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Requests a service from SM. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">service_out</td><td><a class="el" href="structService.html" title="Service object structure.">Service</a> structure which will be filled in. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name of the service to request (as a string). </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Result code. </dd></dl> </div> </div> <a id="a2a30d14a4d76f2491e346c338a1fe96e" name="a2a30d14a4d76f2491e346c338a1fe96e"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2a30d14a4d76f2491e346c338a1fe96e">◆ </a></span>smGetServiceOriginal()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> smGetServiceOriginal </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> * </td> <td class="paramname"><em>handle_out</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structSmServiceName.html">SmServiceName</a> </td> <td class="paramname"><em>name</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Requests a service from SM, as an IPC session handle directly. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">handle_out</td><td>Variable containing IPC session handle. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name of the service to request. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Result code. </dd></dl> </div> </div> <a id="a200019faf902e5cd08809ee67a1fd71a" name="a200019faf902e5cd08809ee67a1fd71a"></a> <h2 class="memtitle"><span class="permalink"><a href="#a200019faf902e5cd08809ee67a1fd71a">◆ </a></span>smGetServiceOverride()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> smGetServiceOverride </td> <td>(</td> <td class="paramtype"><a class="el" href="structSmServiceName.html">SmServiceName</a> </td> <td class="paramname"><em>name</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Retrieves an overriden service in the homebrew environment. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name of the service to request. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>IPC session handle. </dd></dl> </div> </div> <a id="a71d15ce747ad1affe29cba7399323d06" name="a71d15ce747ad1affe29cba7399323d06"></a> <h2 class="memtitle"><span class="permalink"><a href="#a71d15ce747ad1affe29cba7399323d06">◆ </a></span>smGetServiceSession()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structService.html">Service</a> * smGetServiceSession </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the <a class="el" href="structService.html" title="Service object structure.">Service</a> session used to communicate with SM. </p> <dl class="section return"><dt>Returns</dt><dd>Pointer to service session used to communicate with SM. </dd></dl> </div> </div> <a id="a07e938f3e6c675ed97035ca7c23154d5" name="a07e938f3e6c675ed97035ca7c23154d5"></a> <h2 class="memtitle"><span class="permalink"><a href="#a07e938f3e6c675ed97035ca7c23154d5">◆ </a></span>smGetServiceSessionTipc()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structTipcService.html">TipcService</a> * smGetServiceSessionTipc </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the <a class="el" href="structTipcService.html" title="tipc Service object structure">TipcService</a> session used to communicate with SM. </p> <dl class="section return"><dt>Returns</dt><dd>Pointer to tipc service session used to communicate with SM. </dd></dl> <dl class="section note"><dt>Note</dt><dd>Only available on [12.0.0+], or Atmosphère. </dd></dl> </div> </div> <a id="abbae970503f69ff0074075a9ecf9298c" name="abbae970503f69ff0074075a9ecf9298c"></a> <h2 class="memtitle"><span class="permalink"><a href="#abbae970503f69ff0074075a9ecf9298c">◆ </a></span>smGetServiceWrapper()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> smGetServiceWrapper </td> <td>(</td> <td class="paramtype"><a class="el" href="structService.html">Service</a> * </td> <td class="paramname"><em>service_out</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structSmServiceName.html">SmServiceName</a> </td> <td class="paramname"><em>name</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Requests a service from SM, allowing overrides. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">service_out</td><td><a class="el" href="structService.html" title="Service object structure.">Service</a> structure which will be filled in. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name of the service to request. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Result code. </dd></dl> </div> </div> <a id="a6444117b5110072d76272b71dcecaf7e" name="a6444117b5110072d76272b71dcecaf7e"></a> <h2 class="memtitle"><span class="permalink"><a href="#a6444117b5110072d76272b71dcecaf7e">◆ </a></span>smInitialize()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> smInitialize </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Initializes SM. </p> <dl class="section return"><dt>Returns</dt><dd>Result code. </dd></dl> <dl class="section note"><dt>Note</dt><dd>This function is already called in the default application startup code (before main() is called). </dd></dl> </div> </div> <a id="a43fa5e877529ddc7fde0a38356d479bd" name="a43fa5e877529ddc7fde0a38356d479bd"></a> <h2 class="memtitle"><span class="permalink"><a href="#a43fa5e877529ddc7fde0a38356d479bd">◆ </a></span>smRegisterService()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> smRegisterService </td> <td>(</td> <td class="paramtype"><a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> * </td> <td class="paramname"><em>handle_out</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structSmServiceName.html">SmServiceName</a> </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>is_light</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> </td> <td class="paramname"><em>max_sessions</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates and registers a new service within SM. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">handle_out</td><td>Variable containing IPC port handle. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name of the service. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">is_light</td><td>"Is light" </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">max_sessions</td><td>Maximum number of concurrent sessions that the service will accept. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Result code. </dd></dl> </div> </div> <a id="a6f294f0e6b4fd79bf743bbe748f63686" name="a6f294f0e6b4fd79bf743bbe748f63686"></a> <h2 class="memtitle"><span class="permalink"><a href="#a6f294f0e6b4fd79bf743bbe748f63686">◆ </a></span>smServiceNamesAreEqual()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static bool smServiceNamesAreEqual </td> <td>(</td> <td class="paramtype"><a class="el" href="structSmServiceName.html">SmServiceName</a> </td> <td class="paramname"><em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structSmServiceName.html">SmServiceName</a> </td> <td class="paramname"><em>b</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Checks whether two service names are equal. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>First name. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Second name. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Comparison result. </dd></dl> </div> </div> <a id="af7b921c0ac933f41bc3e919a6cae1dd6" name="af7b921c0ac933f41bc3e919a6cae1dd6"></a> <h2 class="memtitle"><span class="permalink"><a href="#af7b921c0ac933f41bc3e919a6cae1dd6">◆ </a></span>smUnregisterService()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> smUnregisterService </td> <td>(</td> <td class="paramtype"><a class="el" href="structSmServiceName.html">SmServiceName</a> </td> <td class="paramname"><em>name</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Unregisters a previously registered service in SM. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name of the service. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Result code. </dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> 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.8 </small></address> </body> </html>