<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        
        
        <!-- This is broken by doc revisioning.
         -->
        <link rel="shortcut icon" href="../../../../../img/favicon.ico">

        <title>nffs_detect - Apache Mynewt</title>

        <link href="../../../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
        <link rel="stylesheet" href="../../../../../css/highlight.css">
        <link href="../../../../../css/base.css" rel="stylesheet">
        <link href="../../../../../css/custom.css" rel="stylesheet">
        <link href="../../../../../css/v2.css" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
        <![endif]-->

        
            <script>
            (function(i, s, o, g, r, a, m) {
    i["GoogleAnalyticsObject"] = r;
    (i[r] =
        i[r] ||
        function() {
            (i[r].q = i[r].q || []).push(arguments);
        }),
        (i[r].l = 1 * new Date());
    (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
    a.async = 1;
    a.src = g;
    m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");

ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
        
    </head>


    <body class="nffs_detect">


        <div class="container">
    <div class="row v2-main-banner">
        <a class="logo-cell" href="/">
            <img class="logo" src="/img/logo.png">
        </a>
        <div class="tagline-cell">
            <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
        </div>
        <div class="news-cell">
            <div class="well">
                <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released (April 4, 2024)
            </div>
        </div>
    </div>
</div>

        






<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" role="navigation">
    <div class="container">
        <!-- Collapsed navigation -->
        <div class="navbar-header">
            <!-- Expander button -->
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>

        </div>

        <!-- Expanded navigation -->
        <div class="navbar-collapse collapse">
            <!-- Main navigation -->
            <ul class="nav navbar-nav navbar-right">
                <li 
  class=""
>
                    <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
                </li>
                <li 
  class="important"
>
                    <a href="/quick-start/">Quick Start</a>
                </li>
                <li 
  class=""
>
                    <a href="/about/">About</a>
                </li>
                <li 
  class=""
>
                    <a href="/talks/">Talks</a>
                </li>
                <li 
  class="active"
>
                    <a href="/documentation/">Documentation</a>
                </li>
                <li 
  class=""
>
                    <a href="/download/">Download</a>
                </li>
                <li 
  class=""
>
                    <a href="/community/">Community</a>
                </li>
                <li 
  class=""
>
                    <a href="/events/">Events</a>
                </li>
            </ul>

        </div>
    </div>
</nav>

        

        <div class="container">
            
                <div class="row">
                    <div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
    <div class="top">
        <div role="search">
            <form id="rtd-search-form" class="wy-form" action="../../../../../search.html" method="get">
                <div class="form-group">
                    <input type="text" name="q" class="form-control" placeholder="Search documentation" />
                </div>
            </form>
        </div>
    </div>
    <ul class="toc-nav">
      <li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value">
  <option value="/latest">
    Version: master
  </option>
  <option value="/v1_12_0/" >
    Version: 1.12.0
  </option>
  <option value="/v1_11_0/" >
    Version: 1.11.0
  </option>
  <option value="/v1_10_0/" >
    Version: 1.10.0
  </option>
  <option value="/v1_9_0/" >
    Version: 1.9.0
  </option>
    <option value="/v1_8_0/" >
    Version: 1.8.0
  </option>
  <option value="/v1_7_0/" >
    Version: 1.7.0
  </option>
  <option value="/v1_6_0/" >
    Version: 1.6.0
  </option>
  <option value="/v1_5_0/" >
    Version: 1.5.0
  </option>
  <option value="/v1_4_0/" >
    Version: 1.4.0
  </option>
  <option value="/v1_3_0/os/introduction" >
    Version: 1.3.0
  </option>
  <option value="/v1_2_0/os/introduction" >
    Version: 1.2.0
  </option>
  <option value="/v1_1_0/os/introduction" >
    Version: 1.1.0
  </option>
  <option value="/v1_0_0/os/introduction" >
    Version: 1.0.0
  </option>
  <option value="/v0_9_0/os/introduction" selected="selected" >
    Version: 0.9.0
  </option>
</select></li>
      
        
      
        
      
        
      
        
      
        
      
        
      
        
          
  
  
    <li ><a href="../../../../introduction/">Mynewt Documentation</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li ><a href="../../../../get_started/get_started/">Basic Setup</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../../../get_started/vocabulary/">Concepts</a>
  </li>

              
          
              
                
  
  
    <li ><a href="../../../../tutorials/tutorials/">Tutorials</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../../os_user_guide/">OS User Guide</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li ><a href="../../../../core_os/mynewt_os/">OS Core</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../../core_os/porting/port_os/">Porting to your Platform</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../console/console/">Console</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../shell/shell/">Shell</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../bootloader/bootloader/">Bootloader</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  
  
  ../../fs/fs/

">File System</a>
  
  
    <ul>
          
              
                
  
  
    <li ><a href="../../fs/fs/">File System Abstraction</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../nffs/">Newtron Flash File System</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li><a href="
  ../nffs_area_desc/
">Data Structures</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ./
">Functions</a>
  
  
    <ul>
          
              
                
  <li class="active">
    <a href="./">nffs_detect</a>
  </li>

              
          
              
                
  <li >
    <a href="../nffs_format/">nffs_format</a>
  </li>

              
          
              
                
  <li >
    <a href="../nffs_init/">nffs_init</a>
  </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  <li >
    <a href="../nffs_internals/">Internals</a>
  </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  <li >
    <a href="../../otherfs/">Other File Systems</a>
  </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../hal/hal/">Hardware Abstraction Layer</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../testutil/testutil/">Test Utilities</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../imgmgr/imgmgr/">Image Manager</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../../baselibc/">Baselibc library</a>
  </li>

              
          
              
                
  
  
    <li ><a href="../../../elua/elua/">Embedded Lua</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../json/json/">JSON</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../stats/stats/">Stats</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../logs/logs/">Logs</a>
  
  
    </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../../../../network/ble/ble_intro/
">BLE User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../../../newt/newt_intro/">Newt Tool Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../../../newtmgr/overview/">Newt Manager Guide</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../../../../known_issues/">Known Issues</a>
  </li>

              
          
    </ul>
  
    </li>

        
      
        
          
  
  
    <li><a href="
  ../../../../../faq/how_to_edit_docs/
">Appendix</a>
  
  
    </li>

        
      
    </ul>
</div></div>

                    <div class="col-md-9" role="main">
                        <div class="doc-header">
                            <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="/documentation/">Docs</a></li>
    
    
        
          <li>&raquo; Functions</li>
        
      
        
          <li>&raquo; <a href="os/modules/fs/nffs/nffs/">Newtron Flash File System</a></li>
        
      
        
          <li>&raquo; File System</li>
        
      
        
          <li>&raquo; <a href="os/os_user_guide/">OS User Guide</a></li>
        
      
        
          <li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
        
      
      
        <li>&raquo; nffs_detect</li>
      
    
    
  </ul>
</div>
                        </div>
                        
                          
                        
                          
                            <div class="alert alert-warning">
                                <p>
                                    Version 0.9.0 is not the most recent version of the Apache Mynewt
                                    documentation. Click <a href="/latest">here</a> to read the latest
                                    version.
                                </p>
                            </div>
                          
                        
                          
                        
                        
                            <h2 id="nffs_detect"><font color="F2853F" style="font-size:24pt">nffs_detect</font></h2>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code><span style="color: #A90D91">int</span> <span style="color: #000000">nffs_detect</span>(<span style="color: #A90D91">const</span> <span style="color: #A90D91">struct</span> <span style="color: #3F6E75">nffs_area_desc</span> <span style="color: #000000">*area_descs</span>)
</code></pre></div>

<p>Searches for a valid nffs file system among the specified areas.  This function succeeds if a file system is detected among any subset of the supplied areas.  If the area set does not contain a valid file system, a new one can be created via a separate call to nffs_format().</p>
<h4 id="arguments">Arguments</h4>
<table>
<thead>
<tr>
<th><em>Argument</em></th>
<th><em>Description</em></th>
</tr>
</thead>
<tbody>
<tr>
<td>area_descs</td>
<td>The set of areas to search.  This array must be terminated with a 0-length area.</td>
</tr>
</tbody>
</table>
<h4 id="returned-values">Returned values</h4>
<ul>
<li>0 on success</li>
<li>FS_ECORRUPT if no valid file system was detected</li>
<li>Other <a href="../../fs/fs_return_codes/">FS error code</a> on failure</li>
</ul>
<h4 id="header-file">Header file</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code><span style="color: #633820">#include</span> <span style="color: #177500">&quot;nffs/nffs.h&quot;</span>
</code></pre></div>

<h4 id="example">Example</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code><span style="color: #177500">/*** hw/hal/include/hal/flash_map.h */</span>

<span style="color: #177500">/*</span>
<span style="color: #177500"> * Flash area types</span>
<span style="color: #177500"> */</span>
<span style="color: #633820">#define FLASH_AREA_BOOTLOADER           0</span>
<span style="color: #633820">#define FLASH_AREA_IMAGE_0              1</span>
<span style="color: #633820">#define FLASH_AREA_IMAGE_1              2</span>
<span style="color: #633820">#define FLASH_AREA_IMAGE_SCRATCH        3</span>
<span style="color: #633820">#define FLASH_AREA_NFFS                 4</span>
</code></pre></div>

<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code><span style="color: #177500">/*** project/slinky/src/main.c */</span>

<span style="color: #A90D91">int</span>
<span style="color: #000000">main</span>(<span style="color: #A90D91">int</span> <span style="color: #000000">argc</span>, <span style="color: #A90D91">char</span> <span style="color: #000000">**argv</span>)
{
    <span style="color: #A90D91">int</span> <span style="color: #000000">rc</span>;
    <span style="color: #A90D91">int</span> <span style="color: #000000">cnt</span>;

    <span style="color: #177500">/* NFFS_AREA_MAX is defined in the BSP-specified bsp.h header file. */</span>
    <span style="color: #A90D91">struct</span> <span style="color: #3F6E75">nffs_area_desc</span> <span style="color: #000000">descs</span>[<span style="color: #000000">NFFS_AREA_MAX</span>];

    <span style="color: #177500">/* Initialize nffs&#39;s internal state. */</span>
    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">nffs_init</span>();
    <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);

    <span style="color: #177500">/* Convert the set of flash blocks we intend to use for nffs into an array</span>
<span style="color: #177500">     * of nffs area descriptors.</span>
<span style="color: #177500">     */</span>
    <span style="color: #000000">cnt</span> <span style="color: #000000">=</span> <span style="color: #000000">NFFS_AREA_MAX</span>;
    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">flash_area_to_nffs_desc</span>(<span style="color: #000000">FLASH_AREA_NFFS</span>, <span style="color: #000000">&amp;cnt</span>, <span style="color: #000000">descs</span>);
    <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);

    <span style="color: #177500">/* Attempt to restore an existing nffs file system from flash. */</span>
    <span style="color: #A90D91">if</span> (<span style="color: #000000">nffs_detect</span>(<span style="color: #000000">descs</span>) <span style="color: #000000">==</span> <span style="color: #000000">FS_ECORRUPT</span>) {
        <span style="color: #177500">/* No valid nffs instance detected; format a new one. */</span>
        <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">nffs_format</span>(<span style="color: #000000">descs</span>);
        <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);
    }
    <span style="color: #177500">/* [ ... ] */</span>
}
</code></pre></div>
                        
                        <div class="row">
                            



<ul class="nav nav-pills" style="margin-bottom: 10px">
    <li>
    
    </li>
    <li class="pull-right">
    
    </li>
</ul>
                        </div>
                        <footer class="row">
    <div class="col-xs-12">
        
            <p class="copyright">Apache Mynewt (incubating) is available under Apache License, version 2.0.</p>
        
    </div>
    <div class="col-xs-12">
        <div class="logos">
            <a href="https://www.apache.org/">
                <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
            </a>
            <p>
                Copyright © 2015-2021 The Apache Software Foundation.<br>
                <small class="footnote">
                    Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt
                    project logo are either registered trademarks or trademarks of the Apache
                    Software Foundation in the United States and other countries.
                </small>
            </p>
            <a href="">
                <img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
            </a>
        </div>
    </div>
    <a href="https://www.apache.org/licenses/">
        <button class="button-footer-asf">
            License
        </button>
    </a>
    <a href="https://www.apache.org/foundation/sponsorship.html">
        <button class="button-footer-asf">
            Sponsorship
        </button>
    </a>
    <a href="https://www.apache.org/foundation/thanks.html">
        <button class="button-footer-asf">
            Thanks
        </button>
    </a>
    <a href="https://www.apache.org/security/">
        <button class="button-footer-asf">
            Security
        </button>
    </a>
    <a href="https://apache.org/events/current-event">
        <button class="button-footer-asf">
            ASF Events
        </button>
    </a>
</footer>
                    </div>
                </div>
            
            
        </div>

        <script src="../../../../../js/jquery-1.10.2.min.js"></script>
        <script src="../../../../../js/bootstrap-3.0.3.min.js"></script>
        <script src="../../../../../js/highlight.pack.js"></script>
        <script src="../../../../../js/base.js"></script>
        <script src="../../../../../js/custom.js"></script>
            <script src="search/main.js"></script>

    </body>
</html>