<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>C/C&#43;&#43; on XWOS</title>
    <link>/en/Docs/TechRefManual/C_C&#43;&#43;/</link>
    <description>Recent content in C/C&#43;&#43; on XWOS</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="/en/Docs/TechRefManual/C_C++/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Libc</title>
      <link>/en/Docs/TechRefManual/C_C&#43;&#43;/Libc/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/en/Docs/TechRefManual/C_C&#43;&#43;/Libc/</guid>
      <description>&lt;h2 id=&#34;xwosxwos-kernel-dependencies-on-libc&#34;&gt;&lt;code&gt;XWOS/xwos&lt;/code&gt; Kernel Dependencies on libc&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;string.h&lt;/code&gt;: depends on &lt;code&gt;memset()&lt;/code&gt;, &lt;code&gt;memcpy()&lt;/code&gt;;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;stdlib.h&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When &lt;code&gt;XWOSCFG_SKD_THD_STDC_MM&lt;/code&gt;, &lt;code&gt;XWOSCFG_SKD_SWT_STDC_MM&lt;/code&gt;,&#xA;&lt;code&gt;XWOSCFG_SYNC_SEM_STDC_MM&lt;/code&gt;, &lt;code&gt;XWOSCFG_SYNC_COND_STDC_MM&lt;/code&gt;,&#xA;&lt;code&gt;XWOSCFG_SYNC_EVT_STDC_MM&lt;/code&gt; or &lt;code&gt;XWOSCFG_LOCK_MTX_STDC_MM&lt;/code&gt; is configured,&#xA;depends on &lt;code&gt;malloc()&lt;/code&gt; and &lt;code&gt;free()&lt;/code&gt; for dynamic object creation and deletion;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;inttypes.h&lt;/code&gt;, &lt;code&gt;stdint.h&lt;/code&gt;, &lt;code&gt;stddef.h&lt;/code&gt;: XWOS &lt;a href=&#34;../../XwosStd#basic-types&#34;&gt;base types&lt;/a&gt; are defined based on standard C base types;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;stdbool.h&lt;/code&gt;: depends on the bool type definition;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;stdatomic.h&lt;/code&gt;: depends on atomic operation memory barrier definitions;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;stdarg.h&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If &lt;code&gt;XWLIBCFG_SC&lt;/code&gt; is configured as &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;xwos/lib/sc.h&lt;/code&gt; requires variadic functions;&lt;/li&gt;&#xA;&lt;li&gt;If &lt;code&gt;XWLIBCFG_LOG&lt;/code&gt; is configured as &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;xwos/lib/xwlog.c&lt;/code&gt; requires variadic functions;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;stdio.h&lt;/code&gt;: If &lt;code&gt;XWLIBCFG_LOG&lt;/code&gt; is configured as &lt;code&gt;1&lt;/code&gt;, formatted logging in &lt;code&gt;xwos/lib/xwlog.c&lt;/code&gt; depends on &lt;code&gt;vsnprintf()&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;libc-support-provided-by-xwosxwmd&#34;&gt;libc Support Provided by &lt;code&gt;XWOS/xwmd&lt;/code&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;dynamic-memory-management&#34;&gt;Dynamic Memory Management&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;stdlib.h&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;malloc()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;free()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;cfree()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;realloc()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;calloc()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;memalign()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;aligned_alloc()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;valloc()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;pvalloc()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Depending on the libc selected in the configuration:&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43;</title>
      <link>/en/Docs/TechRefManual/C_C&#43;&#43;/C&#43;&#43;/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/en/Docs/TechRefManual/C_C&#43;&#43;/C&#43;&#43;/</guid>
      <description>&lt;p&gt;The XWOS kernel is developed in pure C and does not depend on the C++ standard library.&#xA;Users can use C++ language and the C++ standard library in threads. The C++ standard library is provided by the compiler. The following is a partial feature list:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; g++, libstdc++, libsupc++&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; new, delete, new[], delete[], placement new, aligned new (C++17)&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Containers&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; array&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; vector&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; deque&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; map, multimap, unordered_map, unordered_multimap&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; set, multiset, unordered_set, unordered_multiset&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; list, forward_list&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; stack, queue, priority_queue&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; I/O stream&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; string&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; atomic&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; RTTI&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; exception&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; unwind&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; chrono&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; thread&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; mutex&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; condition_variable&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; llvm(clang++), libc++, libc++abi&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; new, delete, new[], delete[], placement new, aligned new (C++17)&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Containers&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; array&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; vector&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; deque&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; map, multimap, unordered_map, unordered_multimap&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; set, multiset, unordered_set, unordered_multiset&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; list, forward_list&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; stack, queue, priority_queue&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; I/O stream&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; string&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; atomic&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; RTTI&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; exception&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; unwind&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; chrono&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; thread&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; mutex&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; condition_variable&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
