<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html lang="en">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>LCOV - skiboot.info - libflash/file.c</title>
  <link rel="stylesheet" type="text/css" href="../gcov.css">
</head>

<body>

          <table width="100%" border=0 cellspacing=0 cellpadding=0>
            <tr><td class="title">LCOV - code coverage report</td></tr>
            <tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>

            <tr>
              <td width="100%">
                <table cellpadding=1 border=0 width="100%">
          <tr>
            <td width="10%" class="headerItem">Current view:</td>
            <td width="10%" class="headerValue"><a href="../index.html">top level</a> - <a href="index.html">libflash</a> - file.c<span style="font-size: 80%;"> (source / <a href="file.c.func-c.html">functions</a>)</span></td>
            <td width="5%"></td>
            <td width="5%"></td>
            <td width="5%" class="headerCovTableHead">Coverage</td>
            <td width="5%" class="headerCovTableHead" title="Covered + Uncovered code">Total</td>
            <td width="5%" class="headerCovTableHead" title="Exercised code only">Hit</td>
          </tr>
          <tr>
            <td class="headerItem">Test:</td>
            <td class="headerValue">skiboot.info</td>
            <td></td>
            <td class="headerItem">Lines:</td>
            <td class="headerCovTableEntryLo">58.7&nbsp;%</td>
            <td class="headerCovTableEntry">184</td>
            <td class="headerCovTableEntry">108</td>
          </tr>
          <tr>
            <td class="headerItem">Test Date:</td>
            <td class="headerValue">2025-06-27 16:54:26</td>
            <td></td>
            <td class="headerItem">Functions:</td>
            <td class="headerCovTableEntryLo">69.2&nbsp;%</td>
            <td class="headerCovTableEntry">13</td>
            <td class="headerCovTableEntry">9</td>
          </tr>
          <tr>
            <td></td>
            <td></td>
            <td></td>
            <td class="headerItem">Branches:</td>
            <td class="headerCovTableEntryHi">-</td>
            <td class="headerCovTableEntry">0</td>
            <td class="headerCovTableEntry">0</td>
          </tr>
                  <tr><td><img src="../glass.png" width=3 height=3 alt=""></td></tr>
                </table>
              </td>
            </tr>

            <tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
          </table>

          <table cellpadding=0 cellspacing=0 border=0>
            <tr>
              <td><br></td>
            </tr>
            <tr>
              <td>
<pre class="sourceHeading">             Branch data     Line data    Source code</pre>
<pre class="source">
<span id="L1"><span class="lineNum">       1</span>                 :             : // SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later</span>
<span id="L2"><span class="lineNum">       2</span>                 :             : /* Copyright 2013-2019 IBM Corp. */</span>
<span id="L3"><span class="lineNum">       3</span>                 :             : </span>
<span id="L4"><span class="lineNum">       4</span>                 :             : #define _GNU_SOURCE</span>
<span id="L5"><span class="lineNum">       5</span>                 :             : #include &lt;errno.h&gt;</span>
<span id="L6"><span class="lineNum">       6</span>                 :             : #include &lt;inttypes.h&gt;</span>
<span id="L7"><span class="lineNum">       7</span>                 :             : #include &lt;stdio.h&gt;</span>
<span id="L8"><span class="lineNum">       8</span>                 :             : #include &lt;stdlib.h&gt;</span>
<span id="L9"><span class="lineNum">       9</span>                 :             : #include &lt;string.h&gt;</span>
<span id="L10"><span class="lineNum">      10</span>                 :             : #include &lt;sys/ioctl.h&gt;</span>
<span id="L11"><span class="lineNum">      11</span>                 :             : #include &lt;sys/types.h&gt;</span>
<span id="L12"><span class="lineNum">      12</span>                 :             : #include &lt;sys/stat.h&gt;</span>
<span id="L13"><span class="lineNum">      13</span>                 :             : #include &lt;fcntl.h&gt;</span>
<span id="L14"><span class="lineNum">      14</span>                 :             : #include &lt;unistd.h&gt;</span>
<span id="L15"><span class="lineNum">      15</span>                 :             : #include &lt;limits.h&gt;</span>
<span id="L16"><span class="lineNum">      16</span>                 :             : </span>
<span id="L17"><span class="lineNum">      17</span>                 :             : #include &lt;ccan/container_of/container_of.h&gt;</span>
<span id="L18"><span class="lineNum">      18</span>                 :             : </span>
<span id="L19"><span class="lineNum">      19</span>                 :             : #include &lt;mtd/mtd-abi.h&gt;</span>
<span id="L20"><span class="lineNum">      20</span>                 :             : </span>
<span id="L21"><span class="lineNum">      21</span>                 :             : #include &quot;libflash.h&quot;</span>
<span id="L22"><span class="lineNum">      22</span>                 :             : #include &quot;libflash/file.h&quot;</span>
<span id="L23"><span class="lineNum">      23</span>                 :             : #include &quot;blocklevel.h&quot;</span>
<span id="L24"><span class="lineNum">      24</span>                 :             : </span>
<span id="L25"><span class="lineNum">      25</span>                 :             : struct file_data {</span>
<span id="L26"><span class="lineNum">      26</span>                 :             :         int fd;</span>
<span id="L27"><span class="lineNum">      27</span>                 :             :         char *name;</span>
<span id="L28"><span class="lineNum">      28</span>                 :             :         char *path;</span>
<span id="L29"><span class="lineNum">      29</span>                 :             :         struct blocklevel_device bl;</span>
<span id="L30"><span class="lineNum">      30</span>                 :             : };</span>
<span id="L31"><span class="lineNum">      31</span>                 :             : </span>
<span id="L32"><span class="lineNum">      32</span>                 :<span class="tlaUNC tlaBgUNC">           0 : static int file_release(struct blocklevel_device *bl)</span></span>
<span id="L33"><span class="lineNum">      33</span>                 :             : {</span>
<span id="L34"><span class="lineNum">      34</span>                 :<span class="tlaUNC">           0 :         struct file_data *file_data = container_of(bl, struct file_data, bl);</span></span>
<span id="L35"><span class="lineNum">      35</span>                 :<span class="tlaUNC">           0 :         close(file_data-&gt;fd);</span></span>
<span id="L36"><span class="lineNum">      36</span>                 :<span class="tlaUNC">           0 :         file_data-&gt;fd = -1;</span></span>
<span id="L37"><span class="lineNum">      37</span>                 :<span class="tlaUNC">           0 :         return 0;</span></span>
<span id="L38"><span class="lineNum">      38</span>                 :             : }</span>
<span id="L39"><span class="lineNum">      39</span>                 :             : </span>
<span id="L40"><span class="lineNum">      40</span>                 :<span class="tlaUNC">           0 : static int file_reacquire(struct blocklevel_device *bl)</span></span>
<span id="L41"><span class="lineNum">      41</span>                 :             : {</span>
<span id="L42"><span class="lineNum">      42</span>                 :<span class="tlaUNC">           0 :         struct file_data *file_data = container_of(bl, struct file_data, bl);</span></span>
<span id="L43"><span class="lineNum">      43</span>                 :<span class="tlaUNC">           0 :         int fd;</span></span>
<span id="L44"><span class="lineNum">      44</span>                 :             : </span>
<span id="L45"><span class="lineNum">      45</span>                 :<span class="tlaUNC">           0 :         fd = open(file_data-&gt;path, O_RDWR);</span></span>
<span id="L46"><span class="lineNum">      46</span>                 :<span class="tlaUNC">           0 :         if (fd == -1)</span></span>
<span id="L47"><span class="lineNum">      47</span>                 :             :                 return FLASH_ERR_PARM_ERROR;</span>
<span id="L48"><span class="lineNum">      48</span>                 :<span class="tlaUNC">           0 :         file_data-&gt;fd = fd;</span></span>
<span id="L49"><span class="lineNum">      49</span>                 :<span class="tlaUNC">           0 :         return 0;</span></span>
<span id="L50"><span class="lineNum">      50</span>                 :             : }</span>
<span id="L51"><span class="lineNum">      51</span>                 :             : </span>
<span id="L52"><span class="lineNum">      52</span>                 :<span class="tlaGNC tlaBgGNC">         107 : static int file_read(struct blocklevel_device *bl, uint64_t pos, void *buf, uint64_t len)</span></span>
<span id="L53"><span class="lineNum">      53</span>                 :             : {</span>
<span id="L54"><span class="lineNum">      54</span>                 :<span class="tlaGNC">         107 :         struct file_data *file_data = container_of(bl, struct file_data, bl);</span></span>
<span id="L55"><span class="lineNum">      55</span>                 :<span class="tlaGNC">         107 :         int rc, count = 0;</span></span>
<span id="L56"><span class="lineNum">      56</span>                 :             : </span>
<span id="L57"><span class="lineNum">      57</span>                 :<span class="tlaGNC">         107 :         rc = lseek(file_data-&gt;fd, pos, SEEK_SET);</span></span>
<span id="L58"><span class="lineNum">      58</span>                 :             :         /* errno should remain set */</span>
<span id="L59"><span class="lineNum">      59</span>                 :<span class="tlaGNC">         107 :         if (rc != pos)</span></span>
<span id="L60"><span class="lineNum">      60</span>                 :             :                 return FLASH_ERR_PARM_ERROR;</span>
<span id="L61"><span class="lineNum">      61</span>                 :             : </span>
<span id="L62"><span class="lineNum">      62</span>                 :<span class="tlaGNC">         214 :         while (count &lt; len) {</span></span>
<span id="L63"><span class="lineNum">      63</span>                 :<span class="tlaGNC">         107 :                 rc = read(file_data-&gt;fd, buf, len - count);</span></span>
<span id="L64"><span class="lineNum">      64</span>                 :             :                 /* errno should remain set */</span>
<span id="L65"><span class="lineNum">      65</span>                 :<span class="tlaGNC">         107 :                 if (rc == -1 || rc == 0)</span></span>
<span id="L66"><span class="lineNum">      66</span>                 :             :                         return FLASH_ERR_BAD_READ;</span>
<span id="L67"><span class="lineNum">      67</span>                 :             : </span>
<span id="L68"><span class="lineNum">      68</span>                 :<span class="tlaGNC">         107 :                 buf += rc;</span></span>
<span id="L69"><span class="lineNum">      69</span>                 :<span class="tlaGNC">         107 :                 count += rc;</span></span>
<span id="L70"><span class="lineNum">      70</span>                 :             :         }</span>
<span id="L71"><span class="lineNum">      71</span>                 :             : </span>
<span id="L72"><span class="lineNum">      72</span>                 :             :         return 0;</span>
<span id="L73"><span class="lineNum">      73</span>                 :             : }</span>
<span id="L74"><span class="lineNum">      74</span>                 :             : </span>
<span id="L75"><span class="lineNum">      75</span>                 :<span class="tlaGNC">        3353 : static int file_write(struct blocklevel_device *bl, uint64_t dst, const void *src,</span></span>
<span id="L76"><span class="lineNum">      76</span>                 :             :                 uint64_t len)</span>
<span id="L77"><span class="lineNum">      77</span>                 :             : {</span>
<span id="L78"><span class="lineNum">      78</span>                 :<span class="tlaGNC">        3353 :         struct file_data *file_data = container_of(bl, struct file_data, bl);</span></span>
<span id="L79"><span class="lineNum">      79</span>                 :<span class="tlaGNC">        3353 :         int rc, count = 0;</span></span>
<span id="L80"><span class="lineNum">      80</span>                 :             : </span>
<span id="L81"><span class="lineNum">      81</span>                 :<span class="tlaGNC">        3353 :         rc = lseek(file_data-&gt;fd, dst, SEEK_SET);</span></span>
<span id="L82"><span class="lineNum">      82</span>                 :             :         /* errno should remain set */</span>
<span id="L83"><span class="lineNum">      83</span>                 :<span class="tlaGNC">        3353 :         if (rc != dst)</span></span>
<span id="L84"><span class="lineNum">      84</span>                 :             :                 return FLASH_ERR_PARM_ERROR;</span>
<span id="L85"><span class="lineNum">      85</span>                 :             : </span>
<span id="L86"><span class="lineNum">      86</span>                 :<span class="tlaGNC">        6706 :         while (count &lt; len) {</span></span>
<span id="L87"><span class="lineNum">      87</span>                 :<span class="tlaGNC">        3353 :                 rc = write(file_data-&gt;fd, src, len - count);</span></span>
<span id="L88"><span class="lineNum">      88</span>                 :             :                 /* errno should remain set */</span>
<span id="L89"><span class="lineNum">      89</span>                 :<span class="tlaGNC">        3353 :                 if (rc == -1)</span></span>
<span id="L90"><span class="lineNum">      90</span>                 :             :                         return FLASH_ERR_VERIFY_FAILURE;</span>
<span id="L91"><span class="lineNum">      91</span>                 :             : </span>
<span id="L92"><span class="lineNum">      92</span>                 :<span class="tlaGNC">        3353 :                 src += rc;</span></span>
<span id="L93"><span class="lineNum">      93</span>                 :<span class="tlaGNC">        3353 :                 count += rc;</span></span>
<span id="L94"><span class="lineNum">      94</span>                 :             :         }</span>
<span id="L95"><span class="lineNum">      95</span>                 :             : </span>
<span id="L96"><span class="lineNum">      96</span>                 :             :         return 0;</span>
<span id="L97"><span class="lineNum">      97</span>                 :             : }</span>
<span id="L98"><span class="lineNum">      98</span>                 :             : </span>
<span id="L99"><span class="lineNum">      99</span>                 :             : /*</span>
<span id="L100"><span class="lineNum">     100</span>                 :             :  * Due to to the fact these interfaces are ultimately supposed to deal with</span>
<span id="L101"><span class="lineNum">     101</span>                 :             :  * flash, an erase function must be implemented even when the flash images</span>
<span id="L102"><span class="lineNum">     102</span>                 :             :  * are backed by regular files.</span>
<span id="L103"><span class="lineNum">     103</span>                 :             :  * Also, erasing flash leaves all the bits set to 1. This may be expected</span>
<span id="L104"><span class="lineNum">     104</span>                 :             :  * by higher level functions so this function should also emulate that</span>
<span id="L105"><span class="lineNum">     105</span>                 :             :  */</span>
<span id="L106"><span class="lineNum">     106</span>                 :<span class="tlaGNC">        3330 : static int file_erase(struct blocklevel_device *bl, uint64_t dst, uint64_t len)</span></span>
<span id="L107"><span class="lineNum">     107</span>                 :             : {</span>
<span id="L108"><span class="lineNum">     108</span>                 :<span class="tlaGNC">        3330 :         static char buf[4096];</span></span>
<span id="L109"><span class="lineNum">     109</span>                 :<span class="tlaGNC">        3330 :         int i = 0;</span></span>
<span id="L110"><span class="lineNum">     110</span>                 :<span class="tlaGNC">        3330 :         int rc;</span></span>
<span id="L111"><span class="lineNum">     111</span>                 :             : </span>
<span id="L112"><span class="lineNum">     112</span>                 :<span class="tlaGNC">        3330 :         memset(buf, ~0, sizeof(buf));</span></span>
<span id="L113"><span class="lineNum">     113</span>                 :             : </span>
<span id="L114"><span class="lineNum">     114</span>                 :<span class="tlaGNC">        6668 :         while (len - i &gt; 0) {</span></span>
<span id="L115"><span class="lineNum">     115</span>                 :<span class="tlaGNC">        3338 :                 rc = file_write(bl, dst + i, buf, len - i &gt; sizeof(buf) ? sizeof(buf) : len - i);</span></span>
<span id="L116"><span class="lineNum">     116</span>                 :<span class="tlaGNC">        3338 :                 if (rc)</span></span>
<span id="L117"><span class="lineNum">     117</span>                 :<span class="tlaUNC tlaBgUNC">           0 :                         return rc;</span></span>
<span id="L118"><span class="lineNum">     118</span>                 :<span class="tlaGNC tlaBgGNC">        3338 :                 i += (len - i &gt; sizeof(buf)) ? sizeof(buf) : len - i;</span></span>
<span id="L119"><span class="lineNum">     119</span>                 :             :         }</span>
<span id="L120"><span class="lineNum">     120</span>                 :             : </span>
<span id="L121"><span class="lineNum">     121</span>                 :             :         return 0;</span>
<span id="L122"><span class="lineNum">     122</span>                 :             : }</span>
<span id="L123"><span class="lineNum">     123</span>                 :             : </span>
<span id="L124"><span class="lineNum">     124</span>                 :<span class="tlaUNC tlaBgUNC">           0 : static int mtd_erase(struct blocklevel_device *bl, uint64_t dst, uint64_t len)</span></span>
<span id="L125"><span class="lineNum">     125</span>                 :             : {</span>
<span id="L126"><span class="lineNum">     126</span>                 :<span class="tlaUNC">           0 :         struct file_data *file_data = container_of(bl, struct file_data, bl);</span></span>
<span id="L127"><span class="lineNum">     127</span>                 :<span class="tlaUNC">           0 :         int err;</span></span>
<span id="L128"><span class="lineNum">     128</span>                 :             : </span>
<span id="L129"><span class="lineNum">     129</span>                 :<span class="tlaUNC">           0 :         FL_DBG(&quot;%s: dst: 0x%&quot; PRIx64 &quot;, len: 0x%&quot; PRIx64 &quot;\n&quot;, __func__, dst, len);</span></span>
<span id="L130"><span class="lineNum">     130</span>                 :             : </span>
<span id="L131"><span class="lineNum">     131</span>                 :             :         /*</span>
<span id="L132"><span class="lineNum">     132</span>                 :             :          * Some kernels that pflash supports do not know about the 64bit</span>
<span id="L133"><span class="lineNum">     133</span>                 :             :          * version of the ioctl() therefore we'll just use the 32bit (which</span>
<span id="L134"><span class="lineNum">     134</span>                 :             :          * should always be supported...) unless we MUST use the 64bit and</span>
<span id="L135"><span class="lineNum">     135</span>                 :             :          * then lets just hope the kernel knows how to deal with it. If it</span>
<span id="L136"><span class="lineNum">     136</span>                 :             :          * is unsupported the ioctl() will fail and we'll report that -</span>
<span id="L137"><span class="lineNum">     137</span>                 :             :          * there is no other option.</span>
<span id="L138"><span class="lineNum">     138</span>                 :             :          *</span>
<span id="L139"><span class="lineNum">     139</span>                 :             :          * Furthermore, even very recent MTD layers and drivers aren't</span>
<span id="L140"><span class="lineNum">     140</span>                 :             :          * particularly good at not blocking in the kernel. This creates</span>
<span id="L141"><span class="lineNum">     141</span>                 :             :          * unexpected behaviour in userspace tools using these functions.</span>
<span id="L142"><span class="lineNum">     142</span>                 :             :          * In the absence of significant work inside the kernel, we'll just</span>
<span id="L143"><span class="lineNum">     143</span>                 :             :          * split stuff up here for convenience.</span>
<span id="L144"><span class="lineNum">     144</span>                 :             :          * We can assume everything is aligned here.</span>
<span id="L145"><span class="lineNum">     145</span>                 :             :          */</span>
<span id="L146"><span class="lineNum">     146</span>                 :<span class="tlaUNC">           0 :         while (len) {</span></span>
<span id="L147"><span class="lineNum">     147</span>                 :<span class="tlaUNC">           0 :                 if (dst &gt; UINT_MAX || len &gt; UINT_MAX) {</span></span>
<span id="L148"><span class="lineNum">     148</span>                 :<span class="tlaUNC">           0 :                         struct erase_info_user64 erase_info = {</span></span>
<span id="L149"><span class="lineNum">     149</span>                 :             :                                 .start = dst,</span>
<span id="L150"><span class="lineNum">     150</span>                 :<span class="tlaUNC">           0 :                                 .length = file_data-&gt;bl.erase_mask + 1</span></span>
<span id="L151"><span class="lineNum">     151</span>                 :             :                         };</span>
<span id="L152"><span class="lineNum">     152</span>                 :             : </span>
<span id="L153"><span class="lineNum">     153</span>                 :<span class="tlaUNC">           0 :                         if (ioctl(file_data-&gt;fd, MEMERASE64, &amp;erase_info) == -1) {</span></span>
<span id="L154"><span class="lineNum">     154</span>                 :<span class="tlaUNC">           0 :                                 err = errno;</span></span>
<span id="L155"><span class="lineNum">     155</span>                 :<span class="tlaUNC">           0 :                                 if (err == 25) /* Kernel doesn't do 64bit MTD erase ioctl() */</span></span>
<span id="L156"><span class="lineNum">     156</span>                 :<span class="tlaUNC">           0 :                                         FL_DBG(&quot;Attempted a 64bit erase on a kernel which doesn't support it\n&quot;);</span></span>
<span id="L157"><span class="lineNum">     157</span>                 :<span class="tlaUNC">           0 :                                 FL_ERR(&quot;%s: IOCTL to kernel failed! %s\n&quot;, __func__, strerror(err));</span></span>
<span id="L158"><span class="lineNum">     158</span>                 :<span class="tlaUNC">           0 :                                 errno = err;</span></span>
<span id="L159"><span class="lineNum">     159</span>                 :<span class="tlaUNC">           0 :                                 return FLASH_ERR_PARM_ERROR;</span></span>
<span id="L160"><span class="lineNum">     160</span>                 :             :                         }</span>
<span id="L161"><span class="lineNum">     161</span>                 :             :                 } else {</span>
<span id="L162"><span class="lineNum">     162</span>                 :<span class="tlaUNC">           0 :                         struct erase_info_user erase_info = {</span></span>
<span id="L163"><span class="lineNum">     163</span>                 :             :                                 .start = dst,</span>
<span id="L164"><span class="lineNum">     164</span>                 :<span class="tlaUNC">           0 :                                 .length = file_data-&gt;bl.erase_mask + 1</span></span>
<span id="L165"><span class="lineNum">     165</span>                 :             :                         };</span>
<span id="L166"><span class="lineNum">     166</span>                 :<span class="tlaUNC">           0 :                         if (ioctl(file_data-&gt;fd, MEMERASE, &amp;erase_info) == -1) {</span></span>
<span id="L167"><span class="lineNum">     167</span>                 :<span class="tlaUNC">           0 :                                 err = errno;</span></span>
<span id="L168"><span class="lineNum">     168</span>                 :<span class="tlaUNC">           0 :                                 FL_ERR(&quot;%s: IOCTL to kernel failed! %s\n&quot;, __func__, strerror(err));</span></span>
<span id="L169"><span class="lineNum">     169</span>                 :<span class="tlaUNC">           0 :                                 errno = err;</span></span>
<span id="L170"><span class="lineNum">     170</span>                 :<span class="tlaUNC">           0 :                                 return FLASH_ERR_PARM_ERROR;</span></span>
<span id="L171"><span class="lineNum">     171</span>                 :             :                         }</span>
<span id="L172"><span class="lineNum">     172</span>                 :             :                 }</span>
<span id="L173"><span class="lineNum">     173</span>                 :<span class="tlaUNC">           0 :                 dst += file_data-&gt;bl.erase_mask + 1;</span></span>
<span id="L174"><span class="lineNum">     174</span>                 :<span class="tlaUNC">           0 :                 len -= file_data-&gt;bl.erase_mask + 1;</span></span>
<span id="L175"><span class="lineNum">     175</span>                 :             :         }</span>
<span id="L176"><span class="lineNum">     176</span>                 :             :         return 0;</span>
<span id="L177"><span class="lineNum">     177</span>                 :             : }</span>
<span id="L178"><span class="lineNum">     178</span>                 :             : </span>
<span id="L179"><span class="lineNum">     179</span>                 :<span class="tlaGNC tlaBgGNC">          11 : static int get_info_name(struct file_data *file_data, char **name)</span></span>
<span id="L180"><span class="lineNum">     180</span>                 :             : {</span>
<span id="L181"><span class="lineNum">     181</span>                 :<span class="tlaGNC">          11 :         char *path, *lpath;</span></span>
<span id="L182"><span class="lineNum">     182</span>                 :<span class="tlaGNC">          11 :         int len;</span></span>
<span id="L183"><span class="lineNum">     183</span>                 :<span class="tlaGNC">          11 :         struct stat st;</span></span>
<span id="L184"><span class="lineNum">     184</span>                 :             : </span>
<span id="L185"><span class="lineNum">     185</span>                 :<span class="tlaGNC">          11 :         if (asprintf(&amp;path, &quot;/proc/self/fd/%d&quot;, file_data-&gt;fd) == -1)</span></span>
<span id="L186"><span class="lineNum">     186</span>                 :             :                 return FLASH_ERR_MALLOC_FAILED;</span>
<span id="L187"><span class="lineNum">     187</span>                 :             : </span>
<span id="L188"><span class="lineNum">     188</span>                 :<span class="tlaGNC">          11 :         if (lstat(path, &amp;st)) {</span></span>
<span id="L189"><span class="lineNum">     189</span>                 :<span class="tlaUNC tlaBgUNC">           0 :                 free(path);</span></span>
<span id="L190"><span class="lineNum">     190</span>                 :<span class="tlaUNC">           0 :                 return FLASH_ERR_PARM_ERROR;</span></span>
<span id="L191"><span class="lineNum">     191</span>                 :             :         }</span>
<span id="L192"><span class="lineNum">     192</span>                 :             : </span>
<span id="L193"><span class="lineNum">     193</span>                 :<span class="tlaGNC tlaBgGNC">          11 :         lpath = malloc(st.st_size + 1);</span></span>
<span id="L194"><span class="lineNum">     194</span>                 :<span class="tlaGNC">          11 :         if (!lpath) {</span></span>
<span id="L195"><span class="lineNum">     195</span>                 :<span class="tlaUNC tlaBgUNC">           0 :                 free(path);</span></span>
<span id="L196"><span class="lineNum">     196</span>                 :<span class="tlaUNC">           0 :                 return FLASH_ERR_MALLOC_FAILED;</span></span>
<span id="L197"><span class="lineNum">     197</span>                 :             :         }</span>
<span id="L198"><span class="lineNum">     198</span>                 :             : </span>
<span id="L199"><span class="lineNum">     199</span>                 :<span class="tlaGNC tlaBgGNC">          11 :         len = readlink(path, lpath, st.st_size +1);</span></span>
<span id="L200"><span class="lineNum">     200</span>                 :<span class="tlaGNC">          11 :         if (len == -1) {</span></span>
<span id="L201"><span class="lineNum">     201</span>                 :<span class="tlaUNC tlaBgUNC">           0 :                 free(path);</span></span>
<span id="L202"><span class="lineNum">     202</span>                 :<span class="tlaUNC">           0 :                 free(lpath);</span></span>
<span id="L203"><span class="lineNum">     203</span>                 :<span class="tlaUNC">           0 :                 return FLASH_ERR_PARM_ERROR;</span></span>
<span id="L204"><span class="lineNum">     204</span>                 :             :         }</span>
<span id="L205"><span class="lineNum">     205</span>                 :<span class="tlaGNC tlaBgGNC">          11 :         lpath[len] = '\0';</span></span>
<span id="L206"><span class="lineNum">     206</span>                 :             : </span>
<span id="L207"><span class="lineNum">     207</span>                 :<span class="tlaGNC">          11 :         *name = lpath;</span></span>
<span id="L208"><span class="lineNum">     208</span>                 :             : </span>
<span id="L209"><span class="lineNum">     209</span>                 :<span class="tlaGNC">          11 :         free(path);</span></span>
<span id="L210"><span class="lineNum">     210</span>                 :<span class="tlaGNC">          11 :         return 0;</span></span>
<span id="L211"><span class="lineNum">     211</span>                 :             : }</span>
<span id="L212"><span class="lineNum">     212</span>                 :             : </span>
<span id="L213"><span class="lineNum">     213</span>                 :             : </span>
<span id="L214"><span class="lineNum">     214</span>                 :<span class="tlaUNC tlaBgUNC">           0 : static int mtd_get_info(struct blocklevel_device *bl, const char **name,</span></span>
<span id="L215"><span class="lineNum">     215</span>                 :             :                 uint64_t *total_size, uint32_t *erase_granule)</span>
<span id="L216"><span class="lineNum">     216</span>                 :             : {</span>
<span id="L217"><span class="lineNum">     217</span>                 :<span class="tlaUNC">           0 :         struct file_data *file_data = container_of(bl, struct file_data, bl);</span></span>
<span id="L218"><span class="lineNum">     218</span>                 :<span class="tlaUNC">           0 :         struct mtd_info_user mtd_info;</span></span>
<span id="L219"><span class="lineNum">     219</span>                 :<span class="tlaUNC">           0 :         int rc;</span></span>
<span id="L220"><span class="lineNum">     220</span>                 :             : </span>
<span id="L221"><span class="lineNum">     221</span>                 :<span class="tlaUNC">           0 :         rc = ioctl(file_data-&gt;fd, MEMGETINFO, &amp;mtd_info);</span></span>
<span id="L222"><span class="lineNum">     222</span>                 :<span class="tlaUNC">           0 :         if (rc == -1)</span></span>
<span id="L223"><span class="lineNum">     223</span>                 :             :                 return FLASH_ERR_BAD_READ;</span>
<span id="L224"><span class="lineNum">     224</span>                 :             : </span>
<span id="L225"><span class="lineNum">     225</span>                 :<span class="tlaUNC">           0 :         if (total_size)</span></span>
<span id="L226"><span class="lineNum">     226</span>                 :<span class="tlaUNC">           0 :                 *total_size = mtd_info.size;</span></span>
<span id="L227"><span class="lineNum">     227</span>                 :             : </span>
<span id="L228"><span class="lineNum">     228</span>                 :<span class="tlaUNC">           0 :         if (erase_granule)</span></span>
<span id="L229"><span class="lineNum">     229</span>                 :<span class="tlaUNC">           0 :                 *erase_granule = mtd_info.erasesize;</span></span>
<span id="L230"><span class="lineNum">     230</span>                 :             : </span>
<span id="L231"><span class="lineNum">     231</span>                 :<span class="tlaUNC">           0 :         if (name) {</span></span>
<span id="L232"><span class="lineNum">     232</span>                 :<span class="tlaUNC">           0 :                 rc = get_info_name(file_data, &amp;(file_data-&gt;name));</span></span>
<span id="L233"><span class="lineNum">     233</span>                 :<span class="tlaUNC">           0 :                 if (rc)</span></span>
<span id="L234"><span class="lineNum">     234</span>                 :             :                         return rc;</span>
<span id="L235"><span class="lineNum">     235</span>                 :<span class="tlaUNC">           0 :                 *name = file_data-&gt;name;</span></span>
<span id="L236"><span class="lineNum">     236</span>                 :             :         }</span>
<span id="L237"><span class="lineNum">     237</span>                 :             : </span>
<span id="L238"><span class="lineNum">     238</span>                 :             :         return 0;</span>
<span id="L239"><span class="lineNum">     239</span>                 :             : }</span>
<span id="L240"><span class="lineNum">     240</span>                 :             : </span>
<span id="L241"><span class="lineNum">     241</span>                 :<span class="tlaGNC tlaBgGNC">          43 : static int file_get_info(struct blocklevel_device *bl, const char **name,</span></span>
<span id="L242"><span class="lineNum">     242</span>                 :             :                 uint64_t *total_size, uint32_t *erase_granule)</span>
<span id="L243"><span class="lineNum">     243</span>                 :             : {</span>
<span id="L244"><span class="lineNum">     244</span>                 :<span class="tlaGNC">          43 :         struct file_data *file_data = container_of(bl, struct file_data, bl);</span></span>
<span id="L245"><span class="lineNum">     245</span>                 :<span class="tlaGNC">          43 :         struct stat st;</span></span>
<span id="L246"><span class="lineNum">     246</span>                 :<span class="tlaGNC">          43 :         int rc;</span></span>
<span id="L247"><span class="lineNum">     247</span>                 :             : </span>
<span id="L248"><span class="lineNum">     248</span>                 :<span class="tlaGNC">          43 :         if (fstat(file_data-&gt;fd, &amp;st))</span></span>
<span id="L249"><span class="lineNum">     249</span>                 :             :                 return FLASH_ERR_PARM_ERROR;</span>
<span id="L250"><span class="lineNum">     250</span>                 :             : </span>
<span id="L251"><span class="lineNum">     251</span>                 :<span class="tlaGNC">          43 :         if (total_size)</span></span>
<span id="L252"><span class="lineNum">     252</span>                 :<span class="tlaGNC">          43 :                 *total_size = st.st_size;</span></span>
<span id="L253"><span class="lineNum">     253</span>                 :             : </span>
<span id="L254"><span class="lineNum">     254</span>                 :<span class="tlaGNC">          43 :         if (erase_granule)</span></span>
<span id="L255"><span class="lineNum">     255</span>                 :<span class="tlaGNC">          11 :                 *erase_granule = 1;</span></span>
<span id="L256"><span class="lineNum">     256</span>                 :             : </span>
<span id="L257"><span class="lineNum">     257</span>                 :<span class="tlaGNC">          43 :         if (name) {</span></span>
<span id="L258"><span class="lineNum">     258</span>                 :<span class="tlaGNC">          11 :                 rc = get_info_name(file_data, &amp;(file_data-&gt;name));</span></span>
<span id="L259"><span class="lineNum">     259</span>                 :<span class="tlaGNC">          11 :                 if (rc)</span></span>
<span id="L260"><span class="lineNum">     260</span>                 :             :                         return rc;</span>
<span id="L261"><span class="lineNum">     261</span>                 :<span class="tlaGNC">          11 :                 *name = file_data-&gt;name;</span></span>
<span id="L262"><span class="lineNum">     262</span>                 :             :         }</span>
<span id="L263"><span class="lineNum">     263</span>                 :             : </span>
<span id="L264"><span class="lineNum">     264</span>                 :             :         return 0;</span>
<span id="L265"><span class="lineNum">     265</span>                 :             : }</span>
<span id="L266"><span class="lineNum">     266</span>                 :             : </span>
<span id="L267"><span class="lineNum">     267</span>                 :<span class="tlaGNC">          34 : int file_init(int fd, struct blocklevel_device **bl)</span></span>
<span id="L268"><span class="lineNum">     268</span>                 :             : {</span>
<span id="L269"><span class="lineNum">     269</span>                 :<span class="tlaGNC">          34 :         struct file_data *file_data;</span></span>
<span id="L270"><span class="lineNum">     270</span>                 :<span class="tlaGNC">          34 :         struct stat sbuf;</span></span>
<span id="L271"><span class="lineNum">     271</span>                 :             : </span>
<span id="L272"><span class="lineNum">     272</span>                 :<span class="tlaGNC">          34 :         if (!bl)</span></span>
<span id="L273"><span class="lineNum">     273</span>                 :             :                 return FLASH_ERR_PARM_ERROR;</span>
<span id="L274"><span class="lineNum">     274</span>                 :             : </span>
<span id="L275"><span class="lineNum">     275</span>                 :<span class="tlaGNC">          34 :         *bl = NULL;</span></span>
<span id="L276"><span class="lineNum">     276</span>                 :             : </span>
<span id="L277"><span class="lineNum">     277</span>                 :<span class="tlaGNC">          34 :         file_data = calloc(1, sizeof(struct file_data));</span></span>
<span id="L278"><span class="lineNum">     278</span>                 :<span class="tlaGNC">          34 :         if (!file_data)</span></span>
<span id="L279"><span class="lineNum">     279</span>                 :             :                 return FLASH_ERR_MALLOC_FAILED;</span>
<span id="L280"><span class="lineNum">     280</span>                 :             : </span>
<span id="L281"><span class="lineNum">     281</span>                 :<span class="tlaGNC">          34 :         file_data-&gt;fd = fd;</span></span>
<span id="L282"><span class="lineNum">     282</span>                 :<span class="tlaGNC">          34 :         file_data-&gt;bl.reacquire = &amp;file_reacquire;</span></span>
<span id="L283"><span class="lineNum">     283</span>                 :<span class="tlaGNC">          34 :         file_data-&gt;bl.release = &amp;file_release;</span></span>
<span id="L284"><span class="lineNum">     284</span>                 :<span class="tlaGNC">          34 :         file_data-&gt;bl.read = &amp;file_read;</span></span>
<span id="L285"><span class="lineNum">     285</span>                 :<span class="tlaGNC">          34 :         file_data-&gt;bl.write = &amp;file_write;</span></span>
<span id="L286"><span class="lineNum">     286</span>                 :<span class="tlaGNC">          34 :         file_data-&gt;bl.erase = &amp;file_erase;</span></span>
<span id="L287"><span class="lineNum">     287</span>                 :<span class="tlaGNC">          34 :         file_data-&gt;bl.get_info = &amp;file_get_info;</span></span>
<span id="L288"><span class="lineNum">     288</span>                 :<span class="tlaGNC">          34 :         file_data-&gt;bl.erase_mask = 0;</span></span>
<span id="L289"><span class="lineNum">     289</span>                 :             : </span>
<span id="L290"><span class="lineNum">     290</span>                 :             :         /*</span>
<span id="L291"><span class="lineNum">     291</span>                 :             :          * If the blocklevel_device is only inited with file_init() then keep</span>
<span id="L292"><span class="lineNum">     292</span>                 :             :          * alive is assumed, as fd will change otherwise and this may break</span>
<span id="L293"><span class="lineNum">     293</span>                 :             :          * callers assumptions.</span>
<span id="L294"><span class="lineNum">     294</span>                 :             :          */</span>
<span id="L295"><span class="lineNum">     295</span>                 :<span class="tlaGNC">          34 :         file_data-&gt;bl.keep_alive = 1;</span></span>
<span id="L296"><span class="lineNum">     296</span>                 :             : </span>
<span id="L297"><span class="lineNum">     297</span>                 :             :         /*</span>
<span id="L298"><span class="lineNum">     298</span>                 :             :          * Unfortunately not all file descriptors are created equal...</span>
<span id="L299"><span class="lineNum">     299</span>                 :             :          * Here we check to see if the file descriptor is to an MTD device, in</span>
<span id="L300"><span class="lineNum">     300</span>                 :             :          * which case we have to erase and get the size of it differently.</span>
<span id="L301"><span class="lineNum">     301</span>                 :             :          */</span>
<span id="L302"><span class="lineNum">     302</span>                 :<span class="tlaGNC">          34 :         if (fstat(file_data-&gt;fd, &amp;sbuf) == -1)</span></span>
<span id="L303"><span class="lineNum">     303</span>                 :<span class="tlaUNC tlaBgUNC">           0 :                 goto out;</span></span>
<span id="L304"><span class="lineNum">     304</span>                 :             : </span>
<span id="L305"><span class="lineNum">     305</span>                 :             :         /* Won't be able to handle other than MTD devices for now */</span>
<span id="L306"><span class="lineNum">     306</span>                 :<span class="tlaGNC tlaBgGNC">          34 :         if (S_ISCHR(sbuf.st_mode)) {</span></span>
<span id="L307"><span class="lineNum">     307</span>                 :<span class="tlaUNC tlaBgUNC">           0 :                 file_data-&gt;bl.erase = &amp;mtd_erase;</span></span>
<span id="L308"><span class="lineNum">     308</span>                 :<span class="tlaUNC">           0 :                 file_data-&gt;bl.get_info = &amp;mtd_get_info;</span></span>
<span id="L309"><span class="lineNum">     309</span>                 :<span class="tlaUNC">           0 :                 file_data-&gt;bl.flags = WRITE_NEED_ERASE;</span></span>
<span id="L310"><span class="lineNum">     310</span>                 :<span class="tlaUNC">           0 :                 mtd_get_info(&amp;file_data-&gt;bl, NULL, NULL, &amp;(file_data-&gt;bl.erase_mask));</span></span>
<span id="L311"><span class="lineNum">     311</span>                 :<span class="tlaUNC">           0 :                 file_data-&gt;bl.erase_mask--;</span></span>
<span id="L312"><span class="lineNum">     312</span>                 :<span class="tlaGNC tlaBgGNC">          34 :         } else if (!S_ISREG(sbuf.st_mode)) {</span></span>
<span id="L313"><span class="lineNum">     313</span>                 :             :                 /* If not a char device or a regular file something went wrong */</span>
<span id="L314"><span class="lineNum">     314</span>                 :<span class="tlaUNC tlaBgUNC">           0 :                 goto out;</span></span>
<span id="L315"><span class="lineNum">     315</span>                 :             :         }</span>
<span id="L316"><span class="lineNum">     316</span>                 :             : </span>
<span id="L317"><span class="lineNum">     317</span>                 :<span class="tlaGNC tlaBgGNC">          34 :         *bl = &amp;(file_data-&gt;bl);</span></span>
<span id="L318"><span class="lineNum">     318</span>                 :<span class="tlaGNC">          34 :         return 0;</span></span>
<span id="L319"><span class="lineNum">     319</span>                 :<span class="tlaUNC tlaBgUNC">           0 : out:</span></span>
<span id="L320"><span class="lineNum">     320</span>                 :<span class="tlaUNC">           0 :         free(file_data);</span></span>
<span id="L321"><span class="lineNum">     321</span>                 :<span class="tlaUNC">           0 :         return FLASH_ERR_PARM_ERROR;</span></span>
<span id="L322"><span class="lineNum">     322</span>                 :             : }</span>
<span id="L323"><span class="lineNum">     323</span>                 :             : </span>
<span id="L324"><span class="lineNum">     324</span>                 :<span class="tlaGNC tlaBgGNC">          34 : int file_init_path(const char *path, int *r_fd, bool keep_alive,</span></span>
<span id="L325"><span class="lineNum">     325</span>                 :             :                 struct blocklevel_device **bl)</span>
<span id="L326"><span class="lineNum">     326</span>                 :             : {</span>
<span id="L327"><span class="lineNum">     327</span>                 :<span class="tlaGNC">          34 :         int fd, rc;</span></span>
<span id="L328"><span class="lineNum">     328</span>                 :<span class="tlaGNC">          34 :         char *path_ptr = NULL;</span></span>
<span id="L329"><span class="lineNum">     329</span>                 :<span class="tlaGNC">          34 :         struct file_data *file_data;</span></span>
<span id="L330"><span class="lineNum">     330</span>                 :             : </span>
<span id="L331"><span class="lineNum">     331</span>                 :<span class="tlaGNC">          34 :         if (!path || !bl)</span></span>
<span id="L332"><span class="lineNum">     332</span>                 :             :                 return FLASH_ERR_PARM_ERROR;</span>
<span id="L333"><span class="lineNum">     333</span>                 :             : </span>
<span id="L334"><span class="lineNum">     334</span>                 :<span class="tlaGNC">          34 :         fd = open(path, O_RDWR);</span></span>
<span id="L335"><span class="lineNum">     335</span>                 :<span class="tlaGNC">          34 :         if (fd == -1)</span></span>
<span id="L336"><span class="lineNum">     336</span>                 :             :                 return FLASH_ERR_PARM_ERROR;</span>
<span id="L337"><span class="lineNum">     337</span>                 :             : </span>
<span id="L338"><span class="lineNum">     338</span>                 :             :         /*</span>
<span id="L339"><span class="lineNum">     339</span>                 :             :          * strdup() first so don't have to deal with malloc failure after</span>
<span id="L340"><span class="lineNum">     340</span>                 :             :          * file_init()</span>
<span id="L341"><span class="lineNum">     341</span>                 :             :          */</span>
<span id="L342"><span class="lineNum">     342</span>                 :<span class="tlaGNC">          34 :         path_ptr = strdup(path);</span></span>
<span id="L343"><span class="lineNum">     343</span>                 :<span class="tlaGNC">          34 :         if (!path_ptr) {</span></span>
<span id="L344"><span class="lineNum">     344</span>                 :<span class="tlaUNC tlaBgUNC">           0 :                 rc = FLASH_ERR_MALLOC_FAILED;</span></span>
<span id="L345"><span class="lineNum">     345</span>                 :<span class="tlaUNC">           0 :                 goto out;</span></span>
<span id="L346"><span class="lineNum">     346</span>                 :             :         }</span>
<span id="L347"><span class="lineNum">     347</span>                 :             : </span>
<span id="L348"><span class="lineNum">     348</span>                 :<span class="tlaGNC tlaBgGNC">          34 :         rc = file_init(fd, bl);</span></span>
<span id="L349"><span class="lineNum">     349</span>                 :<span class="tlaGNC">          34 :         if (rc)</span></span>
<span id="L350"><span class="lineNum">     350</span>                 :<span class="tlaUNC tlaBgUNC">           0 :                 goto out;</span></span>
<span id="L351"><span class="lineNum">     351</span>                 :             : </span>
<span id="L352"><span class="lineNum">     352</span>                 :<span class="tlaGNC tlaBgGNC">          34 :         file_data = container_of(*bl, struct file_data, bl);</span></span>
<span id="L353"><span class="lineNum">     353</span>                 :<span class="tlaGNC">          34 :         file_data-&gt;bl.keep_alive = keep_alive;</span></span>
<span id="L354"><span class="lineNum">     354</span>                 :<span class="tlaGNC">          34 :         file_data-&gt;path = path_ptr;</span></span>
<span id="L355"><span class="lineNum">     355</span>                 :             : </span>
<span id="L356"><span class="lineNum">     356</span>                 :<span class="tlaGNC">          34 :         if (r_fd)</span></span>
<span id="L357"><span class="lineNum">     357</span>                 :<span class="tlaUNC tlaBgUNC">           0 :                 *r_fd = fd;</span></span>
<span id="L358"><span class="lineNum">     358</span>                 :             : </span>
<span id="L359"><span class="lineNum">     359</span>                 :             :         return rc;</span>
<span id="L360"><span class="lineNum">     360</span>                 :<span class="tlaUNC">           0 : out:</span></span>
<span id="L361"><span class="lineNum">     361</span>                 :<span class="tlaUNC">           0 :         free(path_ptr);</span></span>
<span id="L362"><span class="lineNum">     362</span>                 :<span class="tlaUNC">           0 :         close(fd);</span></span>
<span id="L363"><span class="lineNum">     363</span>                 :<span class="tlaUNC">           0 :         return rc;</span></span>
<span id="L364"><span class="lineNum">     364</span>                 :             : }</span>
<span id="L365"><span class="lineNum">     365</span>                 :             : </span>
<span id="L366"><span class="lineNum">     366</span>                 :<span class="tlaGNC tlaBgGNC">          34 : void file_exit(struct blocklevel_device *bl)</span></span>
<span id="L367"><span class="lineNum">     367</span>                 :             : {</span>
<span id="L368"><span class="lineNum">     368</span>                 :<span class="tlaGNC">          34 :         struct file_data *file_data;</span></span>
<span id="L369"><span class="lineNum">     369</span>                 :<span class="tlaGNC">          34 :         if (bl) {</span></span>
<span id="L370"><span class="lineNum">     370</span>                 :<span class="tlaGNC">          34 :                 free(bl-&gt;ecc_prot.prot);</span></span>
<span id="L371"><span class="lineNum">     371</span>                 :<span class="tlaGNC">          34 :                 file_data = container_of(bl, struct file_data, bl);</span></span>
<span id="L372"><span class="lineNum">     372</span>                 :<span class="tlaGNC">          34 :                 free(file_data-&gt;name);</span></span>
<span id="L373"><span class="lineNum">     373</span>                 :<span class="tlaGNC">          34 :                 free(file_data-&gt;path);</span></span>
<span id="L374"><span class="lineNum">     374</span>                 :<span class="tlaGNC">          34 :                 free(file_data);</span></span>
<span id="L375"><span class="lineNum">     375</span>                 :             :         }</span>
<span id="L376"><span class="lineNum">     376</span>                 :<span class="tlaGNC">          34 : }</span></span>
<span id="L377"><span class="lineNum">     377</span>                 :             : </span>
<span id="L378"><span class="lineNum">     378</span>                 :<span class="tlaGNC">          34 : void file_exit_close(struct blocklevel_device *bl)</span></span>
<span id="L379"><span class="lineNum">     379</span>                 :             : {</span>
<span id="L380"><span class="lineNum">     380</span>                 :<span class="tlaGNC">          34 :         struct file_data *file_data;</span></span>
<span id="L381"><span class="lineNum">     381</span>                 :<span class="tlaGNC">          34 :         if (bl) {</span></span>
<span id="L382"><span class="lineNum">     382</span>                 :<span class="tlaGNC">          34 :                 file_data = container_of(bl, struct file_data, bl);</span></span>
<span id="L383"><span class="lineNum">     383</span>                 :<span class="tlaGNC">          34 :                 close(file_data-&gt;fd);</span></span>
<span id="L384"><span class="lineNum">     384</span>                 :<span class="tlaGNC">          34 :                 file_exit(bl);</span></span>
<span id="L385"><span class="lineNum">     385</span>                 :             :         }</span>
<span id="L386"><span class="lineNum">     386</span>                 :<span class="tlaGNC">          34 : }</span></span>
        </pre>
              </td>
            </tr>
          </table>
          <br>

          <table width="100%" border=0 cellspacing=0 cellpadding=0>
            <tr><td class="ruler"><img src="../glass.png" width=3 height=3 alt=""></td></tr>
            <tr><td class="versionInfo">Generated by: <a href="https://github.com//linux-test-project/lcov" target="_parent">LCOV version 2.0-1</a></td></tr>
          </table>
          <br>

</body>
</html>
