1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"[]> 2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <meta http-equiv="Content-Style-Type" content="text/css" /> 6 <link rel="stylesheet" href="../css/manpage.css" type="text/css" /> 7 <style type="text/css"><!-- 8 span.static_style 9 { 10 font-size : 8pt; 11 color : white; 12 font-weight : bold; 13 background : #44f; 14 border-left : solid 1px #aaf; 15 border-top : solid 1px #aaf; 16 border-right : solid 1px #00c; 17 border-bottom : solid 1px #00c; 18 padding-left : 2px; 19 padding-right : 2px; 20 } 21 span.virtual_style 22 { 23 font-size : 8pt; 24 color : white; 25 font-weight : bold; 26 background : #0a0; 27 border-left : solid 1px #0f0; 28 border-top : solid 1px #0f0; 29 border-right : solid 1px #060; 30 border-bottom : solid 1px #060; 31 padding-left : 2px; 32 padding-right : 2px; 33 } 34 span.protected_style 35 { 36 font-size : 8pt; 37 color : white; 38 font-weight : bold; 39 background : #444; 40 border-left : solid 1px #ccc; 41 border-top : solid 1px #ccc; 42 border-right : solid 1px #222; 43 border-bottom : solid 1px #222; 44 padding-left : 2px; 45 padding-right : 2px; 46 } 47 --></style> 48<title>C-Language Wrappers</title> 49 </head> 50 <body> 51<h1>C-Language Wrappers</h1> 52<h2>Description</h2> 53 <div class="section"> 54<p>The CTR-SDK APIs are mostly written in C++. C++ APIs cannot be called directly from C-language files.</p><p>The CTR-SDK therefore provides wrappers that allow you to call the C++ APIs from C source files.</p> 55 </div> 56<h3>Mutex Example</h3> 57<div class="section"><p>In C++, you would use the <a href="../nn/os/Mutex/Overview.html"><CODE>nn::os::Mutex</CODE></a> class to use mutexes. The mutex class maintains mutex objects internally.</p><p>The names of the wrappers that allow this class to be used in C begin with <CODE>nnosMutex</CODE>, as shown in the examples below. These functions have a 1:1 correspondence with the C++ methods.</p> 58<p> 59<ul> 60<li><CODE><a href="../nn_os_Mutex_c/nnosMutexInitialize.html">nnosMutexInitialize</a> → <a href="../nn/os/Mutex/Initialize.html">nn::os::Mutex::Initialize</a></CODE></li> 61<li><CODE><a href="../nn_os_Mutex_c/nnosMutexLock.html">nnosMutexLock</a> → <a href="../nn/os/Mutex/Lock.html">nn::os::Mutex::Lock</a></CODE></li> 62<li><CODE><a href="../nn_os_Mutex_c/nnosMutexTryLock.html">nnosMutexTryLock</a> → <a href="../nn/os/Mutex/TryLock.html">nn::os::Mutex::TryLock</a></CODE></li> 63<li><CODE><a href="../nn_os_Mutex_c/nnosMutexUnlock.html">nnosMutexUnlock</a> → <a href="../nn/os/Mutex/Unlock.html">nn::os::Mutex::Unlock</a></CODE></li> 64<li><CODE><a href="../nn_os_Mutex_c/nnosMutexInitialize.html">nnosMutexInitialize</a> → <a href="../nn/os/Mutex/Initialize.html">nn::os::Mutex::Initialize</a></CODE></li> 65</ul> 66For more details on a C wrapper function, see the explanation for the corresponding class method.</p><p>The <a href="../nnosMutex/Overview.html"><CODE>nnosMutex</CODE></a> structure, the data type that stores mutex objects in C, is an exception. This structure is actually a class instance under the hood, so it cannot be referenced directly from the C language.</p> 67</div> 68<h2>Revision History</h2> 69 <div class="section"> 70 <dl class="history"> 71 <dt>2011/06/16</dt> 72<dd>Deleted the list title.<br /> 73 </dd> 74 <dt>2010/01/07</dt> 75<dd>Initial version.<br /> 76 </dd> 77 </dl> 78 </div> 79 <hr><p>CONFIDENTIAL</p></body> 80</html> 81