blob: 15927d8d32fd0afbae4fa30d049c9c9975cf0a43 [file] [log] [blame]
<!--
Documentation/_templates/layout.html
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership. The
ASF licenses this file to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance with the
License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>APIs Exported by NuttX to Architecture-Specific Logic &mdash; NuttX latest documentation</title>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
<link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
<link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
<link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
<link rel="shortcut icon" href="../../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/language_data.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="Application OS vs. Internal OS Interfaces" href="app_vs_os.html" />
<link rel="prev" title="Address Environments" href="addrenv.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> NuttX
<img src="../../_static/NuttX.png" class="logo" alt="Logo"/>
</a>
<!-- this version selector is quite ugly, should be probably replaced by something
more modern -->
<div class="version-selector">
<select>
<option value="latest" selected="selected">latest</option>
</select>
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../index.html">Home</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../introduction/index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../quickstart/index.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../components/index.html">OS Components</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../applications/index.html">Applications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../boards/index.html">Supported Boards</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">API Reference</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../user/index.html">Userspace API</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="index.html">Architecture APIs</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="conventions.html">Naming and Header File Conventions</a></li>
<li class="toctree-l3"><a class="reference internal" href="arch.html">APIs Exported by Architecture-Specific Logic to NuttX</a></li>
<li class="toctree-l3"><a class="reference internal" href="board.html">APIs Exported by Board-Specific Logic to NuttX</a></li>
<li class="toctree-l3"><a class="reference internal" href="time_clock.html">System Time and Clock</a></li>
<li class="toctree-l3"><a class="reference internal" href="wqueue.html">Work Queues</a></li>
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">APIs Exported by NuttX to Architecture-Specific Logic</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#os-list-management-apis">OS List Management APIs</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
<li class="toctree-l3"><a class="reference internal" href="led.html">LED Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="iob.html">I/O Buffer Management</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../guides/index.html">Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../releases/index.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../contributing/index.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../glossary.html">Glossary</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">NuttX</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">API Reference</a> &raquo;</li>
<li><a href="index.html">Architecture APIs</a> &raquo;</li>
<li>APIs Exported by NuttX to Architecture-Specific Logic</li>
<li class="wy-breadcrumbs-aside">
<a href="../../_sources/reference/os/nuttx.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="apis-exported-by-nuttx-to-architecture-specific-logic">
<h1>APIs Exported by NuttX to Architecture-Specific Logic<a class="headerlink" href="#apis-exported-by-nuttx-to-architecture-specific-logic" title="Permalink to this headline"></a></h1>
<p>These are standard interfaces that are exported by the OS for use
by the architecture specific logic.</p>
<dl class="c function">
<dt id="c.nx_start">
void <code class="sig-name descname">nx_start</code><span class="sig-paren">(</span>void<span class="sig-paren">)</span><a class="headerlink" href="#c.nx_start" title="Permalink to this definition"></a><br /></dt>
<dd><p><strong>To be provided</strong></p>
</dd></dl>
<div class="section" id="os-list-management-apis">
<h2>OS List Management APIs<a class="headerlink" href="#os-list-management-apis" title="Permalink to this headline"></a></h2>
<p><strong>To be provided</strong></p>
<dl class="c function">
<dt id="c.nxsched_process_timer">
void <code class="sig-name descname">nxsched_process_timer</code><span class="sig-paren">(</span>void<span class="sig-paren">)</span><a class="headerlink" href="#c.nxsched_process_timer" title="Permalink to this definition"></a><br /></dt>
<dd><p>This function handles system timer events. The
timer interrupt logic itself is implemented in the architecture
specific code, but must call the following OS function
periodically – the calling interval must be
<code class="docutils literal notranslate"><span class="pre">CONFIG_USEC_PER_TICK</span></code>.</p>
</dd></dl>
<dl class="c function">
<dt id="c.nxsched_timer_expiration">
void <code class="sig-name descname">nxsched_timer_expiration</code><span class="sig-paren">(</span>void<span class="sig-paren">)</span><a class="headerlink" href="#c.nxsched_timer_expiration" title="Permalink to this definition"></a><br /></dt>
<dd><p>Description: if <code class="docutils literal notranslate"><span class="pre">CONFIG_SCHED_TICKLESS</span></code> is defined, then this
function is provided by the RTOS base code and called from
platform-specific code when the interval timer used to implemented
the tick-less OS expires.</p>
<p><strong>Assumptions</strong>: Base code implementation assumes that this
function is called from interrupt handling logic with interrupts disabled.</p>
</dd></dl>
<dl class="c function">
<dt id="c.nxsched_alarm_expiration">
void <code class="sig-name descname">nxsched_alarm_expiration</code><span class="sig-paren">(</span>void<span class="sig-paren">)</span>;<a class="headerlink" href="#c.nxsched_alarm_expiration" title="Permalink to this definition"></a><br /></dt>
<dd><p>If <code class="docutils literal notranslate"><span class="pre">CONFIG_SCHED_TICKLESS</span></code> is defined, then this
function is provided by the RTOS base code and called from
platform-specific code when the interval timer used to implemented
the tick-less OS expires.</p>
<p><strong>Assumptions</strong>: Base code implementation assumes that this
function is called from interrupt handling logic with interrupts disabled.</p>
</dd></dl>
<dl class="c function">
<dt id="c.irq_dispatch">
void <code class="sig-name descname">irq_dispatch</code><span class="sig-paren">(</span>int <em>irq</em>, FAR void *<em>context</em><span class="sig-paren">)</span><a class="headerlink" href="#c.irq_dispatch" title="Permalink to this definition"></a><br /></dt>
<dd><p>This function must be called from the
architecture- specific logic in order to display an interrupt to
the appropriate, registered handling logic.</p>
</dd></dl>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2020, The Apache Software Foundation
</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>