blob: cdcedc2e00d59938f86cf9e5d657a63512fa5314 [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="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Architecture APIs &mdash; NuttX latest documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/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 src="../../_static/jquery.js"></script>
<script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/sphinx_highlight.js"></script>
<script 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="Naming and Header File Conventions" href="conventions.html" />
<link rel="prev" title="OS Data Structures" href="../user/structures.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
</a>
<!-- this version selector is quite ugly, should be probably replaced by something
more modern -->
<div class="version-selector">
<select onchange="javascript:location.href = this.value;">
<option value="../../../latest" selected="selected">latest</option>
<option value="../../../10.0.0" >10.0.0</option>
<option value="../../../10.0.1" >10.0.1</option>
<option value="../../../10.1.0" >10.1.0</option>
<option value="../../../10.2.0" >10.2.0</option>
<option value="../../../10.3.0" >10.3.0</option>
<option value="../../../11.0.0" >11.0.0</option>
<option value="../../../12.0.0" >12.0.0</option>
<option value="../../../12.1.0" >12.1.0</option>
<option value="../../../12.2.0" >12.2.0</option>
<option value="../../../12.2.1" >12.2.1</option>
<option value="../../../12.3.0" >12.3.0</option>
<option value="../../../12.4.0" >12.4.0</option>
<option value="../../../12.5.0" >12.5.0</option>
<option value="../../../12.5.1" >12.5.1</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" aria-label="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="Navigation menu">
<p class="caption" role="heading"><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="../../quickstart/index.html">Getting Started</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="../../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../platforms/index.html">Supported Platforms</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 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="current reference internal" href="#">Architecture APIs</a><ul>
<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"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></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="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="../../faq/index.html">FAQ</a></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="../../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="Mobile navigation menu" >
<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="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../index.html">API Reference</a></li>
<li class="breadcrumb-item active">Architecture APIs</li>
<li class="wy-breadcrumbs-aside">
<a href="../../_sources/reference/os/index.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">
<section id="architecture-apis">
<h1>Architecture APIs<a class="headerlink" href="#architecture-apis" title="Permalink to this heading"></a></h1>
<p>The file <code class="docutils literal notranslate"><span class="pre">include/nuttx/arch.h</span></code> identifies by prototype all of
the APIs that must be provided by the architecture specific logic.
The internal OS APIs that architecture-specific logic must
interface with are also identified in <code class="docutils literal notranslate"><span class="pre">include/nuttx/arch.h</span></code> or
in other header files.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="conventions.html">Naming and Header File Conventions</a></li>
<li class="toctree-l1"><a class="reference internal" href="arch.html">APIs Exported by Architecture-Specific Logic to NuttX</a></li>
<li class="toctree-l1"><a class="reference internal" href="board.html">APIs Exported by Board-Specific Logic to NuttX</a></li>
<li class="toctree-l1"><a class="reference internal" href="time_clock.html">System Time and Clock</a><ul>
<li class="toctree-l2"><a class="reference internal" href="time_clock.html#basic-system-timer">Basic System Timer</a></li>
<li class="toctree-l2"><a class="reference internal" href="time_clock.html#hardware">Hardware</a></li>
<li class="toctree-l2"><a class="reference internal" href="time_clock.html#system-tick-and-time">System Tick and Time</a></li>
<li class="toctree-l2"><a class="reference internal" href="time_clock.html#tickless-os">Tickless OS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="time_clock.html#tickless-platform-support">Tickless Platform Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="time_clock.html#tickless-configuration-options">Tickless Configuration Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="time_clock.html#tickless-imported-interfaces">Tickless Imported Interfaces</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="time_clock.html#watchdog-timer-interfaces">Watchdog Timer Interfaces</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="wqueue.html">Work Queues</a><ul>
<li class="toctree-l2"><a class="reference internal" href="wqueue.html#classes-of-work-queues">Classes of Work Queues</a><ul>
<li class="toctree-l3"><a class="reference internal" href="wqueue.html#high-priority-kernel-work-queue">High Priority Kernel Work queue</a></li>
<li class="toctree-l3"><a class="reference internal" href="wqueue.html#low-priority-kernel-work-queue">Low Priority Kernel Work Queue</a></li>
<li class="toctree-l3"><a class="reference internal" href="wqueue.html#user-mode-work-queue">User-Mode Work Queue</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="wqueue.html#common-work-queue-interfaces">Common Work Queue Interfaces</a><ul>
<li class="toctree-l3"><a class="reference internal" href="wqueue.html#work-queue-ids">Work Queue IDs</a></li>
<li class="toctree-l3"><a class="reference internal" href="wqueue.html#work-queue-interface-types">Work Queue Interface Types</a></li>
<li class="toctree-l3"><a class="reference internal" href="wqueue.html#work-queue-interfaces">Work Queue Interfaces</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l1"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a><ul>
<li class="toctree-l2"><a class="reference internal" href="nuttx.html#os-list-management-apis">OS List Management APIs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
<li class="toctree-l1"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l1"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l1"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
<li class="toctree-l1"><a class="reference internal" href="led.html">LED Support</a><ul>
<li class="toctree-l2"><a class="reference internal" href="led.html#header-files">Header Files</a></li>
<li class="toctree-l2"><a class="reference internal" href="led.html#led-definitions">LED Definitions</a></li>
<li class="toctree-l2"><a class="reference internal" href="led.html#common-led-interfaces">Common LED interfaces</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="iob.html">I/O Buffer Management</a><ul>
<li class="toctree-l2"><a class="reference internal" href="iob.html#configuration-options">Configuration Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="iob.html#throttling">Throttling</a></li>
<li class="toctree-l2"><a class="reference internal" href="iob.html#public-types">Public Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="iob.html#public-function-prototypes">Public Function Prototypes</a></li>
</ul>
</li>
</ul>
</div>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../user/structures.html" class="btn btn-neutral float-left" title="OS Data Structures" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="conventions.html" class="btn btn-neutral float-right" title="Naming and Header File Conventions" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2020, The Apache Software Foundation.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>