namespacetk.xml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475
  1. <?xml version='1.0' encoding='UTF-8' standalone='no'?>
  2. <doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.18.0" xml:lang="ja">
  3. <compounddef id="namespacetk" kind="namespace" language="C++">
  4. <compoundname>tk</compoundname>
  5. <innerclass refid="classtk_1_1_actor" prot="public">tk::Actor</innerclass>
  6. <innerclass refid="classtk_1_1_event_hub" prot="public">tk::EventHub</innerclass>
  7. <innerclass refid="classtk_1_1_lock_guard" prot="public">tk::LockGuard</innerclass>
  8. <innerclass refid="structtk_1_1_message" prot="public">tk::Message</innerclass>
  9. <innerclass refid="classtk_1_1_mutex" prot="public">tk::Mutex</innerclass>
  10. <innerclass refid="classtk_1_1_preempt_guard" prot="public">tk::PreemptGuard</innerclass>
  11. <innerclass refid="classtk_1_1_semaphore" prot="public">tk::Semaphore</innerclass>
  12. <innerclass refid="structtk_1_1_task_handle" prot="public">tk::TaskHandle</innerclass>
  13. <innernamespace refid="namespacetk_1_1detail">tk::detail</innernamespace>
  14. <sectiondef kind="enum">
  15. <memberdef kind="enum" id="namespacetk_1a3d47fbd63b95ed3b46bed70c2fa1e50e" prot="public" static="no" strong="no">
  16. <type>uint32_t</type>
  17. <name>Prio</name>
  18. <qualifiedname>tk::Prio</qualifiedname>
  19. <enumvalue id="namespacetk_1a3d47fbd63b95ed3b46bed70c2fa1e50eabbefd771d1fb2ac0708c1bd5371e5a75" prot="public">
  20. <name>PRIO_REALTIME</name>
  21. <initializer>= 1</initializer>
  22. <briefdescription>
  23. <para>リアルタイム最優先 </para>
  24. </briefdescription>
  25. <detaileddescription>
  26. </detaileddescription>
  27. </enumvalue>
  28. <enumvalue id="namespacetk_1a3d47fbd63b95ed3b46bed70c2fa1e50ea614240a3a3fc1094c6daa0fdca92ba37" prot="public">
  29. <name>PRIO_HIGH</name>
  30. <initializer>= 5</initializer>
  31. <briefdescription>
  32. <para>高優先度 </para>
  33. </briefdescription>
  34. <detaileddescription>
  35. </detaileddescription>
  36. </enumvalue>
  37. <enumvalue id="namespacetk_1a3d47fbd63b95ed3b46bed70c2fa1e50ea0e6779023b97999c2cef66ba1d4d1fca" prot="public">
  38. <name>PRIO_NORMAL</name>
  39. <initializer>= 9</initializer>
  40. <briefdescription>
  41. <para>通常優先度 (デフォルト) </para>
  42. </briefdescription>
  43. <detaileddescription>
  44. </detaileddescription>
  45. </enumvalue>
  46. <enumvalue id="namespacetk_1a3d47fbd63b95ed3b46bed70c2fa1e50eacf084edcfe985b77c205a37c3bd60519" prot="public">
  47. <name>PRIO_LOW</name>
  48. <initializer>= 13</initializer>
  49. <briefdescription>
  50. <para>低優先度 </para>
  51. </briefdescription>
  52. <detaileddescription>
  53. </detaileddescription>
  54. </enumvalue>
  55. <briefdescription>
  56. <para>タスクの優先度レベル </para>
  57. </briefdescription>
  58. <detaileddescription>
  59. <para>数値が小さいほど高優先度です。0..15 の範囲で指定します (15 はアイドルタスク専用)。 </para>
  60. </detaileddescription>
  61. <inbodydescription>
  62. </inbodydescription>
  63. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="39" column="1" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" bodystart="39" bodyend="44"/>
  64. </memberdef>
  65. </sectiondef>
  66. <sectiondef kind="typedef">
  67. <memberdef kind="typedef" id="namespacetk_1a8908cf1e54cdc4e14ac3003126722cfc" prot="public" static="no">
  68. <type>void(*)(void *arg)</type>
  69. <definition>using tk::TaskFn = void (*)(void* arg)</definition>
  70. <argsstring></argsstring>
  71. <name>TaskFn</name>
  72. <qualifiedname>tk::TaskFn</qualifiedname>
  73. <briefdescription>
  74. </briefdescription>
  75. <detaileddescription>
  76. <para>タスク関数のシグネチャ (void func(void* arg)) </para>
  77. </detaileddescription>
  78. <inbodydescription>
  79. </inbodydescription>
  80. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="32" column="1" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" bodystart="32" bodyend="-1"/>
  81. </memberdef>
  82. <memberdef kind="typedef" id="namespacetk_1add371a241ec6c1695ef4e67935317edd" prot="public" static="no">
  83. <type>uint32_t</type>
  84. <definition>using tk::task_mask_t = uint32_t</definition>
  85. <argsstring></argsstring>
  86. <name>task_mask_t</name>
  87. <qualifiedname>tk::task_mask_t</qualifiedname>
  88. <briefdescription>
  89. </briefdescription>
  90. <detaileddescription>
  91. </detaileddescription>
  92. <inbodydescription>
  93. </inbodydescription>
  94. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="165" column="1" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" bodystart="165" bodyend="-1"/>
  95. </memberdef>
  96. <memberdef kind="typedef" id="namespacetk_1ab1f2fa3d79e99f13610bd330a0df928b" prot="public" static="no">
  97. <type><ref refid="classtk_1_1_semaphore" kindref="compound">Semaphore</ref></type>
  98. <definition>using tk::BinarySemaphore = Semaphore</definition>
  99. <argsstring></argsstring>
  100. <name>BinarySemaphore</name>
  101. <qualifiedname>tk::BinarySemaphore</qualifiedname>
  102. <briefdescription>
  103. <para>バイナリセマフォ (初期値1, 最大1) の型エイリアス </para>
  104. </briefdescription>
  105. <detaileddescription>
  106. </detaileddescription>
  107. <inbodydescription>
  108. </inbodydescription>
  109. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/sync.hpp" line="105" column="1" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/sync.hpp" bodystart="105" bodyend="-1"/>
  110. </memberdef>
  111. </sectiondef>
  112. <sectiondef kind="func">
  113. <memberdef kind="function" id="namespacetk_1a083495c9bf857a63f6c20a20aac0ca52" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
  114. <templateparamlist>
  115. <param>
  116. <type>typename MsgType</type>
  117. </param>
  118. </templateparamlist>
  119. <type>size_t</type>
  120. <definition>size_t tk::publish</definition>
  121. <argsstring>(const MsgType &amp;msg)</argsstring>
  122. <name>publish</name>
  123. <qualifiedname>tk::publish</qualifiedname>
  124. <param>
  125. <type>const MsgType &amp;</type>
  126. <declname>msg</declname>
  127. </param>
  128. <briefdescription>
  129. <para>メッセージの型を指定して、購読しているすべての <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> へ同報配信します </para>
  130. </briefdescription>
  131. <detaileddescription>
  132. <para>送信側は <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> のインスタンスや名前を知る必要がありません (完全疎結合)。 メッセージの実体は各 <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> のキューへ値コピーされるため、スタック上のローカル変数でも安全に渡せます。</para>
  133. <para><parameterlist kind="templateparam"><parameteritem>
  134. <parameternamelist>
  135. <parametername>MsgType</parametername>
  136. </parameternamelist>
  137. <parameterdescription>
  138. <para>配信するメッセージ型 </para>
  139. </parameterdescription>
  140. </parameteritem>
  141. </parameterlist>
  142. <parameterlist kind="param"><parameteritem>
  143. <parameternamelist>
  144. <parametername>msg</parametername>
  145. </parameternamelist>
  146. <parameterdescription>
  147. <para>送信するメッセージ </para>
  148. </parameterdescription>
  149. </parameteritem>
  150. </parameterlist>
  151. <simplesect kind="return"><para>size_t 配信に成功した <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> の数</para>
  152. </simplesect>
  153. <programlisting><codeline><highlight class="normal">MyEvent<sp/>ev{1,<sp/></highlight><highlight class="stringliteral">&quot;Button<sp/>Pressed&quot;</highlight><highlight class="normal">};</highlight></codeline>
  154. <codeline><highlight class="normal"><ref refid="namespacetk_1a083495c9bf857a63f6c20a20aac0ca52" kindref="member">tk::publish</ref>(ev);<sp/></highlight><highlight class="comment">//<sp/>MyEvent<sp/>を受け付けるすべての<sp/>Actor<sp/>に届く</highlight></codeline>
  155. </programlisting> </para>
  156. </detaileddescription>
  157. <inbodydescription>
  158. </inbodydescription>
  159. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="135" column="15" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="135" bodyend="137"/>
  160. </memberdef>
  161. <memberdef kind="function" id="namespacetk_1a5549bec310750722a1964de1145b9fed" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
  162. <type>size_t</type>
  163. <definition>size_t tk::publish</definition>
  164. <argsstring>(uint32_t id, uintptr_t arg=0)</argsstring>
  165. <name>publish</name>
  166. <qualifiedname>tk::publish</qualifiedname>
  167. <param>
  168. <type>uint32_t</type>
  169. <declname>id</declname>
  170. </param>
  171. <param>
  172. <type>uintptr_t</type>
  173. <declname>arg</declname>
  174. <defval>0</defval>
  175. </param>
  176. <briefdescription>
  177. <para><ref refid="structtk_1_1_message" kindref="compound">tk::Message</ref> 型の同報配信ショートカット </para>
  178. </briefdescription>
  179. <detaileddescription>
  180. <para><parameterlist kind="param"><parameteritem>
  181. <parameternamelist>
  182. <parametername>id</parametername>
  183. </parameternamelist>
  184. <parameterdescription>
  185. <para>メッセージID </para>
  186. </parameterdescription>
  187. </parameteritem>
  188. <parameteritem>
  189. <parameternamelist>
  190. <parametername>arg</parametername>
  191. </parameternamelist>
  192. <parameterdescription>
  193. <para>引数 (省略時: 0) </para>
  194. </parameterdescription>
  195. </parameteritem>
  196. </parameterlist>
  197. <simplesect kind="return"><para>size_t 配信に成功した <ref refid="classtk_1_1_actor" kindref="compound">Actor</ref> の数 </para>
  198. </simplesect>
  199. </para>
  200. </detaileddescription>
  201. <inbodydescription>
  202. </inbodydescription>
  203. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="146" column="15" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" bodystart="146" bodyend="148"/>
  204. </memberdef>
  205. <memberdef kind="function" id="namespacetk_1a6e721332f5a7d85998345ed218de7394" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
  206. <type><ref refid="structtk_1_1_task_handle" kindref="compound">TaskHandle</ref></type>
  207. <definition>tk::TaskHandle tk::create</definition>
  208. <argsstring>(TaskFn fn, void *arg=nullptr, uint32_t prio=PRIO_NORMAL)</argsstring>
  209. <name>create</name>
  210. <qualifiedname>tk::create</qualifiedname>
  211. <param>
  212. <type><ref refid="namespacetk_1a8908cf1e54cdc4e14ac3003126722cfc" kindref="member">TaskFn</ref></type>
  213. <declname>fn</declname>
  214. </param>
  215. <param>
  216. <type>void *</type>
  217. <declname>arg</declname>
  218. <defval>nullptr</defval>
  219. </param>
  220. <param>
  221. <type>uint32_t</type>
  222. <declname>prio</declname>
  223. <defval><ref refid="namespacetk_1a3d47fbd63b95ed3b46bed70c2fa1e50ea0e6779023b97999c2cef66ba1d4d1fca" kindref="member">PRIO_NORMAL</ref></defval>
  224. </param>
  225. <briefdescription>
  226. <para>タスクを生成・登録します </para>
  227. </briefdescription>
  228. <detaileddescription>
  229. <para><ref refid="namespacetk_1a675f1829b87e2a43239b6f80a526d0ed" kindref="member">tk::start()</ref> を呼び出す前に登録する必要があります。</para>
  230. <para><parameterlist kind="param"><parameteritem>
  231. <parameternamelist>
  232. <parametername>fn</parametername>
  233. </parameternamelist>
  234. <parameterdescription>
  235. <para>タスク関数ポインタ (void (*)(void* arg)) </para>
  236. </parameterdescription>
  237. </parameteritem>
  238. <parameteritem>
  239. <parameternamelist>
  240. <parametername>arg</parametername>
  241. </parameternamelist>
  242. <parameterdescription>
  243. <para>タスク関数に渡すユーザー引数ポインタ (省略時: nullptr) </para>
  244. </parameterdescription>
  245. </parameteritem>
  246. <parameteritem>
  247. <parameternamelist>
  248. <parametername>prio</parametername>
  249. </parameternamelist>
  250. <parameterdescription>
  251. <para>タスクの優先度 (省略時: <ref refid="namespacetk_1a3d47fbd63b95ed3b46bed70c2fa1e50ea0e6779023b97999c2cef66ba1d4d1fca" kindref="member">tk::PRIO_NORMAL</ref>) </para>
  252. </parameterdescription>
  253. </parameteritem>
  254. </parameterlist>
  255. <simplesect kind="return"><para><ref refid="structtk_1_1_task_handle" kindref="compound">TaskHandle</ref> 生成されたタスクのハンドル。登録失敗時は is_valid() が false </para>
  256. </simplesect>
  257. </para>
  258. </detaileddescription>
  259. <inbodydescription>
  260. </inbodydescription>
  261. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="66" column="12" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/src/scheduler.cpp" bodystart="204" bodyend="220" declfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" declline="66" declcolumn="12"/>
  262. </memberdef>
  263. <memberdef kind="function" id="namespacetk_1a675f1829b87e2a43239b6f80a526d0ed" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
  264. <type>void</type>
  265. <definition>void tk::start</definition>
  266. <argsstring>()</argsstring>
  267. <name>start</name>
  268. <qualifiedname>tk::start</qualifiedname>
  269. <briefdescription>
  270. <para>tinykernel スケジューラを起動します </para>
  271. </briefdescription>
  272. <detaileddescription>
  273. <para>Core 0 のスケジューラを開始し、Core 1 を自動ブートしてデュアルコア並行実行を開始します。 この関数から制御が戻ることはありません (Never returns)。 </para>
  274. </detaileddescription>
  275. <inbodydescription>
  276. </inbodydescription>
  277. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="74" column="6" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/src/scheduler.cpp" bodystart="247" bodyend="274" declfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" declline="74" declcolumn="6"/>
  278. </memberdef>
  279. <memberdef kind="function" id="namespacetk_1a8081956b0a19b87d5b7c81b772373397" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
  280. <type>void</type>
  281. <definition>void tk::yield</definition>
  282. <argsstring>()</argsstring>
  283. <name>yield</name>
  284. <qualifiedname>tk::yield</qualifiedname>
  285. <briefdescription>
  286. <para>現在実行中のタスクを一時中断し、同優先度の他のタスクへ CPU を譲渡します </para>
  287. </briefdescription>
  288. <detaileddescription>
  289. <para><simplesect kind="note"><para>タスクコンテキスト内から呼び出す必要があります。 </para>
  290. </simplesect>
  291. </para>
  292. </detaileddescription>
  293. <inbodydescription>
  294. </inbodydescription>
  295. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="81" column="6" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/src/scheduler.cpp" bodystart="276" bodyend="282" declfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" declline="81" declcolumn="6"/>
  296. </memberdef>
  297. <memberdef kind="function" id="namespacetk_1aae83f84121085578a7568437a8dc2447" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
  298. <type>void</type>
  299. <definition>void tk::sleep_ms</definition>
  300. <argsstring>(uint32_t ms)</argsstring>
  301. <name>sleep_ms</name>
  302. <qualifiedname>tk::sleep_ms</qualifiedname>
  303. <param>
  304. <type>uint32_t</type>
  305. <declname>ms</declname>
  306. </param>
  307. <briefdescription>
  308. <para>現在のタスクを指定時間スリープさせます </para>
  309. </briefdescription>
  310. <detaileddescription>
  311. <para>スリープ中はタスクが休止状態になり、CPU は他のタスクへ自動的に割り当てられます (CPU消費ゼロ)。</para>
  312. <para><parameterlist kind="param"><parameteritem>
  313. <parameternamelist>
  314. <parametername>ms</parametername>
  315. </parameternamelist>
  316. <parameterdescription>
  317. <para>スリープする時間 (ミリ秒) </para>
  318. </parameterdescription>
  319. </parameteritem>
  320. </parameterlist>
  321. <simplesect kind="note"><para>タスクコンテキスト内から呼び出す必要があります。 </para>
  322. </simplesect>
  323. </para>
  324. </detaileddescription>
  325. <inbodydescription>
  326. </inbodydescription>
  327. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="91" column="6" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/src/scheduler.cpp" bodystart="284" bodyend="296" declfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" declline="91" declcolumn="6"/>
  328. </memberdef>
  329. <memberdef kind="function" id="namespacetk_1aba50cfc62cb8be71cf96df7f495a7a3d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
  330. <type>void</type>
  331. <definition>void tk::exit</definition>
  332. <argsstring>(int code=0)</argsstring>
  333. <name>exit</name>
  334. <qualifiedname>tk::exit</qualifiedname>
  335. <param>
  336. <type>int</type>
  337. <declname>code</declname>
  338. <defval>0</defval>
  339. </param>
  340. <briefdescription>
  341. <para>現在のタスクを終了・破棄します </para>
  342. </briefdescription>
  343. <detaileddescription>
  344. <para><parameterlist kind="param"><parameteritem>
  345. <parameternamelist>
  346. <parametername>code</parametername>
  347. </parameternamelist>
  348. <parameterdescription>
  349. <para>終了コード (予約用、省略時: 0) </para>
  350. </parameterdescription>
  351. </parameteritem>
  352. </parameterlist>
  353. <simplesect kind="note"><para>タスク関数の末尾に到達した場合は自動的に呼ばれます。 </para>
  354. </simplesect>
  355. </para>
  356. </detaileddescription>
  357. <inbodydescription>
  358. </inbodydescription>
  359. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="99" column="6" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/src/scheduler.cpp" bodystart="298" bodyend="306" declfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" declline="99" declcolumn="6"/>
  360. </memberdef>
  361. <memberdef kind="function" id="namespacetk_1a46e15375fba47cbd1a93278f17e77848" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
  362. <type>uint64_t</type>
  363. <definition>uint64_t tk::now_ms</definition>
  364. <argsstring>()</argsstring>
  365. <name>now_ms</name>
  366. <qualifiedname>tk::now_ms</qualifiedname>
  367. <briefdescription>
  368. <para>システム起動時からの経過時間をミリ秒単位で取得します </para>
  369. </briefdescription>
  370. <detaileddescription>
  371. <para><simplesect kind="return"><para>uint64_t 経過ミリ秒数 (分解能: 1 / TK_TICKS_PER_SEC 秒) </para>
  372. </simplesect>
  373. </para>
  374. </detaileddescription>
  375. <inbodydescription>
  376. </inbodydescription>
  377. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="106" column="10" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/src/scheduler.cpp" bodystart="312" bodyend="314" declfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" declline="106" declcolumn="10"/>
  378. </memberdef>
  379. <memberdef kind="function" id="namespacetk_1a6540aa25eb8562f6d6c8b37977d6cfe8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
  380. <type>bool</type>
  381. <definition>bool tk::lock</definition>
  382. <argsstring>()</argsstring>
  383. <name>lock</name>
  384. <qualifiedname>tk::lock</qualifiedname>
  385. <briefdescription>
  386. <para>ハードウェアスピンロックと全割り込み禁止によるクリティカルセクションに入ります </para>
  387. </briefdescription>
  388. <detaileddescription>
  389. <para><simplesect kind="return"><para>true 呼び出し前の割り込みが有効だった場合 </para>
  390. </simplesect>
  391. <simplesect kind="return"><para>false 呼び出し前の割り込みが無効だった場合 </para>
  392. </simplesect>
  393. <simplesect kind="warning"><para>長時間のロックは避けてください。数マイクロ秒以内のレジスタ操作等に使用します。 </para>
  394. </simplesect>
  395. </para>
  396. </detaileddescription>
  397. <inbodydescription>
  398. </inbodydescription>
  399. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="115" column="6" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/src/scheduler.cpp" bodystart="316" bodyend="319" declfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" declline="115" declcolumn="6"/>
  400. </memberdef>
  401. <memberdef kind="function" id="namespacetk_1a752b12f6862815c94a52347af52578b7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
  402. <type>void</type>
  403. <definition>void tk::unlock</definition>
  404. <argsstring>(bool was_enabled)</argsstring>
  405. <name>unlock</name>
  406. <qualifiedname>tk::unlock</qualifiedname>
  407. <param>
  408. <type>bool</type>
  409. <declname>was_enabled</declname>
  410. </param>
  411. <briefdescription>
  412. <para><ref refid="namespacetk_1a6540aa25eb8562f6d6c8b37977d6cfe8" kindref="member">tk::lock()</ref> で入ったクリティカルセクションを抜けます </para>
  413. </briefdescription>
  414. <detaileddescription>
  415. <para><parameterlist kind="param"><parameteritem>
  416. <parameternamelist>
  417. <parametername>was_enabled</parametername>
  418. </parameternamelist>
  419. <parameterdescription>
  420. <para><ref refid="namespacetk_1a6540aa25eb8562f6d6c8b37977d6cfe8" kindref="member">tk::lock()</ref> の戻り値 </para>
  421. </parameterdescription>
  422. </parameteritem>
  423. </parameterlist>
  424. </para>
  425. </detaileddescription>
  426. <inbodydescription>
  427. </inbodydescription>
  428. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="122" column="6" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/src/scheduler.cpp" bodystart="321" bodyend="323" declfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" declline="122" declcolumn="6"/>
  429. </memberdef>
  430. <memberdef kind="function" id="namespacetk_1a3254a7e2a9f5ed3abe44e8cf62a8dcfe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
  431. <type>void</type>
  432. <definition>void tk::preempt_disable</definition>
  433. <argsstring>()</argsstring>
  434. <name>preempt_disable</name>
  435. <qualifiedname>tk::preempt_disable</qualifiedname>
  436. <briefdescription>
  437. <para>自コアのタスクスイッチ (プリエンプション) を一時的に禁止します </para>
  438. </briefdescription>
  439. <detaileddescription>
  440. <para>割り込み (SysTick やタイマー、NVIC) は停止しないため、通信クロックや時刻更新を 阻害することなく、自タスクの処理をアトミックに実行できます。ネスト (入れ子) 呼び出しに対応しています。</para>
  441. <para><simplesect kind="see"><para><ref refid="classtk_1_1_preempt_guard" kindref="compound">tk::PreemptGuard</ref>, <ref refid="namespacetk_1a70e6ee5f456e67a24ce13ff0fd04e4d9" kindref="member">tk::preempt_enable()</ref> </para>
  442. </simplesect>
  443. </para>
  444. </detaileddescription>
  445. <inbodydescription>
  446. </inbodydescription>
  447. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="132" column="6" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/src/scheduler.cpp" bodystart="369" bodyend="374" declfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" declline="132" declcolumn="6"/>
  448. </memberdef>
  449. <memberdef kind="function" id="namespacetk_1a70e6ee5f456e67a24ce13ff0fd04e4d9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
  450. <type>void</type>
  451. <definition>void tk::preempt_enable</definition>
  452. <argsstring>()</argsstring>
  453. <name>preempt_enable</name>
  454. <qualifiedname>tk::preempt_enable</qualifiedname>
  455. <briefdescription>
  456. <para>自コアのタスクスイッチ (プリエンプション) を再開します </para>
  457. </briefdescription>
  458. <detaileddescription>
  459. <para>ネストカウンタが 0 に戻った時点で、保留されていたタスクスイッチが即座に実行されます。</para>
  460. <para><simplesect kind="see"><para><ref refid="classtk_1_1_preempt_guard" kindref="compound">tk::PreemptGuard</ref>, <ref refid="namespacetk_1a3254a7e2a9f5ed3abe44e8cf62a8dcfe" kindref="member">tk::preempt_disable()</ref> </para>
  461. </simplesect>
  462. </para>
  463. </detaileddescription>
  464. <inbodydescription>
  465. </inbodydescription>
  466. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" line="141" column="6" bodyfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/src/scheduler.cpp" bodystart="376" bodyend="386" declfile="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/kernel.hpp" declline="141" declcolumn="6"/>
  467. </memberdef>
  468. </sectiondef>
  469. <briefdescription>
  470. </briefdescription>
  471. <detaileddescription>
  472. </detaileddescription>
  473. <location file="C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/actor.hpp" line="9" column="1"/>
  474. </compounddef>
  475. </doxygen>