Mostly done??

Have to do SPI stuff for SD though
This commit is contained in:
David Lenfesty 2019-12-02 14:32:12 -07:00
parent 49b8aee14b
commit 55025a9ada
61 changed files with 552 additions and 9328 deletions

View File

@ -17,7 +17,8 @@
"periph.h": "c",
"comms.h": "c",
"string.h": "c",
"main.h": "c"
"main.h": "c",
"sleep.h": "c"
}
}
}

View File

@ -4,6 +4,7 @@
#include <avr/io.h>
#include <string.h>
/**
* Our format goes like this:
*
@ -24,8 +25,14 @@ typedef enum {
/** @brief Inline function to send commands and values.
*/
inline void comms_send(comms_cmd_t cmd) {
#if defined(__AVR_ATtiny2313__)
while (! (UCSRA & (1 << UDRE)));
UDR = cmd;
#elif defined(__AVR_ATmega328P__)
while (! (UCSR0A & (1 << UDRE0)));
UDR0 = cmd;
#endif
}
/** @brief Selects a file from the list on the DAC side.
@ -45,6 +52,18 @@ inline void comms_query_name(uint8_t id) {
comms_send(id);
}
/** @brief Repliers with the name of the requsted song ID
*/
inline void comms_reply_name(char* name) {
uint8_t len = strlen(name);
comms_send(COMMS_CMD_REPLY_NAME);
comms_send(len);
for (uint8_t i = 0; i < len; i++) {
comms_send((uint8_t) name[i]);
}
}
/** @brief Clears the LCD list of files.
*/
inline void comms_clear() {

View File

@ -10,7 +10,10 @@
"group": {
"kind": "build",
"isDefault": true
}
},
"problemMatcher": [
"$gcc"
]
}
]
}

View File

@ -0,0 +1 @@
../comms/comms.h

View File

@ -1,74 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Data Structures</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Data Structures</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the data structures with brief descriptions:</div><table>
<tr><td class="indexkey"><a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a></td><td class="indexvalue">Describes a directory entry </td></tr>
<tr><td class="indexkey"><a class="el" href="structpartition__struct.html">partition_struct</a></td><td class="indexvalue">Describes a partition </td></tr>
<tr><td class="indexkey"><a class="el" href="structsd__raw__info.html">sd_raw_info</a></td><td class="indexvalue">This struct is used by <a class="el" href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79" title="Reads informational data from the card.">sd_raw_get_info()</a> to return manufacturing and status information of the card </td></tr>
</table>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 677 B

View File

@ -1,89 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: byteordering.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">byteordering.c File Reference<div class="ingroups"><a class="el" href="group__byteordering.html">Byteordering</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Byte-order handling implementation (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga093e2aa18385b96e30198e9ec902c3a8">read16</a> (const uint8_t *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a 16-bit integer from memory in little-endian byte order. <a href="group__byteordering.html#ga093e2aa18385b96e30198e9ec902c3a8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gab7db40b834553f07d18076ac05c85887">read32</a> (const uint8_t *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a 32-bit integer from memory in little-endian byte order. <a href="group__byteordering.html#gab7db40b834553f07d18076ac05c85887"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga101b4c983b1af68a4886bc4d1cce7cfd">write16</a> (uint8_t *p, uint16_t i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a 16-bit integer into memory in little-endian byte order. <a href="group__byteordering.html#ga101b4c983b1af68a4886bc4d1cce7cfd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gae4a413d089ca0706b9d0a66c19163e86">write32</a> (uint8_t *p, uint32_t i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a 32-bit integer into memory in little-endian byte order. <a href="group__byteordering.html#gae4a413d089ca0706b9d0a66c19163e86"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Byte-order handling implementation (license: GPLv2 or LGPLv2.1) </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Roland Riegel </dd></dl>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,108 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: byteordering.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">byteordering.h File Reference<div class="ingroups"><a class="el" href="group__byteordering.html">Byteordering</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Byte-order handling header (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gafe6b840e18479649f2f279510841b725">HTOL16</a>(val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 16-bit integer from host byte order to little-endian byte order. <a href="group__byteordering.html#gafe6b840e18479649f2f279510841b725"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga4721d1b0a8ce813e569f1f50e28cbd49">HTOL32</a>(val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 32-bit integer from host byte order to little-endian byte order. <a href="group__byteordering.html#ga4721d1b0a8ce813e569f1f50e28cbd49"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga5c0de5da892f4416d2e6a08a4313dd43">LTOH16</a>(val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 16-bit integer from little-endian byte order to host byte order. <a href="group__byteordering.html#ga5c0de5da892f4416d2e6a08a4313dd43"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gad6a95c92a285d197c78cd0c680266682">LTOH32</a>(val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 32-bit integer from little-endian byte order to host byte order. <a href="group__byteordering.html#gad6a95c92a285d197c78cd0c680266682"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gab0e4bd12631fd8f1c1566b53cc5d701b">htol16</a> (uint16_t h)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 16-bit integer from host byte order to little-endian byte order. <a href="group__byteordering.html#gab0e4bd12631fd8f1c1566b53cc5d701b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gad99f704c5d785948044d1a0a81ffdd78">htol32</a> (uint32_t h)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 32-bit integer from host byte order to little-endian byte order. <a href="group__byteordering.html#gad99f704c5d785948044d1a0a81ffdd78"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga956619f7d735460ad335c33399a5bfd0">ltoh16</a> (uint16_t l)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 16-bit integer from little-endian byte order to host byte order. <a href="group__byteordering.html#ga956619f7d735460ad335c33399a5bfd0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gaa6a3e9e41e5a7fa0c61a9b7355135977">ltoh32</a> (uint32_t l)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 32-bit integer from little-endian byte order to host byte order. <a href="group__byteordering.html#gaa6a3e9e41e5a7fa0c61a9b7355135977"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga093e2aa18385b96e30198e9ec902c3a8">read16</a> (const uint8_t *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a 16-bit integer from memory in little-endian byte order. <a href="group__byteordering.html#ga093e2aa18385b96e30198e9ec902c3a8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gab7db40b834553f07d18076ac05c85887">read32</a> (const uint8_t *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a 32-bit integer from memory in little-endian byte order. <a href="group__byteordering.html#gab7db40b834553f07d18076ac05c85887"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga101b4c983b1af68a4886bc4d1cce7cfd">write16</a> (uint8_t *p, uint16_t i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a 16-bit integer into memory in little-endian byte order. <a href="group__byteordering.html#ga101b4c983b1af68a4886bc4d1cce7cfd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gae4a413d089ca0706b9d0a66c19163e86">write32</a> (uint8_t *p, uint32_t i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a 32-bit integer into memory in little-endian byte order. <a href="group__byteordering.html#gae4a413d089ca0706b9d0a66c19163e86"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Byte-order handling header (license: GPLv2 or LGPLv2.1) </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Roland Riegel </dd></dl>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,80 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Data Structure Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Data Structure Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
</td><td></td></tr>
<tr><td></td></tr>
<tr><td valign="top"><a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structpartition__struct.html">partition_struct</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structsd__raw__info.html">sd_raw_info</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 B

View File

@ -1,949 +0,0 @@
/* The standard CSS for doxygen */
body, table, div, p, dl {
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
font-size: 13px;
line-height: 1.3;
}
/* @group Heading Levels */
h1 {
font-size: 150%;
}
.title {
font-size: 150%;
font-weight: bold;
margin: 10px 2px;
}
h2 {
font-size: 120%;
}
h3 {
font-size: 100%;
}
dt {
font-weight: bold;
}
div.multicol {
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
-moz-column-count: 3;
-webkit-column-count: 3;
}
p.startli, p.startdd, p.starttd {
margin-top: 2px;
}
p.endli {
margin-bottom: 0px;
}
p.enddd {
margin-bottom: 4px;
}
p.endtd {
margin-bottom: 2px;
}
/* @end */
caption {
font-weight: bold;
}
span.legend {
font-size: 70%;
text-align: center;
}
h3.version {
font-size: 90%;
text-align: center;
}
div.qindex, div.navtab{
background-color: #EBEFF6;
border: 1px solid #A3B4D7;
text-align: center;
}
div.qindex, div.navpath {
width: 100%;
line-height: 140%;
}
div.navtab {
margin-right: 15px;
}
/* @group Link Styling */
a {
color: #3D578C;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
color: #4665A2;
}
a:hover {
text-decoration: underline;
}
a.qindex {
font-weight: bold;
}
a.qindexHL {
font-weight: bold;
background-color: #9CAFD4;
color: #ffffff;
border: 1px double #869DCA;
}
.contents a.qindexHL:visited {
color: #ffffff;
}
a.el {
font-weight: bold;
}
a.elRef {
}
a.code, a.code:visited {
color: #4665A2;
}
a.codeRef, a.codeRef:visited {
color: #4665A2;
}
/* @end */
dl.el {
margin-left: -1cm;
}
.fragment {
font-family: monospace, fixed;
font-size: 105%;
}
pre.fragment {
border: 1px solid #C4CFE5;
background-color: #FBFCFD;
padding: 4px 6px;
margin: 4px 8px 4px 2px;
overflow: auto;
word-wrap: break-word;
font-size: 9pt;
line-height: 125%;
}
div.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
margin-bottom: 3px;
margin-top: 3px;
padding: 0.2em;
border: solid thin #333;
border-radius: 0.5em;
-webkit-border-radius: .5em;
-moz-border-radius: .5em;
box-shadow: 2px 2px 3px #999;
-webkit-box-shadow: 2px 2px 3px #999;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
}
div.groupHeader {
margin-left: 16px;
margin-top: 12px;
font-weight: bold;
}
div.groupText {
margin-left: 16px;
font-style: italic;
}
body {
background-color: white;
color: black;
margin: 0;
}
div.contents {
margin-top: 10px;
margin-left: 8px;
margin-right: 8px;
}
td.indexkey {
background-color: #EBEFF6;
font-weight: bold;
border: 1px solid #C4CFE5;
margin: 2px 0px 2px 0;
padding: 2px 10px;
white-space: nowrap;
vertical-align: top;
}
td.indexvalue {
background-color: #EBEFF6;
border: 1px solid #C4CFE5;
padding: 2px 10px;
margin: 2px 0px;
}
tr.memlist {
background-color: #EEF1F7;
}
p.formulaDsp {
text-align: center;
}
img.formulaDsp {
}
img.formulaInl {
vertical-align: middle;
}
div.center {
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
padding: 0px;
}
div.center img {
border: 0px;
}
address.footer {
text-align: right;
padding-right: 12px;
}
img.footer {
border: 0px;
vertical-align: middle;
}
/* @group Code Colorization */
span.keyword {
color: #008000
}
span.keywordtype {
color: #604020
}
span.keywordflow {
color: #e08000
}
span.comment {
color: #800000
}
span.preprocessor {
color: #806020
}
span.stringliteral {
color: #002080
}
span.charliteral {
color: #008080
}
span.vhdldigit {
color: #ff00ff
}
span.vhdlchar {
color: #000000
}
span.vhdlkeyword {
color: #700070
}
span.vhdllogic {
color: #ff0000
}
/* @end */
/*
.search {
color: #003399;
font-weight: bold;
}
form.search {
margin-bottom: 0px;
margin-top: 0px;
}
input.search {
font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
*/
td.tiny {
font-size: 75%;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
border: 1px solid #A3B4D7;
}
th.dirtab {
background: #EBEFF6;
font-weight: bold;
}
hr {
height: 0px;
border: none;
border-top: 1px solid #4A6AAA;
}
hr.footer {
height: 1px;
}
/* @group Member Descriptions */
table.memberdecls {
border-spacing: 0px;
padding: 0px;
}
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
background-color: #F9FAFC;
border: none;
margin: 4px;
padding: 1px 0 0 8px;
}
.mdescLeft, .mdescRight {
padding: 0px 8px 4px 8px;
color: #555;
}
.memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #C4CFE5;
}
.memItemLeft, .memTemplItemLeft {
white-space: nowrap;
}
.memItemRight {
width: 100%;
}
.memTemplParams {
color: #4665A2;
white-space: nowrap;
}
/* @end */
/* @group Member Details */
/* Styles for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #4665A2;
font-weight: normal;
margin-left: 9px;
}
.memnav {
background-color: #EBEFF6;
border: 1px solid #A3B4D7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.mempage {
width: 100%;
}
.memitem {
padding: 0;
margin-bottom: 10px;
margin-right: 5px;
}
.memname {
white-space: nowrap;
font-weight: bold;
margin-left: 6px;
}
.memproto, dl.reflist dt {
border-top: 1px solid #A8B8D9;
border-left: 1px solid #A8B8D9;
border-right: 1px solid #A8B8D9;
padding: 6px 0px 6px 0px;
color: #253555;
font-weight: bold;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
/* opera specific markup */
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
border-top-right-radius: 8px;
border-top-left-radius: 8px;
/* firefox specific markup */
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-moz-border-radius-topright: 8px;
-moz-border-radius-topleft: 8px;
/* webkit specific markup */
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-webkit-border-top-right-radius: 8px;
-webkit-border-top-left-radius: 8px;
background-image:url('nav_f.png');
background-repeat:repeat-x;
background-color: #E2E8F2;
}
.memdoc, dl.reflist dd {
border-bottom: 1px solid #A8B8D9;
border-left: 1px solid #A8B8D9;
border-right: 1px solid #A8B8D9;
padding: 2px 5px;
background-color: #FBFCFD;
border-top-width: 0;
/* opera specific markup */
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
/* firefox specific markup */
-moz-border-radius-bottomleft: 8px;
-moz-border-radius-bottomright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
/* webkit specific markup */
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
}
dl.reflist dt {
padding: 5px;
}
dl.reflist dd {
margin: 0px 0px 10px 0px;
padding: 5px;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}
.params, .retval, .exception, .tparams {
border-spacing: 6px 2px;
}
.params .paramname, .retval .paramname {
font-weight: bold;
vertical-align: top;
}
.params .paramtype {
font-style: italic;
vertical-align: top;
}
.params .paramdir {
font-family: "courier new",courier,monospace;
vertical-align: top;
}
/* @end */
/* @group Directory (tree) */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin: 0px;
}
/* these are for tree view when used as main index */
.directory {
font-size: 9pt;
font-weight: bold;
margin: 5px;
}
.directory h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
/*
The following two styles can be used to replace the root node title
with an image of your choice. Simply uncomment the next two styles,
specify the name of your image and be sure to set 'height' to the
proper pixel height of your image.
*/
/*
.directory h3.swap {
height: 61px;
background-repeat: no-repeat;
background-image: url("yourimage.gif");
}
.directory h3.swap span {
display: none;
}
*/
.directory > h3 {
margin-top: 0;
}
.directory p {
margin: 0px;
white-space: nowrap;
}
.directory div {
display: none;
margin: 0px;
}
.directory img {
vertical-align: -30%;
}
/* these are for tree view when not used as main index */
.directory-alt {
font-size: 100%;
font-weight: bold;
}
.directory-alt h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
.directory-alt > h3 {
margin-top: 0;
}
.directory-alt p {
margin: 0px;
white-space: nowrap;
}
.directory-alt div {
display: none;
margin: 0px;
}
.directory-alt img {
vertical-align: -30%;
}
/* @end */
div.dynheader {
margin-top: 8px;
}
address {
font-style: normal;
color: #2A3D61;
}
table.doxtable {
border-collapse:collapse;
}
table.doxtable td, table.doxtable th {
border: 1px solid #2D4068;
padding: 3px 7px 2px;
}
table.doxtable th {
background-color: #374F7F;
color: #FFFFFF;
font-size: 110%;
padding-bottom: 4px;
padding-top: 5px;
text-align:left;
}
table.fieldtable {
width: 100%;
margin-bottom: 10px;
border: 1px solid #A8B8D9;
border-spacing: 0px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
}
.fieldtable td, .fieldtable th {
padding: 3px 7px 2px;
}
.fieldtable td.fieldtype, .fieldtable td.fieldname {
white-space: nowrap;
border-right: 1px solid #A8B8D9;
border-bottom: 1px solid #A8B8D9;
vertical-align: top;
}
.fieldtable td.fielddoc {
border-bottom: 1px solid #A8B8D9;
width: 100%;
}
.fieldtable tr:last-child td {
border-bottom: none;
}
.fieldtable th {
background-image:url('nav_f.png');
background-repeat:repeat-x;
background-color: #E2E8F2;
font-size: 90%;
color: #253555;
padding-bottom: 4px;
padding-top: 5px;
text-align:left;
-moz-border-radius-topleft: 4px;
-moz-border-radius-topright: 4px;
-webkit-border-top-left-radius: 4px;
-webkit-border-top-right-radius: 4px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom: 1px solid #A8B8D9;
}
.tabsearch {
top: 0px;
left: 10px;
height: 36px;
background-image: url('tab_b.png');
z-index: 101;
overflow: hidden;
font-size: 13px;
}
.navpath ul
{
font-size: 11px;
background-image:url('tab_b.png');
background-repeat:repeat-x;
height:30px;
line-height:30px;
color:#8AA0CC;
border:solid 1px #C2CDE4;
overflow:hidden;
margin:0px;
padding:0px;
}
.navpath li
{
list-style-type:none;
float:left;
padding-left:10px;
padding-right:15px;
background-image:url('bc_s.png');
background-repeat:no-repeat;
background-position:right;
color:#364D7C;
}
.navpath li.navelem a
{
height:32px;
display:block;
text-decoration: none;
outline: none;
}
.navpath li.navelem a:hover
{
color:#6884BD;
}
.navpath li.footer
{
list-style-type:none;
float:right;
padding-left:10px;
padding-right:15px;
background-image:none;
background-repeat:no-repeat;
background-position:right;
color:#364D7C;
font-size: 8pt;
}
div.summary
{
float: right;
font-size: 8pt;
padding-right: 5px;
width: 50%;
text-align: right;
}
div.summary a
{
white-space: nowrap;
}
div.ingroups
{
margin-left: 5px;
font-size: 8pt;
padding-left: 5px;
width: 50%;
text-align: left;
}
div.ingroups a
{
white-space: nowrap;
}
div.header
{
background-image:url('nav_h.png');
background-repeat:repeat-x;
background-color: #F9FAFC;
margin: 0px;
border-bottom: 1px solid #C4CFE5;
}
div.headertitle
{
padding: 5px 5px 5px 7px;
}
dl
{
padding: 0 0 0 10px;
}
dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
{
border-left:4px solid;
padding: 0 0 0 6px;
}
dl.note
{
border-color: #D0C000;
}
dl.warning, dl.attention
{
border-color: #FF0000;
}
dl.pre, dl.post, dl.invariant
{
border-color: #00D000;
}
dl.deprecated
{
border-color: #505050;
}
dl.todo
{
border-color: #00C0E0;
}
dl.test
{
border-color: #3030E0;
}
dl.bug
{
border-color: #C08050;
}
#projectlogo
{
text-align: center;
vertical-align: bottom;
border-collapse: separate;
}
#projectlogo img
{
border: 0px none;
}
#projectname
{
font: 300% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 2px 0px;
}
#projectbrief
{
font: 120% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
#projectnumber
{
font: 50% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
#titlearea
{
padding: 0px;
margin: 0px;
width: 100%;
border-bottom: 1px solid #5373B4;
}
.image
{
text-align: center;
}
.dotgraph
{
text-align: center;
}
.mscgraph
{
text-align: center;
}
.caption
{
font-weight: bold;
}
div.zoom
{
border: 1px solid #90A5CE;
}
dl.citelist {
margin-bottom:50px;
}
dl.citelist dt {
color:#334975;
float:left;
font-weight:bold;
margin-right:10px;
padding:5px;
}
dl.citelist dd {
margin:2px 0;
padding:5px 0;
}
@media print
{
#top { display: none; }
#side-nav { display: none; }
#nav-path { display: none; }
body { overflow:visible; }
h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
.summary { display: none; }
.memitem { page-break-inside: avoid; }
#doc-content
{
margin-left:0 !important;
height:auto !important;
width:auto !important;
overflow:inherit;
display:inline;
}
pre.fragment
{
overflow: visible;
text-wrap: unrestricted;
white-space: -moz-pre-wrap; /* Moz */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
white-space: pre-wrap; /* CSS3 */
word-wrap: break-word; /* IE 5.5+ */
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,134 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: fat.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">fat.c File Reference<div class="ingroups"><a class="el" href="group__fat.html">FAT support</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>FAT implementation (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_fs_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__fs.html#ga5d726bac328b49abc2e6fb022d97092a">fat_open</a> (struct <a class="el" href="structpartition__struct.html">partition_struct</a> *partition)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a FAT filesystem. <a href="group__fat__fs.html#ga5d726bac328b49abc2e6fb022d97092a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__fs.html#ga057612824886e115b88bf5affcf76829">fat_close</a> (struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a FAT filesystem. <a href="group__fat__fs.html#ga057612824886e115b88bf5affcf76829"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga033743a7d8878712e0add6d57b750525">fat_get_dir_entry_of_path</a> (struct fat_fs_struct *fs, const char *path, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the directory entry of a path. <a href="group__fat__file.html#ga033743a7d8878712e0add6d57b750525"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_file_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga76a0b06949525b578db04a56d67fbfc4">fat_open_file</a> (struct fat_fs_struct *fs, const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a file on a FAT filesystem. <a href="group__fat__file.html#ga76a0b06949525b578db04a56d67fbfc4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga70b082abb4ebc8d4e9956886901b55fc">fat_close_file</a> (struct fat_file_struct *fd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a file. <a href="group__fat__file.html#ga70b082abb4ebc8d4e9956886901b55fc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">intptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga48e17b173bede64cb08cef05b88fd0ca">fat_read_file</a> (struct fat_file_struct *fd, uint8_t *buffer, uintptr_t buffer_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data from a file. <a href="group__fat__file.html#ga48e17b173bede64cb08cef05b88fd0ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">intptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga6782ff80eb6fba9b6ed1a66f33dae60a">fat_write_file</a> (struct fat_file_struct *fd, const uint8_t *buffer, uintptr_t buffer_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes data to a file. <a href="group__fat__file.html#ga6782ff80eb6fba9b6ed1a66f33dae60a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gad4c305cf004bae9bea48730ed20c87ec">fat_seek_file</a> (struct fat_file_struct *fd, int32_t *offset, uint8_t whence)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repositions the read/write file offset. <a href="group__fat__file.html#gad4c305cf004bae9bea48730ed20c87ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gace4858e7a145684f6c8cd14debe14255">fat_resize_file</a> (struct fat_file_struct *fd, uint32_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resizes a file to have a specific size. <a href="group__fat__file.html#gace4858e7a145684f6c8cd14debe14255"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_dir_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#gac7a5b4ad0b972759a965e1afd5bbc87c">fat_open_dir</a> (struct fat_fs_struct *fs, const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a directory. <a href="group__fat__dir.html#gac7a5b4ad0b972759a965e1afd5bbc87c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#ga2fed74d916370428e3dcf278e7050111">fat_close_dir</a> (struct fat_dir_struct *dd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a directory descriptor. <a href="group__fat__dir.html#ga2fed74d916370428e3dcf278e7050111"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#gab4bc79452dbf5ac2a2f3e1fccafd9534">fat_read_dir</a> (struct fat_dir_struct *dd, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the next directory entry contained within a parent directory. <a href="group__fat__dir.html#gab4bc79452dbf5ac2a2f3e1fccafd9534"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#ga2d74af47cb9fd44f7c974834f810225f">fat_reset_dir</a> (struct fat_dir_struct *dd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets a directory handle. <a href="group__fat__dir.html#ga2d74af47cb9fd44f7c974834f810225f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga9d17d09125359dfb440fc57eede40b4f">fat_create_file</a> (struct fat_dir_struct *parent, const char *file, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a file. <a href="group__fat__file.html#ga9d17d09125359dfb440fc57eede40b4f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga46055219b942eb8d57ffae9dc6447e7c">fat_delete_file</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes a file or directory. <a href="group__fat__file.html#ga46055219b942eb8d57ffae9dc6447e7c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gaba4d2c80ccd8f1aebcecf7072dc37510">fat_move_file</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, struct fat_dir_struct *parent_new, const char *file_new)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves or renames a file. <a href="group__fat__file.html#gaba4d2c80ccd8f1aebcecf7072dc37510"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#gaff3b524066c9a937fae32771c80e7603">fat_create_dir</a> (struct fat_dir_struct *parent, const char *dir, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a directory. <a href="group__fat__dir.html#gaff3b524066c9a937fae32771c80e7603"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#gac0b6889e84a48b2d69fd681e5ac2e772">fat_delete_dir</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes a directory. <a href="group__fat__dir.html#gac0b6889e84a48b2d69fd681e5ac2e772"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#ga8c448f10b372823ce01b39fefb0679b9">fat_move_dir</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, struct fat_dir_struct *parent_new, const char *dir_new)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves or renames a directory. <a href="group__fat__dir.html#ga8c448f10b372823ce01b39fefb0679b9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga24763fd73cbeb580ae5d19e975bde0d8">fat_get_file_modification_date</a> (const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint16_t *year, uint8_t *month, uint8_t *day)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the modification date of a file. <a href="group__fat__file.html#ga24763fd73cbeb580ae5d19e975bde0d8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga74f840c317556b7dae766e199d87a6ef">fat_get_file_modification_time</a> (const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint8_t *hour, uint8_t *min, uint8_t *sec)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the modification time of a file. <a href="group__fat__file.html#ga74f840c317556b7dae766e199d87a6ef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga02c969e994a556534c92906db5bb04fd">fat_set_file_modification_date</a> (struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint16_t year, uint8_t month, uint8_t day)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the modification time of a date. <a href="group__fat__file.html#ga02c969e994a556534c92906db5bb04fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gab514f14ce35a38bff3f16270dfdc033b">fat_set_file_modification_time</a> (struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint8_t hour, uint8_t min, uint8_t sec)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the modification time of a file. <a href="group__fat__file.html#gab514f14ce35a38bff3f16270dfdc033b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">offset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__fs.html#gaab7768ca45847d5c4033a91984d65f1a">fat_get_fs_size</a> (const struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the amount of total storage capacity of the filesystem in bytes. <a href="group__fat__fs.html#gaab7768ca45847d5c4033a91984d65f1a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">offset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__fs.html#gacc43179721b97d82fefafaf5625350bb">fat_get_fs_free</a> (const struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the amount of free storage capacity on the filesystem in bytes. <a href="group__fat__fs.html#gacc43179721b97d82fefafaf5625350bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafee6ea130655af67845e1cebe9a96bfc"></a><!-- doxytag: member="fat.c::fat_get_fs_free_32_callback" ref="gafee6ea130655af67845e1cebe9a96bfc" args="(uint8_t *buffer, offset_t offset, void *p)" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__fs.html#gafee6ea130655af67845e1cebe9a96bfc">fat_get_fs_free_32_callback</a> (uint8_t *buffer, offset_t offset, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function used for counting free clusters in a FAT32. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>FAT implementation (license: GPLv2 or LGPLv2.1) </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Roland Riegel </dd></dl>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,149 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: fat.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">fat.h File Reference<div class="ingroups"><a class="el" href="group__fat.html">FAT support</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>FAT header (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes a directory entry. <a href="structfat__dir__entry__struct.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gac404d1380dbf00e8a1d6145e035ef10b">FAT_ATTRIB_READONLY</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file is read-only. <a href="group__fat__file.html#gac404d1380dbf00e8a1d6145e035ef10b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gaaf88f01d19ef4ca777c9c683f458f45f">FAT_ATTRIB_HIDDEN</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file is hidden. <a href="group__fat__file.html#gaaf88f01d19ef4ca777c9c683f458f45f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gae5aa3610233e87e4ca36b2afe3c3854c">FAT_ATTRIB_SYSTEM</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file is a system file. <a href="group__fat__file.html#gae5aa3610233e87e4ca36b2afe3c3854c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga86f9c93dd409d11813361d48517ccbce">FAT_ATTRIB_VOLUME</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file is empty and has the volume label as its name. <a href="group__fat__file.html#ga86f9c93dd409d11813361d48517ccbce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gacd38dccfabf884611c62aebc90e5adc7">FAT_ATTRIB_DIR</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file is a directory. <a href="group__fat__file.html#gacd38dccfabf884611c62aebc90e5adc7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga18ef7ecd9adce93d49a571882e145c99">FAT_ATTRIB_ARCHIVE</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file has to be archived. <a href="group__fat__file.html#ga18ef7ecd9adce93d49a571882e145c99"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gab870215439192f82ed358e2c7e94ba09">FAT_SEEK_SET</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The given offset is relative to the beginning of the file. <a href="group__fat__file.html#gab870215439192f82ed358e2c7e94ba09"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gadba54c574b9a738c8b766ea3b40eeef2">FAT_SEEK_CUR</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The given offset is relative to the current read/write position. <a href="group__fat__file.html#gadba54c574b9a738c8b766ea3b40eeef2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gab34d95851ea8b28646ce25c0e0039bc2">FAT_SEEK_END</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The given offset is relative to the end of the file. <a href="group__fat__file.html#gab34d95851ea8b28646ce25c0e0039bc2"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_fs_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga5d726bac328b49abc2e6fb022d97092a">fat_open</a> (struct <a class="el" href="structpartition__struct.html">partition_struct</a> *partition)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a FAT filesystem. <a href="group__fat.html#ga5d726bac328b49abc2e6fb022d97092a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga057612824886e115b88bf5affcf76829">fat_close</a> (struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a FAT filesystem. <a href="group__fat.html#ga057612824886e115b88bf5affcf76829"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_file_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga76a0b06949525b578db04a56d67fbfc4">fat_open_file</a> (struct fat_fs_struct *fs, const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a file on a FAT filesystem. <a href="group__fat.html#ga76a0b06949525b578db04a56d67fbfc4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga70b082abb4ebc8d4e9956886901b55fc">fat_close_file</a> (struct fat_file_struct *fd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a file. <a href="group__fat.html#ga70b082abb4ebc8d4e9956886901b55fc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">intptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga48e17b173bede64cb08cef05b88fd0ca">fat_read_file</a> (struct fat_file_struct *fd, uint8_t *buffer, uintptr_t buffer_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data from a file. <a href="group__fat.html#ga48e17b173bede64cb08cef05b88fd0ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">intptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga6782ff80eb6fba9b6ed1a66f33dae60a">fat_write_file</a> (struct fat_file_struct *fd, const uint8_t *buffer, uintptr_t buffer_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes data to a file. <a href="group__fat.html#ga6782ff80eb6fba9b6ed1a66f33dae60a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gad4c305cf004bae9bea48730ed20c87ec">fat_seek_file</a> (struct fat_file_struct *fd, int32_t *offset, uint8_t whence)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repositions the read/write file offset. <a href="group__fat.html#gad4c305cf004bae9bea48730ed20c87ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gace4858e7a145684f6c8cd14debe14255">fat_resize_file</a> (struct fat_file_struct *fd, uint32_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resizes a file to have a specific size. <a href="group__fat.html#gace4858e7a145684f6c8cd14debe14255"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_dir_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gac7a5b4ad0b972759a965e1afd5bbc87c">fat_open_dir</a> (struct fat_fs_struct *fs, const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a directory. <a href="group__fat.html#gac7a5b4ad0b972759a965e1afd5bbc87c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga2fed74d916370428e3dcf278e7050111">fat_close_dir</a> (struct fat_dir_struct *dd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a directory descriptor. <a href="group__fat.html#ga2fed74d916370428e3dcf278e7050111"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gab4bc79452dbf5ac2a2f3e1fccafd9534">fat_read_dir</a> (struct fat_dir_struct *dd, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the next directory entry contained within a parent directory. <a href="group__fat.html#gab4bc79452dbf5ac2a2f3e1fccafd9534"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga2d74af47cb9fd44f7c974834f810225f">fat_reset_dir</a> (struct fat_dir_struct *dd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets a directory handle. <a href="group__fat.html#ga2d74af47cb9fd44f7c974834f810225f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga9d17d09125359dfb440fc57eede40b4f">fat_create_file</a> (struct fat_dir_struct *parent, const char *file, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a file. <a href="group__fat.html#ga9d17d09125359dfb440fc57eede40b4f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga46055219b942eb8d57ffae9dc6447e7c">fat_delete_file</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes a file or directory. <a href="group__fat.html#ga46055219b942eb8d57ffae9dc6447e7c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gaba4d2c80ccd8f1aebcecf7072dc37510">fat_move_file</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, struct fat_dir_struct *parent_new, const char *file_new)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves or renames a file. <a href="group__fat.html#gaba4d2c80ccd8f1aebcecf7072dc37510"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gaff3b524066c9a937fae32771c80e7603">fat_create_dir</a> (struct fat_dir_struct *parent, const char *dir, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a directory. <a href="group__fat.html#gaff3b524066c9a937fae32771c80e7603"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga24763fd73cbeb580ae5d19e975bde0d8">fat_get_file_modification_date</a> (const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint16_t *year, uint8_t *month, uint8_t *day)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the modification date of a file. <a href="group__fat.html#ga24763fd73cbeb580ae5d19e975bde0d8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga74f840c317556b7dae766e199d87a6ef">fat_get_file_modification_time</a> (const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint8_t *hour, uint8_t *min, uint8_t *sec)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the modification time of a file. <a href="group__fat.html#ga74f840c317556b7dae766e199d87a6ef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga033743a7d8878712e0add6d57b750525">fat_get_dir_entry_of_path</a> (struct fat_fs_struct *fs, const char *path, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the directory entry of a path. <a href="group__fat.html#ga033743a7d8878712e0add6d57b750525"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">offset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gaab7768ca45847d5c4033a91984d65f1a">fat_get_fs_size</a> (const struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the amount of total storage capacity of the filesystem in bytes. <a href="group__fat.html#gaab7768ca45847d5c4033a91984d65f1a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">offset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gacc43179721b97d82fefafaf5625350bb">fat_get_fs_free</a> (const struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the amount of free storage capacity on the filesystem in bytes. <a href="group__fat.html#gacc43179721b97d82fefafaf5625350bb"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>FAT header (license: GPLv2 or LGPLv2.1) </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Roland Riegel </dd></dl>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,101 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: fat_config.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> </div>
<div class="headertitle">
<div class="title">fat_config.h File Reference<div class="ingroups"><a class="el" href="group__fat.html">FAT support</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>FAT configuration (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#gace70b11f85eb1b4e15220a65e9bd047d">FAT_WRITE_SUPPORT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls FAT write support. <a href="group__fat__config.html#gace70b11f85eb1b4e15220a65e9bd047d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga37b51677b33d2e74bec670f52c201a51">FAT_LFN_SUPPORT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls FAT long filename (LFN) support. <a href="group__fat__config.html#ga37b51677b33d2e74bec670f52c201a51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga80fa068db7d09fb267b36741d773eadf">FAT_DATETIME_SUPPORT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls FAT date and time support. <a href="group__fat__config.html#ga80fa068db7d09fb267b36741d773eadf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga73fdc6edf277eee1551985c3eb9602a3">FAT_FAT32_SUPPORT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls FAT32 support. <a href="group__fat__config.html#ga73fdc6edf277eee1551985c3eb9602a3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga13f632eadee5b7d768b14bf279e843fd">FAT_DELAY_DIRENTRY_UPDATE</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls updates of directory entries. <a href="group__fat__config.html#ga13f632eadee5b7d768b14bf279e843fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#gafeacb265671562dc1c4a863991163bb4">fat_get_datetime</a>(year, month, day, hour, min, sec)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the function used for retrieving current date and time. <a href="group__fat__config.html#gafeacb265671562dc1c4a863991163bb4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3d9b70f2a51fd6413f30f6a17e4480bd"></a><!-- doxytag: member="fat_config.h::FAT_FS_COUNT" ref="ga3d9b70f2a51fd6413f30f6a17e4480bd" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga3d9b70f2a51fd6413f30f6a17e4480bd">FAT_FS_COUNT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of filesystem handles. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae165b9e014e6213eb4429ebda300b6e8"></a><!-- doxytag: member="fat_config.h::FAT_FILE_COUNT" ref="gae165b9e014e6213eb4429ebda300b6e8" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#gae165b9e014e6213eb4429ebda300b6e8">FAT_FILE_COUNT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of file handles. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8309de7e60311102cb90f9bca6b7d2f8"></a><!-- doxytag: member="fat_config.h::FAT_DIR_COUNT" ref="ga8309de7e60311102cb90f9bca6b7d2f8" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga8309de7e60311102cb90f9bca6b7d2f8">FAT_DIR_COUNT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of directory handles. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>FAT configuration (license: GPLv2 or LGPLv2.1) </p>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,83 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">File List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><table>
<tr><td class="indexkey"><a class="el" href="byteordering_8c.html">byteordering.c</a></td><td class="indexvalue">Byte-order handling implementation (license: GPLv2 or LGPLv2.1) </td></tr>
<tr><td class="indexkey"><a class="el" href="byteordering_8h.html">byteordering.h</a></td><td class="indexvalue">Byte-order handling header (license: GPLv2 or LGPLv2.1) </td></tr>
<tr><td class="indexkey"><a class="el" href="fat_8c.html">fat.c</a></td><td class="indexvalue">FAT implementation (license: GPLv2 or LGPLv2.1) </td></tr>
<tr><td class="indexkey"><a class="el" href="fat_8h.html">fat.h</a></td><td class="indexvalue">FAT header (license: GPLv2 or LGPLv2.1) </td></tr>
<tr><td class="indexkey"><a class="el" href="fat__config_8h.html">fat_config.h</a></td><td class="indexvalue">FAT configuration (license: GPLv2 or LGPLv2.1) </td></tr>
<tr><td class="indexkey"><a class="el" href="partition_8c.html">partition.c</a></td><td class="indexvalue">Partition table implementation (license: GPLv2 or LGPLv2.1) </td></tr>
<tr><td class="indexkey"><a class="el" href="partition_8h.html">partition.h</a></td><td class="indexvalue">Partition table header (license: GPLv2 or LGPLv2.1) </td></tr>
<tr><td class="indexkey"><a class="el" href="partition__config_8h.html">partition_config.h</a></td><td class="indexvalue">Partition configuration (license: GPLv2 or LGPLv2.1) </td></tr>
<tr><td class="indexkey"><a class="el" href="sd-reader__config_8h.html">sd-reader_config.h</a></td><td class="indexvalue">Common sd-reader configuration used by all modules (license: GPLv2 or LGPLv2.1) </td></tr>
<tr><td class="indexkey"><a class="el" href="sd__raw_8c.html">sd_raw.c</a></td><td class="indexvalue">MMC/SD/SDHC raw access implementation (license: GPLv2 or LGPLv2.1) </td></tr>
<tr><td class="indexkey"><a class="el" href="sd__raw_8h.html">sd_raw.h</a></td><td class="indexvalue">MMC/SD/SDHC raw access header (license: GPLv2 or LGPLv2.1) </td></tr>
<tr><td class="indexkey"><a class="el" href="sd__raw__config_8h.html">sd_raw_config.h</a></td><td class="indexvalue">MMC/SD support configuration (license: GPLv2 or LGPLv2.1) </td></tr>
</table>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,145 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div><ul>
<li>attributes
: <a class="el" href="structfat__dir__entry__struct.html#a96bb7fbc6037217acccbeb22b718bc1a">fat_dir_entry_struct</a>
</li>
<li>capacity
: <a class="el" href="structsd__raw__info.html#af0443b0eb7316378025763674a5bf9b0">sd_raw_info</a>
</li>
<li>cluster
: <a class="el" href="structfat__dir__entry__struct.html#a33ff89147834319be295ce273eac0d16">fat_dir_entry_struct</a>
</li>
<li>device_read
: <a class="el" href="structpartition__struct.html#a9d82319d1b4f052c165a806069f49afa">partition_struct</a>
</li>
<li>device_read_interval
: <a class="el" href="structpartition__struct.html#a23ef90827c177f8f3385582416ff3ea3">partition_struct</a>
</li>
<li>device_write
: <a class="el" href="structpartition__struct.html#ac16e2eedf75a5e472ed93a92c30e0dad">partition_struct</a>
</li>
<li>device_write_interval
: <a class="el" href="structpartition__struct.html#a91923c55ba1c3a2dad435124964d91aa">partition_struct</a>
</li>
<li>entry_offset
: <a class="el" href="structfat__dir__entry__struct.html#acf491ee03bd21f230aecc449cac2c429">fat_dir_entry_struct</a>
</li>
<li>file_size
: <a class="el" href="structfat__dir__entry__struct.html#ac8821140df86bef96d2e4c9b177f386e">fat_dir_entry_struct</a>
</li>
<li>flag_copy
: <a class="el" href="structsd__raw__info.html#af23fccda0fa6740558d71c530576961b">sd_raw_info</a>
</li>
<li>flag_write_protect
: <a class="el" href="structsd__raw__info.html#a55f4daed5bef3289878fc0521ca191b1">sd_raw_info</a>
</li>
<li>flag_write_protect_temp
: <a class="el" href="structsd__raw__info.html#af3815572d323acafa8e3eabf19b154d5">sd_raw_info</a>
</li>
<li>format
: <a class="el" href="structsd__raw__info.html#a10d485029641a4fc1aadccad5e9eaa03">sd_raw_info</a>
</li>
<li>length
: <a class="el" href="structpartition__struct.html#a416da0cd540916a03a536c4fc5970635">partition_struct</a>
</li>
<li>long_name
: <a class="el" href="structfat__dir__entry__struct.html#a55d4698f86eecb6b49987a7c5f37566c">fat_dir_entry_struct</a>
</li>
<li>manufacturer
: <a class="el" href="structsd__raw__info.html#ad543253184afa50a8e4cb51b6dd5bf67">sd_raw_info</a>
</li>
<li>manufacturing_month
: <a class="el" href="structsd__raw__info.html#a80b3393a84f9c7f0a648cb8a9fd9c8b7">sd_raw_info</a>
</li>
<li>manufacturing_year
: <a class="el" href="structsd__raw__info.html#ae8a5dd6ae2039058100800f6bb85997a">sd_raw_info</a>
</li>
<li>oem
: <a class="el" href="structsd__raw__info.html#a8ec2f9a6cdc4ac26cd695321bd9b3057">sd_raw_info</a>
</li>
<li>offset
: <a class="el" href="structpartition__struct.html#ad9d6f2b7a40168d2960e28a151ef1808">partition_struct</a>
</li>
<li>product
: <a class="el" href="structsd__raw__info.html#a8d781e7a0ec7e752b340a72ba87fc40f">sd_raw_info</a>
</li>
<li>revision
: <a class="el" href="structsd__raw__info.html#a0eb79353f9b63b1e719f8babad77c87e">sd_raw_info</a>
</li>
<li>serial
: <a class="el" href="structsd__raw__info.html#a22771967744cca36595278b52686a69f">sd_raw_info</a>
</li>
<li>type
: <a class="el" href="structpartition__struct.html#a6923f9a2463495b35df8b73750e5d959">partition_struct</a>
</li>
</ul>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,145 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Data Fields - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&#160;<ul>
<li>attributes
: <a class="el" href="structfat__dir__entry__struct.html#a96bb7fbc6037217acccbeb22b718bc1a">fat_dir_entry_struct</a>
</li>
<li>capacity
: <a class="el" href="structsd__raw__info.html#af0443b0eb7316378025763674a5bf9b0">sd_raw_info</a>
</li>
<li>cluster
: <a class="el" href="structfat__dir__entry__struct.html#a33ff89147834319be295ce273eac0d16">fat_dir_entry_struct</a>
</li>
<li>device_read
: <a class="el" href="structpartition__struct.html#a9d82319d1b4f052c165a806069f49afa">partition_struct</a>
</li>
<li>device_read_interval
: <a class="el" href="structpartition__struct.html#a23ef90827c177f8f3385582416ff3ea3">partition_struct</a>
</li>
<li>device_write
: <a class="el" href="structpartition__struct.html#ac16e2eedf75a5e472ed93a92c30e0dad">partition_struct</a>
</li>
<li>device_write_interval
: <a class="el" href="structpartition__struct.html#a91923c55ba1c3a2dad435124964d91aa">partition_struct</a>
</li>
<li>entry_offset
: <a class="el" href="structfat__dir__entry__struct.html#acf491ee03bd21f230aecc449cac2c429">fat_dir_entry_struct</a>
</li>
<li>file_size
: <a class="el" href="structfat__dir__entry__struct.html#ac8821140df86bef96d2e4c9b177f386e">fat_dir_entry_struct</a>
</li>
<li>flag_copy
: <a class="el" href="structsd__raw__info.html#af23fccda0fa6740558d71c530576961b">sd_raw_info</a>
</li>
<li>flag_write_protect
: <a class="el" href="structsd__raw__info.html#a55f4daed5bef3289878fc0521ca191b1">sd_raw_info</a>
</li>
<li>flag_write_protect_temp
: <a class="el" href="structsd__raw__info.html#af3815572d323acafa8e3eabf19b154d5">sd_raw_info</a>
</li>
<li>format
: <a class="el" href="structsd__raw__info.html#a10d485029641a4fc1aadccad5e9eaa03">sd_raw_info</a>
</li>
<li>length
: <a class="el" href="structpartition__struct.html#a416da0cd540916a03a536c4fc5970635">partition_struct</a>
</li>
<li>long_name
: <a class="el" href="structfat__dir__entry__struct.html#a55d4698f86eecb6b49987a7c5f37566c">fat_dir_entry_struct</a>
</li>
<li>manufacturer
: <a class="el" href="structsd__raw__info.html#ad543253184afa50a8e4cb51b6dd5bf67">sd_raw_info</a>
</li>
<li>manufacturing_month
: <a class="el" href="structsd__raw__info.html#a80b3393a84f9c7f0a648cb8a9fd9c8b7">sd_raw_info</a>
</li>
<li>manufacturing_year
: <a class="el" href="structsd__raw__info.html#ae8a5dd6ae2039058100800f6bb85997a">sd_raw_info</a>
</li>
<li>oem
: <a class="el" href="structsd__raw__info.html#a8ec2f9a6cdc4ac26cd695321bd9b3057">sd_raw_info</a>
</li>
<li>offset
: <a class="el" href="structpartition__struct.html#ad9d6f2b7a40168d2960e28a151ef1808">partition_struct</a>
</li>
<li>product
: <a class="el" href="structsd__raw__info.html#a8d781e7a0ec7e752b340a72ba87fc40f">sd_raw_info</a>
</li>
<li>revision
: <a class="el" href="structsd__raw__info.html#a0eb79353f9b63b1e719f8babad77c87e">sd_raw_info</a>
</li>
<li>serial
: <a class="el" href="structsd__raw__info.html#a22771967744cca36595278b52686a69f">sd_raw_info</a>
</li>
<li>type
: <a class="el" href="structpartition__struct.html#a6923f9a2463495b35df8b73750e5d959">partition_struct</a>
</li>
</ul>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,422 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>device_read_callback_t
: <a class="el" href="group__partition.html#ga23a54af15a8c9711925e8b2e3433a27d">partition.h</a>
</li>
<li>device_read_interval_t
: <a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4">partition.h</a>
</li>
<li>device_read_t
: <a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85">partition.h</a>
</li>
<li>device_write_callback_t
: <a class="el" href="group__partition.html#ga3199d1b591458c7c6664545fab7d32fe">partition.h</a>
</li>
<li>device_write_interval_t
: <a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800">partition.h</a>
</li>
<li>device_write_t
: <a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f">partition.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>FAT_ATTRIB_ARCHIVE
: <a class="el" href="group__fat__file.html#ga18ef7ecd9adce93d49a571882e145c99">fat.h</a>
</li>
<li>FAT_ATTRIB_DIR
: <a class="el" href="group__fat__file.html#gacd38dccfabf884611c62aebc90e5adc7">fat.h</a>
</li>
<li>FAT_ATTRIB_HIDDEN
: <a class="el" href="group__fat__file.html#gaaf88f01d19ef4ca777c9c683f458f45f">fat.h</a>
</li>
<li>FAT_ATTRIB_READONLY
: <a class="el" href="group__fat__file.html#gac404d1380dbf00e8a1d6145e035ef10b">fat.h</a>
</li>
<li>FAT_ATTRIB_SYSTEM
: <a class="el" href="group__fat__file.html#gae5aa3610233e87e4ca36b2afe3c3854c">fat.h</a>
</li>
<li>FAT_ATTRIB_VOLUME
: <a class="el" href="group__fat__file.html#ga86f9c93dd409d11813361d48517ccbce">fat.h</a>
</li>
<li>fat_close()
: <a class="el" href="group__fat.html#ga057612824886e115b88bf5affcf76829">fat.h</a>
, <a class="el" href="group__fat__fs.html#ga057612824886e115b88bf5affcf76829">fat.c</a>
</li>
<li>fat_close_dir()
: <a class="el" href="group__fat__dir.html#ga2fed74d916370428e3dcf278e7050111">fat.c</a>
, <a class="el" href="group__fat.html#ga2fed74d916370428e3dcf278e7050111">fat.h</a>
</li>
<li>fat_close_file()
: <a class="el" href="group__fat__file.html#ga70b082abb4ebc8d4e9956886901b55fc">fat.c</a>
, <a class="el" href="group__fat.html#ga70b082abb4ebc8d4e9956886901b55fc">fat.h</a>
</li>
<li>fat_create_dir()
: <a class="el" href="group__fat__dir.html#gaff3b524066c9a937fae32771c80e7603">fat.c</a>
, <a class="el" href="group__fat.html#gaff3b524066c9a937fae32771c80e7603">fat.h</a>
</li>
<li>fat_create_file()
: <a class="el" href="group__fat.html#ga9d17d09125359dfb440fc57eede40b4f">fat.h</a>
, <a class="el" href="group__fat__file.html#ga9d17d09125359dfb440fc57eede40b4f">fat.c</a>
</li>
<li>FAT_DATETIME_SUPPORT
: <a class="el" href="group__fat__config.html#ga80fa068db7d09fb267b36741d773eadf">fat_config.h</a>
</li>
<li>FAT_DELAY_DIRENTRY_UPDATE
: <a class="el" href="group__fat__config.html#ga13f632eadee5b7d768b14bf279e843fd">fat_config.h</a>
</li>
<li>fat_delete_dir()
: <a class="el" href="group__fat__dir.html#gac0b6889e84a48b2d69fd681e5ac2e772">fat.c</a>
</li>
<li>fat_delete_file()
: <a class="el" href="group__fat__file.html#ga46055219b942eb8d57ffae9dc6447e7c">fat.c</a>
, <a class="el" href="group__fat.html#ga46055219b942eb8d57ffae9dc6447e7c">fat.h</a>
</li>
<li>FAT_DIR_COUNT
: <a class="el" href="group__fat__config.html#ga8309de7e60311102cb90f9bca6b7d2f8">fat_config.h</a>
</li>
<li>FAT_FAT32_SUPPORT
: <a class="el" href="group__fat__config.html#ga73fdc6edf277eee1551985c3eb9602a3">fat_config.h</a>
</li>
<li>FAT_FILE_COUNT
: <a class="el" href="group__fat__config.html#gae165b9e014e6213eb4429ebda300b6e8">fat_config.h</a>
</li>
<li>FAT_FS_COUNT
: <a class="el" href="group__fat__config.html#ga3d9b70f2a51fd6413f30f6a17e4480bd">fat_config.h</a>
</li>
<li>fat_get_datetime
: <a class="el" href="group__fat__config.html#gafeacb265671562dc1c4a863991163bb4">fat_config.h</a>
</li>
<li>fat_get_dir_entry_of_path()
: <a class="el" href="group__fat__file.html#ga033743a7d8878712e0add6d57b750525">fat.c</a>
, <a class="el" href="group__fat.html#ga033743a7d8878712e0add6d57b750525">fat.h</a>
</li>
<li>fat_get_file_modification_date()
: <a class="el" href="group__fat__file.html#ga24763fd73cbeb580ae5d19e975bde0d8">fat.c</a>
, <a class="el" href="group__fat.html#ga24763fd73cbeb580ae5d19e975bde0d8">fat.h</a>
</li>
<li>fat_get_file_modification_time()
: <a class="el" href="group__fat.html#ga74f840c317556b7dae766e199d87a6ef">fat.h</a>
, <a class="el" href="group__fat__file.html#ga74f840c317556b7dae766e199d87a6ef">fat.c</a>
</li>
<li>fat_get_fs_free()
: <a class="el" href="group__fat__fs.html#gacc43179721b97d82fefafaf5625350bb">fat.c</a>
, <a class="el" href="group__fat.html#gacc43179721b97d82fefafaf5625350bb">fat.h</a>
</li>
<li>fat_get_fs_free_32_callback()
: <a class="el" href="group__fat__fs.html#gafee6ea130655af67845e1cebe9a96bfc">fat.c</a>
</li>
<li>fat_get_fs_size()
: <a class="el" href="group__fat__fs.html#gaab7768ca45847d5c4033a91984d65f1a">fat.c</a>
, <a class="el" href="group__fat.html#gaab7768ca45847d5c4033a91984d65f1a">fat.h</a>
</li>
<li>FAT_LFN_SUPPORT
: <a class="el" href="group__fat__config.html#ga37b51677b33d2e74bec670f52c201a51">fat_config.h</a>
</li>
<li>fat_move_dir()
: <a class="el" href="group__fat__dir.html#ga8c448f10b372823ce01b39fefb0679b9">fat.c</a>
</li>
<li>fat_move_file()
: <a class="el" href="group__fat__file.html#gaba4d2c80ccd8f1aebcecf7072dc37510">fat.c</a>
, <a class="el" href="group__fat.html#gaba4d2c80ccd8f1aebcecf7072dc37510">fat.h</a>
</li>
<li>fat_open()
: <a class="el" href="group__fat__fs.html#ga5d726bac328b49abc2e6fb022d97092a">fat.c</a>
, <a class="el" href="group__fat.html#ga5d726bac328b49abc2e6fb022d97092a">fat.h</a>
</li>
<li>fat_open_dir()
: <a class="el" href="group__fat__dir.html#gac7a5b4ad0b972759a965e1afd5bbc87c">fat.c</a>
, <a class="el" href="group__fat.html#gac7a5b4ad0b972759a965e1afd5bbc87c">fat.h</a>
</li>
<li>fat_open_file()
: <a class="el" href="group__fat__file.html#ga76a0b06949525b578db04a56d67fbfc4">fat.c</a>
, <a class="el" href="group__fat.html#ga76a0b06949525b578db04a56d67fbfc4">fat.h</a>
</li>
<li>fat_read_dir()
: <a class="el" href="group__fat__dir.html#gab4bc79452dbf5ac2a2f3e1fccafd9534">fat.c</a>
, <a class="el" href="group__fat.html#gab4bc79452dbf5ac2a2f3e1fccafd9534">fat.h</a>
</li>
<li>fat_read_file()
: <a class="el" href="group__fat.html#ga48e17b173bede64cb08cef05b88fd0ca">fat.h</a>
, <a class="el" href="group__fat__file.html#ga48e17b173bede64cb08cef05b88fd0ca">fat.c</a>
</li>
<li>fat_reset_dir()
: <a class="el" href="group__fat__dir.html#ga2d74af47cb9fd44f7c974834f810225f">fat.c</a>
, <a class="el" href="group__fat.html#ga2d74af47cb9fd44f7c974834f810225f">fat.h</a>
</li>
<li>fat_resize_file()
: <a class="el" href="group__fat__file.html#gace4858e7a145684f6c8cd14debe14255">fat.c</a>
, <a class="el" href="group__fat.html#gace4858e7a145684f6c8cd14debe14255">fat.h</a>
</li>
<li>FAT_SEEK_CUR
: <a class="el" href="group__fat__file.html#gadba54c574b9a738c8b766ea3b40eeef2">fat.h</a>
</li>
<li>FAT_SEEK_END
: <a class="el" href="group__fat__file.html#gab34d95851ea8b28646ce25c0e0039bc2">fat.h</a>
</li>
<li>fat_seek_file()
: <a class="el" href="group__fat__file.html#gad4c305cf004bae9bea48730ed20c87ec">fat.c</a>
, <a class="el" href="group__fat.html#gad4c305cf004bae9bea48730ed20c87ec">fat.h</a>
</li>
<li>FAT_SEEK_SET
: <a class="el" href="group__fat__file.html#gab870215439192f82ed358e2c7e94ba09">fat.h</a>
</li>
<li>fat_set_file_modification_date()
: <a class="el" href="group__fat__file.html#ga02c969e994a556534c92906db5bb04fd">fat.c</a>
</li>
<li>fat_set_file_modification_time()
: <a class="el" href="group__fat__file.html#gab514f14ce35a38bff3f16270dfdc033b">fat.c</a>
</li>
<li>fat_write_file()
: <a class="el" href="group__fat__file.html#ga6782ff80eb6fba9b6ed1a66f33dae60a">fat.c</a>
, <a class="el" href="group__fat.html#ga6782ff80eb6fba9b6ed1a66f33dae60a">fat.h</a>
</li>
<li>FAT_WRITE_SUPPORT
: <a class="el" href="group__fat__config.html#gace70b11f85eb1b4e15220a65e9bd047d">fat_config.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>htol16()
: <a class="el" href="group__byteordering.html#gab0e4bd12631fd8f1c1566b53cc5d701b">byteordering.h</a>
</li>
<li>HTOL16
: <a class="el" href="group__byteordering.html#gafe6b840e18479649f2f279510841b725">byteordering.h</a>
</li>
<li>HTOL32
: <a class="el" href="group__byteordering.html#ga4721d1b0a8ce813e569f1f50e28cbd49">byteordering.h</a>
</li>
<li>htol32()
: <a class="el" href="group__byteordering.html#gad99f704c5d785948044d1a0a81ffdd78">byteordering.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>ltoh16()
: <a class="el" href="group__byteordering.html#ga956619f7d735460ad335c33399a5bfd0">byteordering.h</a>
</li>
<li>LTOH16
: <a class="el" href="group__byteordering.html#ga5c0de5da892f4416d2e6a08a4313dd43">byteordering.h</a>
</li>
<li>LTOH32
: <a class="el" href="group__byteordering.html#gad6a95c92a285d197c78cd0c680266682">byteordering.h</a>
</li>
<li>ltoh32()
: <a class="el" href="group__byteordering.html#gaa6a3e9e41e5a7fa0c61a9b7355135977">byteordering.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>partition_close()
: <a class="el" href="group__partition.html#ga128f4363de35c81a9ff8026d4db289d2">partition.c</a>
</li>
<li>PARTITION_COUNT
: <a class="el" href="group__partition__config.html#gad3d3ffd91206adf249d3318930f024af">partition_config.h</a>
</li>
<li>partition_open()
: <a class="el" href="group__partition.html#ga3125023db4e9d50adb8489c71fa1be68">partition.c</a>
</li>
<li>PARTITION_TYPE_EXTENDED
: <a class="el" href="group__partition.html#gaceaa1bf17d4e8961726834e53ed79732">partition.h</a>
</li>
<li>PARTITION_TYPE_EXTENDED_LBA
: <a class="el" href="group__partition.html#ga1c9a00e3b09b488ce7f3b2ef2904400b">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT12
: <a class="el" href="group__partition.html#gaa92b6c552d2411e093204cd3ed4cffa3">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT16
: <a class="el" href="group__partition.html#gada7e1b4d950c7a3f42f559ab99f5fe43">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT16_32MB
: <a class="el" href="group__partition.html#gaf7296b4a29c1f7e5c39e28372648b2cd">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT16_LBA
: <a class="el" href="group__partition.html#ga52b69fda008ca19d75304a2385cc4900">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT32
: <a class="el" href="group__partition.html#ga2f6a6c30cc239ae13ea287ff901c95f4">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT32_LBA
: <a class="el" href="group__partition.html#gaa2e0c8e8b4ec10f7b342c0d554b5f6d8">partition.h</a>
</li>
<li>PARTITION_TYPE_FREE
: <a class="el" href="group__partition.html#gaab5ffe2ef6119a6815c505e3103a2714">partition.h</a>
</li>
<li>PARTITION_TYPE_UNKNOWN
: <a class="el" href="group__partition.html#gacdc50585fe8130f0a4faee13caade86f">partition.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
<li>read16()
: <a class="el" href="group__byteordering.html#ga093e2aa18385b96e30198e9ec902c3a8">byteordering.c</a>
</li>
<li>read32()
: <a class="el" href="group__byteordering.html#gab7db40b834553f07d18076ac05c85887">byteordering.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>sd_raw_available()
: <a class="el" href="group__sd__raw.html#ga5e227f25ad4a18466e7cdd9ecdfce8ab">sd_raw.c</a>
</li>
<li>SD_RAW_FORMAT_HARDDISK
: <a class="el" href="group__sd__raw.html#ga2507a78d61385c9dbc1d06b8a03ef58a">sd_raw.h</a>
</li>
<li>SD_RAW_FORMAT_SUPERFLOPPY
: <a class="el" href="group__sd__raw.html#ga4caede5500f4d1035ceb9951a831c224">sd_raw.h</a>
</li>
<li>SD_RAW_FORMAT_UNIVERSAL
: <a class="el" href="group__sd__raw.html#gad070d05f762410f57870549a0fcd5f43">sd_raw.h</a>
</li>
<li>SD_RAW_FORMAT_UNKNOWN
: <a class="el" href="group__sd__raw.html#ga7e87231437f32335a25930ec1b85a9c9">sd_raw.h</a>
</li>
<li>sd_raw_get_info()
: <a class="el" href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79">sd_raw.c</a>
</li>
<li>sd_raw_init()
: <a class="el" href="group__sd__raw.html#ga82e8599b2679451e491484fb0b19bfd5">sd_raw.c</a>
</li>
<li>sd_raw_locked()
: <a class="el" href="group__sd__raw.html#ga55f311428473cd5b85cf8f24ffba121b">sd_raw.c</a>
</li>
<li>sd_raw_read()
: <a class="el" href="group__sd__raw.html#ga3da1870e406622511379a66370cdc774">sd_raw.c</a>
</li>
<li>sd_raw_read_interval()
: <a class="el" href="group__sd__raw.html#gaf7eb53b23a8a91aaae785379da1527c9">sd_raw.c</a>
</li>
<li>SD_RAW_SAVE_RAM
: <a class="el" href="group__sd__raw__config.html#ga4b98be138e87b8ab807d3f266a0c5bb9">sd_raw_config.h</a>
</li>
<li>SD_RAW_SDHC
: <a class="el" href="group__sd__raw__config.html#ga03cccc1544f7cd6c23d66967a1bbc0f7">sd_raw_config.h</a>
</li>
<li>sd_raw_sync()
: <a class="el" href="group__sd__raw.html#gad4d9ff40a7ea50c65cfa47927b35b735">sd_raw.c</a>
</li>
<li>sd_raw_write()
: <a class="el" href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577">sd_raw.c</a>
</li>
<li>SD_RAW_WRITE_BUFFERING
: <a class="el" href="group__sd__raw__config.html#gaa749d88c077a812f5c518e3172c96f9e">sd_raw_config.h</a>
</li>
<li>sd_raw_write_interval()
: <a class="el" href="group__sd__raw.html#ga7c60c1314055991e0812b659fe4e6c68">sd_raw.c</a>
</li>
<li>SD_RAW_WRITE_SUPPORT
: <a class="el" href="group__sd__raw__config.html#ga5f2253a3c408671f91f9aebefeef7472">sd_raw_config.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
<li>USE_DYNAMIC_MEMORY
: <a class="el" href="group__config.html#ga59a630bfc97e8a00e2ad0a0ad4b2f8a7">sd-reader_config.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
<li>write16()
: <a class="el" href="group__byteordering.html#ga101b4c983b1af68a4886bc4d1cce7cfd">byteordering.c</a>
</li>
<li>write32()
: <a class="el" href="group__byteordering.html#gae4a413d089ca0706b9d0a66c19163e86">byteordering.c</a>
</li>
</ul>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,233 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&#160;
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>FAT_ATTRIB_ARCHIVE
: <a class="el" href="group__fat__file.html#ga18ef7ecd9adce93d49a571882e145c99">fat.h</a>
</li>
<li>FAT_ATTRIB_DIR
: <a class="el" href="group__fat__file.html#gacd38dccfabf884611c62aebc90e5adc7">fat.h</a>
</li>
<li>FAT_ATTRIB_HIDDEN
: <a class="el" href="group__fat__file.html#gaaf88f01d19ef4ca777c9c683f458f45f">fat.h</a>
</li>
<li>FAT_ATTRIB_READONLY
: <a class="el" href="group__fat__file.html#gac404d1380dbf00e8a1d6145e035ef10b">fat.h</a>
</li>
<li>FAT_ATTRIB_SYSTEM
: <a class="el" href="group__fat__file.html#gae5aa3610233e87e4ca36b2afe3c3854c">fat.h</a>
</li>
<li>FAT_ATTRIB_VOLUME
: <a class="el" href="group__fat__file.html#ga86f9c93dd409d11813361d48517ccbce">fat.h</a>
</li>
<li>FAT_DATETIME_SUPPORT
: <a class="el" href="group__fat__config.html#ga80fa068db7d09fb267b36741d773eadf">fat_config.h</a>
</li>
<li>FAT_DELAY_DIRENTRY_UPDATE
: <a class="el" href="group__fat__config.html#ga13f632eadee5b7d768b14bf279e843fd">fat_config.h</a>
</li>
<li>FAT_DIR_COUNT
: <a class="el" href="group__fat__config.html#ga8309de7e60311102cb90f9bca6b7d2f8">fat_config.h</a>
</li>
<li>FAT_FAT32_SUPPORT
: <a class="el" href="group__fat__config.html#ga73fdc6edf277eee1551985c3eb9602a3">fat_config.h</a>
</li>
<li>FAT_FILE_COUNT
: <a class="el" href="group__fat__config.html#gae165b9e014e6213eb4429ebda300b6e8">fat_config.h</a>
</li>
<li>FAT_FS_COUNT
: <a class="el" href="group__fat__config.html#ga3d9b70f2a51fd6413f30f6a17e4480bd">fat_config.h</a>
</li>
<li>fat_get_datetime
: <a class="el" href="group__fat__config.html#gafeacb265671562dc1c4a863991163bb4">fat_config.h</a>
</li>
<li>FAT_LFN_SUPPORT
: <a class="el" href="group__fat__config.html#ga37b51677b33d2e74bec670f52c201a51">fat_config.h</a>
</li>
<li>FAT_SEEK_CUR
: <a class="el" href="group__fat__file.html#gadba54c574b9a738c8b766ea3b40eeef2">fat.h</a>
</li>
<li>FAT_SEEK_END
: <a class="el" href="group__fat__file.html#gab34d95851ea8b28646ce25c0e0039bc2">fat.h</a>
</li>
<li>FAT_SEEK_SET
: <a class="el" href="group__fat__file.html#gab870215439192f82ed358e2c7e94ba09">fat.h</a>
</li>
<li>FAT_WRITE_SUPPORT
: <a class="el" href="group__fat__config.html#gace70b11f85eb1b4e15220a65e9bd047d">fat_config.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>HTOL16
: <a class="el" href="group__byteordering.html#gafe6b840e18479649f2f279510841b725">byteordering.h</a>
</li>
<li>HTOL32
: <a class="el" href="group__byteordering.html#ga4721d1b0a8ce813e569f1f50e28cbd49">byteordering.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>LTOH16
: <a class="el" href="group__byteordering.html#ga5c0de5da892f4416d2e6a08a4313dd43">byteordering.h</a>
</li>
<li>LTOH32
: <a class="el" href="group__byteordering.html#gad6a95c92a285d197c78cd0c680266682">byteordering.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>PARTITION_COUNT
: <a class="el" href="group__partition__config.html#gad3d3ffd91206adf249d3318930f024af">partition_config.h</a>
</li>
<li>PARTITION_TYPE_EXTENDED
: <a class="el" href="group__partition.html#gaceaa1bf17d4e8961726834e53ed79732">partition.h</a>
</li>
<li>PARTITION_TYPE_EXTENDED_LBA
: <a class="el" href="group__partition.html#ga1c9a00e3b09b488ce7f3b2ef2904400b">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT12
: <a class="el" href="group__partition.html#gaa92b6c552d2411e093204cd3ed4cffa3">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT16
: <a class="el" href="group__partition.html#gada7e1b4d950c7a3f42f559ab99f5fe43">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT16_32MB
: <a class="el" href="group__partition.html#gaf7296b4a29c1f7e5c39e28372648b2cd">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT16_LBA
: <a class="el" href="group__partition.html#ga52b69fda008ca19d75304a2385cc4900">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT32
: <a class="el" href="group__partition.html#ga2f6a6c30cc239ae13ea287ff901c95f4">partition.h</a>
</li>
<li>PARTITION_TYPE_FAT32_LBA
: <a class="el" href="group__partition.html#gaa2e0c8e8b4ec10f7b342c0d554b5f6d8">partition.h</a>
</li>
<li>PARTITION_TYPE_FREE
: <a class="el" href="group__partition.html#gaab5ffe2ef6119a6815c505e3103a2714">partition.h</a>
</li>
<li>PARTITION_TYPE_UNKNOWN
: <a class="el" href="group__partition.html#gacdc50585fe8130f0a4faee13caade86f">partition.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>SD_RAW_FORMAT_HARDDISK
: <a class="el" href="group__sd__raw.html#ga2507a78d61385c9dbc1d06b8a03ef58a">sd_raw.h</a>
</li>
<li>SD_RAW_FORMAT_SUPERFLOPPY
: <a class="el" href="group__sd__raw.html#ga4caede5500f4d1035ceb9951a831c224">sd_raw.h</a>
</li>
<li>SD_RAW_FORMAT_UNIVERSAL
: <a class="el" href="group__sd__raw.html#gad070d05f762410f57870549a0fcd5f43">sd_raw.h</a>
</li>
<li>SD_RAW_FORMAT_UNKNOWN
: <a class="el" href="group__sd__raw.html#ga7e87231437f32335a25930ec1b85a9c9">sd_raw.h</a>
</li>
<li>SD_RAW_SAVE_RAM
: <a class="el" href="group__sd__raw__config.html#ga4b98be138e87b8ab807d3f266a0c5bb9">sd_raw_config.h</a>
</li>
<li>SD_RAW_SDHC
: <a class="el" href="group__sd__raw__config.html#ga03cccc1544f7cd6c23d66967a1bbc0f7">sd_raw_config.h</a>
</li>
<li>SD_RAW_WRITE_BUFFERING
: <a class="el" href="group__sd__raw__config.html#gaa749d88c077a812f5c518e3172c96f9e">sd_raw_config.h</a>
</li>
<li>SD_RAW_WRITE_SUPPORT
: <a class="el" href="group__sd__raw__config.html#ga5f2253a3c408671f91f9aebefeef7472">sd_raw_config.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
<li>USE_DYNAMIC_MEMORY
: <a class="el" href="group__config.html#ga59a630bfc97e8a00e2ad0a0ad4b2f8a7">sd-reader_config.h</a>
</li>
</ul>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,268 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&#160;
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>fat_close()
: <a class="el" href="group__fat__fs.html#ga057612824886e115b88bf5affcf76829">fat.c</a>
, <a class="el" href="group__fat.html#ga057612824886e115b88bf5affcf76829">fat.h</a>
</li>
<li>fat_close_dir()
: <a class="el" href="group__fat.html#ga2fed74d916370428e3dcf278e7050111">fat.h</a>
, <a class="el" href="group__fat__dir.html#ga2fed74d916370428e3dcf278e7050111">fat.c</a>
</li>
<li>fat_close_file()
: <a class="el" href="group__fat__file.html#ga70b082abb4ebc8d4e9956886901b55fc">fat.c</a>
, <a class="el" href="group__fat.html#ga70b082abb4ebc8d4e9956886901b55fc">fat.h</a>
</li>
<li>fat_create_dir()
: <a class="el" href="group__fat.html#gaff3b524066c9a937fae32771c80e7603">fat.h</a>
, <a class="el" href="group__fat__dir.html#gaff3b524066c9a937fae32771c80e7603">fat.c</a>
</li>
<li>fat_create_file()
: <a class="el" href="group__fat__file.html#ga9d17d09125359dfb440fc57eede40b4f">fat.c</a>
, <a class="el" href="group__fat.html#ga9d17d09125359dfb440fc57eede40b4f">fat.h</a>
</li>
<li>fat_delete_dir()
: <a class="el" href="group__fat__dir.html#gac0b6889e84a48b2d69fd681e5ac2e772">fat.c</a>
</li>
<li>fat_delete_file()
: <a class="el" href="group__fat__file.html#ga46055219b942eb8d57ffae9dc6447e7c">fat.c</a>
, <a class="el" href="group__fat.html#ga46055219b942eb8d57ffae9dc6447e7c">fat.h</a>
</li>
<li>fat_get_dir_entry_of_path()
: <a class="el" href="group__fat__file.html#ga033743a7d8878712e0add6d57b750525">fat.c</a>
, <a class="el" href="group__fat.html#ga033743a7d8878712e0add6d57b750525">fat.h</a>
</li>
<li>fat_get_file_modification_date()
: <a class="el" href="group__fat__file.html#ga24763fd73cbeb580ae5d19e975bde0d8">fat.c</a>
, <a class="el" href="group__fat.html#ga24763fd73cbeb580ae5d19e975bde0d8">fat.h</a>
</li>
<li>fat_get_file_modification_time()
: <a class="el" href="group__fat__file.html#ga74f840c317556b7dae766e199d87a6ef">fat.c</a>
, <a class="el" href="group__fat.html#ga74f840c317556b7dae766e199d87a6ef">fat.h</a>
</li>
<li>fat_get_fs_free()
: <a class="el" href="group__fat__fs.html#gacc43179721b97d82fefafaf5625350bb">fat.c</a>
, <a class="el" href="group__fat.html#gacc43179721b97d82fefafaf5625350bb">fat.h</a>
</li>
<li>fat_get_fs_free_32_callback()
: <a class="el" href="group__fat__fs.html#gafee6ea130655af67845e1cebe9a96bfc">fat.c</a>
</li>
<li>fat_get_fs_size()
: <a class="el" href="group__fat__fs.html#gaab7768ca45847d5c4033a91984d65f1a">fat.c</a>
, <a class="el" href="group__fat.html#gaab7768ca45847d5c4033a91984d65f1a">fat.h</a>
</li>
<li>fat_move_dir()
: <a class="el" href="group__fat__dir.html#ga8c448f10b372823ce01b39fefb0679b9">fat.c</a>
</li>
<li>fat_move_file()
: <a class="el" href="group__fat.html#gaba4d2c80ccd8f1aebcecf7072dc37510">fat.h</a>
, <a class="el" href="group__fat__file.html#gaba4d2c80ccd8f1aebcecf7072dc37510">fat.c</a>
</li>
<li>fat_open()
: <a class="el" href="group__fat__fs.html#ga5d726bac328b49abc2e6fb022d97092a">fat.c</a>
, <a class="el" href="group__fat.html#ga5d726bac328b49abc2e6fb022d97092a">fat.h</a>
</li>
<li>fat_open_dir()
: <a class="el" href="group__fat.html#gac7a5b4ad0b972759a965e1afd5bbc87c">fat.h</a>
, <a class="el" href="group__fat__dir.html#gac7a5b4ad0b972759a965e1afd5bbc87c">fat.c</a>
</li>
<li>fat_open_file()
: <a class="el" href="group__fat__file.html#ga76a0b06949525b578db04a56d67fbfc4">fat.c</a>
, <a class="el" href="group__fat.html#ga76a0b06949525b578db04a56d67fbfc4">fat.h</a>
</li>
<li>fat_read_dir()
: <a class="el" href="group__fat__dir.html#gab4bc79452dbf5ac2a2f3e1fccafd9534">fat.c</a>
, <a class="el" href="group__fat.html#gab4bc79452dbf5ac2a2f3e1fccafd9534">fat.h</a>
</li>
<li>fat_read_file()
: <a class="el" href="group__fat__file.html#ga48e17b173bede64cb08cef05b88fd0ca">fat.c</a>
, <a class="el" href="group__fat.html#ga48e17b173bede64cb08cef05b88fd0ca">fat.h</a>
</li>
<li>fat_reset_dir()
: <a class="el" href="group__fat__dir.html#ga2d74af47cb9fd44f7c974834f810225f">fat.c</a>
, <a class="el" href="group__fat.html#ga2d74af47cb9fd44f7c974834f810225f">fat.h</a>
</li>
<li>fat_resize_file()
: <a class="el" href="group__fat.html#gace4858e7a145684f6c8cd14debe14255">fat.h</a>
, <a class="el" href="group__fat__file.html#gace4858e7a145684f6c8cd14debe14255">fat.c</a>
</li>
<li>fat_seek_file()
: <a class="el" href="group__fat.html#gad4c305cf004bae9bea48730ed20c87ec">fat.h</a>
, <a class="el" href="group__fat__file.html#gad4c305cf004bae9bea48730ed20c87ec">fat.c</a>
</li>
<li>fat_set_file_modification_date()
: <a class="el" href="group__fat__file.html#ga02c969e994a556534c92906db5bb04fd">fat.c</a>
</li>
<li>fat_set_file_modification_time()
: <a class="el" href="group__fat__file.html#gab514f14ce35a38bff3f16270dfdc033b">fat.c</a>
</li>
<li>fat_write_file()
: <a class="el" href="group__fat__file.html#ga6782ff80eb6fba9b6ed1a66f33dae60a">fat.c</a>
, <a class="el" href="group__fat.html#ga6782ff80eb6fba9b6ed1a66f33dae60a">fat.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>htol16()
: <a class="el" href="group__byteordering.html#gab0e4bd12631fd8f1c1566b53cc5d701b">byteordering.h</a>
</li>
<li>htol32()
: <a class="el" href="group__byteordering.html#gad99f704c5d785948044d1a0a81ffdd78">byteordering.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>ltoh16()
: <a class="el" href="group__byteordering.html#ga956619f7d735460ad335c33399a5bfd0">byteordering.h</a>
</li>
<li>ltoh32()
: <a class="el" href="group__byteordering.html#gaa6a3e9e41e5a7fa0c61a9b7355135977">byteordering.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>partition_close()
: <a class="el" href="group__partition.html#ga128f4363de35c81a9ff8026d4db289d2">partition.c</a>
</li>
<li>partition_open()
: <a class="el" href="group__partition.html#ga3125023db4e9d50adb8489c71fa1be68">partition.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
<li>read16()
: <a class="el" href="group__byteordering.html#ga093e2aa18385b96e30198e9ec902c3a8">byteordering.c</a>
</li>
<li>read32()
: <a class="el" href="group__byteordering.html#gab7db40b834553f07d18076ac05c85887">byteordering.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>sd_raw_available()
: <a class="el" href="group__sd__raw.html#ga5e227f25ad4a18466e7cdd9ecdfce8ab">sd_raw.c</a>
</li>
<li>sd_raw_get_info()
: <a class="el" href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79">sd_raw.c</a>
</li>
<li>sd_raw_init()
: <a class="el" href="group__sd__raw.html#ga82e8599b2679451e491484fb0b19bfd5">sd_raw.c</a>
</li>
<li>sd_raw_locked()
: <a class="el" href="group__sd__raw.html#ga55f311428473cd5b85cf8f24ffba121b">sd_raw.c</a>
</li>
<li>sd_raw_read()
: <a class="el" href="group__sd__raw.html#ga3da1870e406622511379a66370cdc774">sd_raw.c</a>
</li>
<li>sd_raw_read_interval()
: <a class="el" href="group__sd__raw.html#gaf7eb53b23a8a91aaae785379da1527c9">sd_raw.c</a>
</li>
<li>sd_raw_sync()
: <a class="el" href="group__sd__raw.html#gad4d9ff40a7ea50c65cfa47927b35b735">sd_raw.c</a>
</li>
<li>sd_raw_write()
: <a class="el" href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577">sd_raw.c</a>
</li>
<li>sd_raw_write_interval()
: <a class="el" href="group__sd__raw.html#ga7c60c1314055991e0812b659fe4e6c68">sd_raw.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
<li>write16()
: <a class="el" href="group__byteordering.html#ga101b4c983b1af68a4886bc4d1cce7cfd">byteordering.c</a>
</li>
<li>write32()
: <a class="el" href="group__byteordering.html#gae4a413d089ca0706b9d0a66c19163e86">byteordering.c</a>
</li>
</ul>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,93 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&#160;<ul>
<li>device_read_callback_t
: <a class="el" href="group__partition.html#ga23a54af15a8c9711925e8b2e3433a27d">partition.h</a>
</li>
<li>device_read_interval_t
: <a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4">partition.h</a>
</li>
<li>device_read_t
: <a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85">partition.h</a>
</li>
<li>device_write_callback_t
: <a class="el" href="group__partition.html#ga3199d1b591458c7c6664545fab7d32fe">partition.h</a>
</li>
<li>device_write_interval_t
: <a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800">partition.h</a>
</li>
<li>device_write_t
: <a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f">partition.h</a>
</li>
</ul>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,452 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Byteordering</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#files">Files</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Byteordering</div> </div>
</div><!--header-->
<div class="contents">
<p>Architecture-dependent handling of byte-ordering.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="files"></a>
Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteordering_8c.html">byteordering.c</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Byte-order handling implementation (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteordering_8h.html">byteordering.h</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Byte-order handling header (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gafe6b840e18479649f2f279510841b725">HTOL16</a>(val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 16-bit integer from host byte order to little-endian byte order. <a href="#gafe6b840e18479649f2f279510841b725"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga4721d1b0a8ce813e569f1f50e28cbd49">HTOL32</a>(val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 32-bit integer from host byte order to little-endian byte order. <a href="#ga4721d1b0a8ce813e569f1f50e28cbd49"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga5c0de5da892f4416d2e6a08a4313dd43">LTOH16</a>(val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 16-bit integer from little-endian byte order to host byte order. <a href="#ga5c0de5da892f4416d2e6a08a4313dd43"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gad6a95c92a285d197c78cd0c680266682">LTOH32</a>(val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 32-bit integer from little-endian byte order to host byte order. <a href="#gad6a95c92a285d197c78cd0c680266682"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga093e2aa18385b96e30198e9ec902c3a8">read16</a> (const uint8_t *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a 16-bit integer from memory in little-endian byte order. <a href="#ga093e2aa18385b96e30198e9ec902c3a8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gab7db40b834553f07d18076ac05c85887">read32</a> (const uint8_t *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a 32-bit integer from memory in little-endian byte order. <a href="#gab7db40b834553f07d18076ac05c85887"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga101b4c983b1af68a4886bc4d1cce7cfd">write16</a> (uint8_t *p, uint16_t i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a 16-bit integer into memory in little-endian byte order. <a href="#ga101b4c983b1af68a4886bc4d1cce7cfd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gae4a413d089ca0706b9d0a66c19163e86">write32</a> (uint8_t *p, uint32_t i)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a 32-bit integer into memory in little-endian byte order. <a href="#gae4a413d089ca0706b9d0a66c19163e86"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gab0e4bd12631fd8f1c1566b53cc5d701b">htol16</a> (uint16_t h)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 16-bit integer from host byte order to little-endian byte order. <a href="#gab0e4bd12631fd8f1c1566b53cc5d701b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gad99f704c5d785948044d1a0a81ffdd78">htol32</a> (uint32_t h)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 32-bit integer from host byte order to little-endian byte order. <a href="#gad99f704c5d785948044d1a0a81ffdd78"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#ga956619f7d735460ad335c33399a5bfd0">ltoh16</a> (uint16_t l)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 16-bit integer from little-endian byte order to host byte order. <a href="#ga956619f7d735460ad335c33399a5bfd0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__byteordering.html#gaa6a3e9e41e5a7fa0c61a9b7355135977">ltoh32</a> (uint32_t l)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a 32-bit integer from little-endian byte order to host byte order. <a href="#gaa6a3e9e41e5a7fa0c61a9b7355135977"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Architecture-dependent handling of byte-ordering. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="gafe6b840e18479649f2f279510841b725"></a><!-- doxytag: member="byteordering.h::HTOL16" ref="gafe6b840e18479649f2f279510841b725" args="(val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__byteordering.html#gafe6b840e18479649f2f279510841b725">HTOL16</a></td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">val</td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Converts a 16-bit integer from host byte order to little-endian byte order. </p>
<p>Use this macro for compile time constants only. For variable values use the function <a class="el" href="group__byteordering.html#gab0e4bd12631fd8f1c1566b53cc5d701b" title="Converts a 16-bit integer from host byte order to little-endian byte order.">htol16()</a> instead. This saves code size.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>A 16-bit integer in host byte order. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The given 16-bit integer converted to little-endian byte order. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4721d1b0a8ce813e569f1f50e28cbd49"></a><!-- doxytag: member="byteordering.h::HTOL32" ref="ga4721d1b0a8ce813e569f1f50e28cbd49" args="(val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__byteordering.html#ga4721d1b0a8ce813e569f1f50e28cbd49">HTOL32</a></td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">val</td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Converts a 32-bit integer from host byte order to little-endian byte order. </p>
<p>Use this macro for compile time constants only. For variable values use the function <a class="el" href="group__byteordering.html#gad99f704c5d785948044d1a0a81ffdd78" title="Converts a 32-bit integer from host byte order to little-endian byte order.">htol32()</a> instead. This saves code size.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>A 32-bit integer in host byte order. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The given 32-bit integer converted to little-endian byte order. </dd></dl>
</div>
</div>
<a class="anchor" id="ga5c0de5da892f4416d2e6a08a4313dd43"></a><!-- doxytag: member="byteordering.h::LTOH16" ref="ga5c0de5da892f4416d2e6a08a4313dd43" args="(val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__byteordering.html#ga5c0de5da892f4416d2e6a08a4313dd43">LTOH16</a></td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">val</td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Converts a 16-bit integer from little-endian byte order to host byte order. </p>
<p>Use this macro for compile time constants only. For variable values use the function <a class="el" href="group__byteordering.html#ga956619f7d735460ad335c33399a5bfd0" title="Converts a 16-bit integer from little-endian byte order to host byte order.">ltoh16()</a> instead. This saves code size.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>A 16-bit integer in little-endian byte order. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The given 16-bit integer converted to host byte order. </dd></dl>
</div>
</div>
<a class="anchor" id="gad6a95c92a285d197c78cd0c680266682"></a><!-- doxytag: member="byteordering.h::LTOH32" ref="gad6a95c92a285d197c78cd0c680266682" args="(val)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__byteordering.html#gad6a95c92a285d197c78cd0c680266682">LTOH32</a></td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">val</td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Converts a 32-bit integer from little-endian byte order to host byte order. </p>
<p>Use this macro for compile time constants only. For variable values use the function <a class="el" href="group__byteordering.html#gaa6a3e9e41e5a7fa0c61a9b7355135977" title="Converts a 32-bit integer from little-endian byte order to host byte order.">ltoh32()</a> instead. This saves code size.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>A 32-bit integer in little-endian byte order. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The given 32-bit integer converted to host byte order. </dd></dl>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gab0e4bd12631fd8f1c1566b53cc5d701b"></a><!-- doxytag: member="byteordering.h::htol16" ref="gab0e4bd12631fd8f1c1566b53cc5d701b" args="(uint16_t h)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t <a class="el" href="group__byteordering.html#gab0e4bd12631fd8f1c1566b53cc5d701b">htol16</a> </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Converts a 16-bit integer from host byte order to little-endian byte order. </p>
<p>Use this function on variable values instead of the macro <a class="el" href="group__byteordering.html#gafe6b840e18479649f2f279510841b725" title="Converts a 16-bit integer from host byte order to little-endian byte order.">HTOL16()</a>. This saves code size.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>A 16-bit integer in host byte order. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The given 16-bit integer converted to little-endian byte order. </dd></dl>
</div>
</div>
<a class="anchor" id="gad99f704c5d785948044d1a0a81ffdd78"></a><!-- doxytag: member="byteordering.h::htol32" ref="gad99f704c5d785948044d1a0a81ffdd78" args="(uint32_t h)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t <a class="el" href="group__byteordering.html#gad99f704c5d785948044d1a0a81ffdd78">htol32</a> </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Converts a 32-bit integer from host byte order to little-endian byte order. </p>
<p>Use this function on variable values instead of the macro <a class="el" href="group__byteordering.html#ga4721d1b0a8ce813e569f1f50e28cbd49" title="Converts a 32-bit integer from host byte order to little-endian byte order.">HTOL32()</a>. This saves code size.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>A 32-bit integer in host byte order. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The given 32-bit integer converted to little-endian byte order. </dd></dl>
</div>
</div>
<a class="anchor" id="ga956619f7d735460ad335c33399a5bfd0"></a><!-- doxytag: member="byteordering.h::ltoh16" ref="ga956619f7d735460ad335c33399a5bfd0" args="(uint16_t l)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t <a class="el" href="group__byteordering.html#ga956619f7d735460ad335c33399a5bfd0">ltoh16</a> </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>l</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Converts a 16-bit integer from little-endian byte order to host byte order. </p>
<p>Use this function on variable values instead of the macro <a class="el" href="group__byteordering.html#ga5c0de5da892f4416d2e6a08a4313dd43" title="Converts a 16-bit integer from little-endian byte order to host byte order.">LTOH16()</a>. This saves code size.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">l</td><td>A 16-bit integer in little-endian byte order. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The given 16-bit integer converted to host byte order. </dd></dl>
</div>
</div>
<a class="anchor" id="gaa6a3e9e41e5a7fa0c61a9b7355135977"></a><!-- doxytag: member="byteordering.h::ltoh32" ref="gaa6a3e9e41e5a7fa0c61a9b7355135977" args="(uint32_t l)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t <a class="el" href="group__byteordering.html#gaa6a3e9e41e5a7fa0c61a9b7355135977">ltoh32</a> </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>l</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Converts a 32-bit integer from little-endian byte order to host byte order. </p>
<p>Use this function on variable values instead of the macro <a class="el" href="group__byteordering.html#gad6a95c92a285d197c78cd0c680266682" title="Converts a 32-bit integer from little-endian byte order to host byte order.">LTOH32()</a>. This saves code size.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">l</td><td>A 32-bit integer in little-endian byte order. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The given 32-bit integer converted to host byte order. </dd></dl>
</div>
</div>
<a class="anchor" id="ga093e2aa18385b96e30198e9ec902c3a8"></a><!-- doxytag: member="byteordering.c::read16" ref="ga093e2aa18385b96e30198e9ec902c3a8" args="(const uint8_t *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t <a class="el" href="group__byteordering.html#ga093e2aa18385b96e30198e9ec902c3a8">read16</a> </td>
<td>(</td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>p</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads a 16-bit integer from memory in little-endian byte order. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer from where to read the integer. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The 16-bit integer read from memory. </dd></dl>
</div>
</div>
<a class="anchor" id="gab7db40b834553f07d18076ac05c85887"></a><!-- doxytag: member="byteordering.c::read32" ref="gab7db40b834553f07d18076ac05c85887" args="(const uint8_t *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t <a class="el" href="group__byteordering.html#gab7db40b834553f07d18076ac05c85887">read32</a> </td>
<td>(</td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>p</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads a 32-bit integer from memory in little-endian byte order. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer from where to read the integer. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The 32-bit integer read from memory. </dd></dl>
</div>
</div>
<a class="anchor" id="ga101b4c983b1af68a4886bc4d1cce7cfd"></a><!-- doxytag: member="byteordering.c::write16" ref="ga101b4c983b1af68a4886bc4d1cce7cfd" args="(uint8_t *p, uint16_t i)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__byteordering.html#ga101b4c983b1af68a4886bc4d1cce7cfd">write16</a> </td>
<td>(</td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>i</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Writes a 16-bit integer into memory in little-endian byte order. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer where to write the integer to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>The 16-bit integer to write. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae4a413d089ca0706b9d0a66c19163e86"></a><!-- doxytag: member="byteordering.c::write32" ref="gae4a413d089ca0706b9d0a66c19163e86" args="(uint8_t *p, uint32_t i)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__byteordering.html#gae4a413d089ca0706b9d0a66c19163e86">write32</a> </td>
<td>(</td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>i</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Writes a 32-bit integer into memory in little-endian byte order. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer where to write the integer to. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>The 32-bit integer to write. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,94 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Sd-reader configuration</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#files">Files</a> &#124;
<a href="#define-members">Defines</a> </div>
<div class="headertitle">
<div class="title">Sd-reader configuration</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="files"></a>
Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sd-reader__config_8h.html">sd-reader_config.h</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Common sd-reader configuration used by all modules (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga59a630bfc97e8a00e2ad0a0ad4b2f8a7">USE_DYNAMIC_MEMORY</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls allocation of memory. <a href="#ga59a630bfc97e8a00e2ad0a0ad4b2f8a7"></a><br/></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ga59a630bfc97e8a00e2ad0a0ad4b2f8a7"></a><!-- doxytag: member="sd&#45;reader_config.h::USE_DYNAMIC_MEMORY" ref="ga59a630bfc97e8a00e2ad0a0ad4b2f8a7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__config.html#ga59a630bfc97e8a00e2ad0a0ad4b2f8a7">USE_DYNAMIC_MEMORY</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Controls allocation of memory. </p>
<p>Set to 1 to use malloc()/free() for allocation of structures like file and directory handles, set to 0 to use pre-allocated fixed-size handle arrays. </p>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,989 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: FAT support</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#groups">Modules</a> &#124;
<a href="#files">Files</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">FAT support</div> </div>
</div><!--header-->
<div class="contents">
<p>This module implements FAT16/FAT32 read and write access.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes a directory entry. <a href="structfat__dir__entry__struct.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html">FAT configuration</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Preprocessor defines to configure the FAT implementation. </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__fs.html">FAT access</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Basic functions for handling a FAT filesystem. </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html">FAT file functions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Functions for managing files. </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html">FAT directory functions</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Functions for managing directories. </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="files"></a>
Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fat_8c.html">fat.c</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>FAT implementation (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fat_8h.html">fat.h</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>FAT header (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fat__config_8h.html">fat_config.h</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>FAT configuration (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_fs_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga5d726bac328b49abc2e6fb022d97092a">fat_open</a> (struct <a class="el" href="structpartition__struct.html">partition_struct</a> *partition)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a FAT filesystem. <a href="#ga5d726bac328b49abc2e6fb022d97092a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga057612824886e115b88bf5affcf76829">fat_close</a> (struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a FAT filesystem. <a href="#ga057612824886e115b88bf5affcf76829"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_file_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga76a0b06949525b578db04a56d67fbfc4">fat_open_file</a> (struct fat_fs_struct *fs, const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a file on a FAT filesystem. <a href="#ga76a0b06949525b578db04a56d67fbfc4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga70b082abb4ebc8d4e9956886901b55fc">fat_close_file</a> (struct fat_file_struct *fd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a file. <a href="#ga70b082abb4ebc8d4e9956886901b55fc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">intptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga48e17b173bede64cb08cef05b88fd0ca">fat_read_file</a> (struct fat_file_struct *fd, uint8_t *buffer, uintptr_t buffer_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data from a file. <a href="#ga48e17b173bede64cb08cef05b88fd0ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">intptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga6782ff80eb6fba9b6ed1a66f33dae60a">fat_write_file</a> (struct fat_file_struct *fd, const uint8_t *buffer, uintptr_t buffer_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes data to a file. <a href="#ga6782ff80eb6fba9b6ed1a66f33dae60a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gad4c305cf004bae9bea48730ed20c87ec">fat_seek_file</a> (struct fat_file_struct *fd, int32_t *offset, uint8_t whence)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repositions the read/write file offset. <a href="#gad4c305cf004bae9bea48730ed20c87ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gace4858e7a145684f6c8cd14debe14255">fat_resize_file</a> (struct fat_file_struct *fd, uint32_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resizes a file to have a specific size. <a href="#gace4858e7a145684f6c8cd14debe14255"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_dir_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gac7a5b4ad0b972759a965e1afd5bbc87c">fat_open_dir</a> (struct fat_fs_struct *fs, const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a directory. <a href="#gac7a5b4ad0b972759a965e1afd5bbc87c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga2fed74d916370428e3dcf278e7050111">fat_close_dir</a> (struct fat_dir_struct *dd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a directory descriptor. <a href="#ga2fed74d916370428e3dcf278e7050111"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gab4bc79452dbf5ac2a2f3e1fccafd9534">fat_read_dir</a> (struct fat_dir_struct *dd, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the next directory entry contained within a parent directory. <a href="#gab4bc79452dbf5ac2a2f3e1fccafd9534"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga2d74af47cb9fd44f7c974834f810225f">fat_reset_dir</a> (struct fat_dir_struct *dd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets a directory handle. <a href="#ga2d74af47cb9fd44f7c974834f810225f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga9d17d09125359dfb440fc57eede40b4f">fat_create_file</a> (struct fat_dir_struct *parent, const char *file, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a file. <a href="#ga9d17d09125359dfb440fc57eede40b4f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga46055219b942eb8d57ffae9dc6447e7c">fat_delete_file</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes a file or directory. <a href="#ga46055219b942eb8d57ffae9dc6447e7c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gaba4d2c80ccd8f1aebcecf7072dc37510">fat_move_file</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, struct fat_dir_struct *parent_new, const char *file_new)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves or renames a file. <a href="#gaba4d2c80ccd8f1aebcecf7072dc37510"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gaff3b524066c9a937fae32771c80e7603">fat_create_dir</a> (struct fat_dir_struct *parent, const char *dir, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a directory. <a href="#gaff3b524066c9a937fae32771c80e7603"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga24763fd73cbeb580ae5d19e975bde0d8">fat_get_file_modification_date</a> (const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint16_t *year, uint8_t *month, uint8_t *day)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the modification date of a file. <a href="#ga24763fd73cbeb580ae5d19e975bde0d8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga74f840c317556b7dae766e199d87a6ef">fat_get_file_modification_time</a> (const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint8_t *hour, uint8_t *min, uint8_t *sec)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the modification time of a file. <a href="#ga74f840c317556b7dae766e199d87a6ef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#ga033743a7d8878712e0add6d57b750525">fat_get_dir_entry_of_path</a> (struct fat_fs_struct *fs, const char *path, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the directory entry of a path. <a href="#ga033743a7d8878712e0add6d57b750525"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">offset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gaab7768ca45847d5c4033a91984d65f1a">fat_get_fs_size</a> (const struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the amount of total storage capacity of the filesystem in bytes. <a href="#gaab7768ca45847d5c4033a91984d65f1a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">offset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat.html#gacc43179721b97d82fefafaf5625350bb">fat_get_fs_free</a> (const struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the amount of free storage capacity on the filesystem in bytes. <a href="#gacc43179721b97d82fefafaf5625350bb"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>This module implements FAT16/FAT32 read and write access. </p>
<p>The following features are supported:</p>
<ul>
<li>File names up to 31 characters long.</li>
<li>Unlimited depth of subdirectories.</li>
<li>Short 8.3 and long filenames.</li>
<li>Creating and deleting files.</li>
<li>Reading and writing from and to files.</li>
<li>File resizing.</li>
<li>File sizes of up to 4 gigabytes. </li>
</ul>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga057612824886e115b88bf5affcf76829"></a><!-- doxytag: member="fat.h::fat_close" ref="ga057612824886e115b88bf5affcf76829" args="(struct fat_fs_struct *fs)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat.html#ga057612824886e115b88bf5affcf76829">fat_close</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Closes a FAT filesystem. </p>
<p>When this function returns, the given filesystem descriptor will be invalid.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem to close. </td></tr>
</table>
</dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga5d726bac328b49abc2e6fb022d97092a" title="Opens a FAT filesystem.">fat_open</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga2fed74d916370428e3dcf278e7050111"></a><!-- doxytag: member="fat.h::fat_close_dir" ref="ga2fed74d916370428e3dcf278e7050111" args="(struct fat_dir_struct *dd)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat.html#ga2fed74d916370428e3dcf278e7050111">fat_close_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>dd</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Closes a directory descriptor. </p>
<p>This function destroys a directory descriptor which was previously obtained by calling <a class="el" href="group__fat__dir.html#gac7a5b4ad0b972759a965e1afd5bbc87c" title="Opens a directory.">fat_open_dir()</a>. When this function returns, the given descriptor will be invalid.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dd</td><td>The directory descriptor to close. </td></tr>
</table>
</dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#gac7a5b4ad0b972759a965e1afd5bbc87c" title="Opens a directory.">fat_open_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga70b082abb4ebc8d4e9956886901b55fc"></a><!-- doxytag: member="fat.h::fat_close_file" ref="ga70b082abb4ebc8d4e9956886901b55fc" args="(struct fat_file_struct *fd)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat.html#ga70b082abb4ebc8d4e9956886901b55fc">fat_close_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_file_struct *&#160;</td>
<td class="paramname"><em>fd</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Closes a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The file handle of the file to close. </td></tr>
</table>
</dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga76a0b06949525b578db04a56d67fbfc4" title="Opens a file on a FAT filesystem.">fat_open_file</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gaff3b524066c9a937fae32771c80e7603"></a><!-- doxytag: member="fat.h::fat_create_dir" ref="gaff3b524066c9a937fae32771c80e7603" args="(struct fat_dir_struct *parent, const char *dir, struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#gaff3b524066c9a937fae32771c80e7603">fat_create_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>parent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates a directory. </p>
<p>Creates a directory and obtains its directory entry. If the directory to create already exists, its directory entry will be returned within the dir_entry parameter.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>The notes which apply to <a class="el" href="group__fat__file.html#ga9d17d09125359dfb440fc57eede40b4f" title="Creates a file.">fat_create_file()</a> also apply to this function.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">parent</td><td>The handle of the parent directory of the new directory. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dir</td><td>The name of the directory to create. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">dir_entry</td><td>The directory entry to fill for the new directory. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat__dir.html#gac0b6889e84a48b2d69fd681e5ac2e772" title="Deletes a directory.">fat_delete_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga9d17d09125359dfb440fc57eede40b4f"></a><!-- doxytag: member="fat.h::fat_create_file" ref="ga9d17d09125359dfb440fc57eede40b4f" args="(struct fat_dir_struct *parent, const char *file, struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#ga9d17d09125359dfb440fc57eede40b4f">fat_create_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>parent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates a file. </p>
<p>Creates a file and obtains the directory entry of the new file. If the file to create already exists, the directory entry of the existing file will be returned within the dir_entry parameter.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>The file name is not checked for invalid characters.</dd>
<dd>
The generation of the short 8.3 file name is quite simple. The first eight characters are used for the filename. The extension, if any, is made up of the first three characters following the last dot within the long filename. If the filename (without the extension) is longer than eight characters, the lower byte of the cluster number replaces the last two characters to avoid name clashes. In any other case, it is your responsibility to avoid name clashes.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">parent</td><td>The handle of the directory in which to create the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The name of the file to create. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">dir_entry</td><td>The directory entry to fill for the new (or existing) file. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success, 2 if the file already existed. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga46055219b942eb8d57ffae9dc6447e7c" title="Deletes a file or directory.">fat_delete_file</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga46055219b942eb8d57ffae9dc6447e7c"></a><!-- doxytag: member="fat.h::fat_delete_file" ref="ga46055219b942eb8d57ffae9dc6447e7c" args="(struct fat_fs_struct *fs, struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#ga46055219b942eb8d57ffae9dc6447e7c">fat_delete_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Deletes a file or directory. </p>
<p>If a directory is deleted without first deleting its subdirectories and files, disk space occupied by these files will get wasted as there is no chance to release it and mark it as free.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which to operate. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry of the file to delete. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga9d17d09125359dfb440fc57eede40b4f" title="Creates a file.">fat_create_file</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga033743a7d8878712e0add6d57b750525"></a><!-- doxytag: member="fat.h::fat_get_dir_entry_of_path" ref="ga033743a7d8878712e0add6d57b750525" args="(struct fat_fs_struct *fs, const char *path, struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#ga033743a7d8878712e0add6d57b750525">fat_get_dir_entry_of_path</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Retrieves the directory entry of a path. </p>
<p>The given path may both describe a file or a directory.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The FAT filesystem on which to search. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The path of which to read the directory entry. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">dir_entry</td><td>The directory entry to fill. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#gab4bc79452dbf5ac2a2f3e1fccafd9534" title="Reads the next directory entry contained within a parent directory.">fat_read_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga24763fd73cbeb580ae5d19e975bde0d8"></a><!-- doxytag: member="fat.h::fat_get_file_modification_date" ref="ga24763fd73cbeb580ae5d19e975bde0d8" args="(const struct fat_dir_entry_struct *dir_entry, uint16_t *year, uint8_t *month, uint8_t *day)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat.html#ga24763fd73cbeb580ae5d19e975bde0d8">fat_get_file_modification_date</a> </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t *&#160;</td>
<td class="paramname"><em>year</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>month</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>day</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the modification date of a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry of which to return the modification date. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">year</td><td>The year the file was last modified. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">month</td><td>The month the file was last modified. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">day</td><td>The day the file was last modified. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga74f840c317556b7dae766e199d87a6ef"></a><!-- doxytag: member="fat.h::fat_get_file_modification_time" ref="ga74f840c317556b7dae766e199d87a6ef" args="(const struct fat_dir_entry_struct *dir_entry, uint8_t *hour, uint8_t *min, uint8_t *sec)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat.html#ga74f840c317556b7dae766e199d87a6ef">fat_get_file_modification_time</a> </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>hour</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>min</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>sec</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the modification time of a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry of which to return the modification time. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">hour</td><td>The hour the file was last modified. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">min</td><td>The min the file was last modified. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">sec</td><td>The sec the file was last modified. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gacc43179721b97d82fefafaf5625350bb"></a><!-- doxytag: member="fat.h::fat_get_fs_free" ref="gacc43179721b97d82fefafaf5625350bb" args="(const struct fat_fs_struct *fs)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">offset_t <a class="el" href="group__fat.html#gacc43179721b97d82fefafaf5625350bb">fat_get_fs_free</a> </td>
<td>(</td>
<td class="paramtype">const struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the amount of free storage capacity on the filesystem in bytes. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>As the FAT filesystem is cluster based, this function does not return continuous values but multiples of the cluster size.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which to operate. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, the free filesystem space in bytes otherwise. </dd></dl>
</div>
</div>
<a class="anchor" id="gaab7768ca45847d5c4033a91984d65f1a"></a><!-- doxytag: member="fat.h::fat_get_fs_size" ref="gaab7768ca45847d5c4033a91984d65f1a" args="(const struct fat_fs_struct *fs)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">offset_t <a class="el" href="group__fat.html#gaab7768ca45847d5c4033a91984d65f1a">fat_get_fs_size</a> </td>
<td>(</td>
<td class="paramtype">const struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the amount of total storage capacity of the filesystem in bytes. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which to operate. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, the filesystem size in bytes otherwise. </dd></dl>
</div>
</div>
<a class="anchor" id="gaba4d2c80ccd8f1aebcecf7072dc37510"></a><!-- doxytag: member="fat.h::fat_move_file" ref="gaba4d2c80ccd8f1aebcecf7072dc37510" args="(struct fat_fs_struct *fs, struct fat_dir_entry_struct *dir_entry, struct fat_dir_struct *parent_new, const char *file_new)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#gaba4d2c80ccd8f1aebcecf7072dc37510">fat_move_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>parent_new</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>file_new</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Moves or renames a file. </p>
<p>Changes a file's name, optionally moving it into another directory as well. Before calling this function, the target file name must not exist. Moving a file to a different filesystem (i.e. <em>parent_new</em> doesn't lie on <em>fs</em>) is not supported.</p>
<p>After successfully renaming (and moving) the file, the given directory entry is updated such that it points to the file's new location.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>The notes which apply to <a class="el" href="group__fat__file.html#ga9d17d09125359dfb440fc57eede40b4f" title="Creates a file.">fat_create_file()</a> also apply to this function.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which to operate. </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">dir_entry</td><td>The directory entry of the file to move. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">parent_new</td><td>The handle of the new parent directory of the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">file_new</td><td>The file's new name. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga9d17d09125359dfb440fc57eede40b4f" title="Creates a file.">fat_create_file</a>, <a class="el" href="group__fat.html#ga46055219b942eb8d57ffae9dc6447e7c" title="Deletes a file or directory.">fat_delete_file</a>, <a class="el" href="group__fat__dir.html#ga8c448f10b372823ce01b39fefb0679b9" title="Moves or renames a directory.">fat_move_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga5d726bac328b49abc2e6fb022d97092a"></a><!-- doxytag: member="fat.h::fat_open" ref="ga5d726bac328b49abc2e6fb022d97092a" args="(struct partition_struct *partition)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct fat_fs_struct* <a class="el" href="group__fat.html#ga5d726bac328b49abc2e6fb022d97092a">fat_open</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structpartition__struct.html">partition_struct</a> *&#160;</td>
<td class="paramname"><em>partition</em></td><td>)</td>
<td><code> [read]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Opens a FAT filesystem. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">partition</td><td>Discriptor of partition on which the filesystem resides. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on error, a FAT filesystem descriptor on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga057612824886e115b88bf5affcf76829" title="Closes a FAT filesystem.">fat_close</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gac7a5b4ad0b972759a965e1afd5bbc87c"></a><!-- doxytag: member="fat.h::fat_open_dir" ref="gac7a5b4ad0b972759a965e1afd5bbc87c" args="(struct fat_fs_struct *fs, const struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct fat_dir_struct* <a class="el" href="group__fat.html#gac7a5b4ad0b972759a965e1afd5bbc87c">fat_open_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [read]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Opens a directory. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which the directory to open resides. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry which stands for the directory to open. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>An opaque directory descriptor on success, 0 on failure. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga2fed74d916370428e3dcf278e7050111" title="Closes a directory descriptor.">fat_close_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga76a0b06949525b578db04a56d67fbfc4"></a><!-- doxytag: member="fat.h::fat_open_file" ref="ga76a0b06949525b578db04a56d67fbfc4" args="(struct fat_fs_struct *fs, const struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct fat_file_struct* <a class="el" href="group__fat.html#ga76a0b06949525b578db04a56d67fbfc4">fat_open_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [read]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Opens a file on a FAT filesystem. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which the file to open lies. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry of the file to open. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The file handle, or 0 on failure. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga70b082abb4ebc8d4e9956886901b55fc" title="Closes a file.">fat_close_file</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gab4bc79452dbf5ac2a2f3e1fccafd9534"></a><!-- doxytag: member="fat.h::fat_read_dir" ref="gab4bc79452dbf5ac2a2f3e1fccafd9534" args="(struct fat_dir_struct *dd, struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#gab4bc79452dbf5ac2a2f3e1fccafd9534">fat_read_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>dd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads the next directory entry contained within a parent directory. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dd</td><td>The descriptor of the parent directory from which to read the entry. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">dir_entry</td><td>Pointer to a buffer into which to write the directory entry information. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga2d74af47cb9fd44f7c974834f810225f" title="Resets a directory handle.">fat_reset_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga48e17b173bede64cb08cef05b88fd0ca"></a><!-- doxytag: member="fat.h::fat_read_file" ref="ga48e17b173bede64cb08cef05b88fd0ca" args="(struct fat_file_struct *fd, uint8_t *buffer, uintptr_t buffer_len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">intptr_t <a class="el" href="group__fat.html#ga48e17b173bede64cb08cef05b88fd0ca">fat_read_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_file_struct *&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uintptr_t&#160;</td>
<td class="paramname"><em>buffer_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads data from a file. </p>
<p>The data requested is read from the current file location.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The file handle of the file from which to read. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>The buffer into which to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer_len</td><td>The amount of data to read. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes read, 0 on end of file, or -1 on failure. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga6782ff80eb6fba9b6ed1a66f33dae60a" title="Writes data to a file.">fat_write_file</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga2d74af47cb9fd44f7c974834f810225f"></a><!-- doxytag: member="fat.h::fat_reset_dir" ref="ga2d74af47cb9fd44f7c974834f810225f" args="(struct fat_dir_struct *dd)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#ga2d74af47cb9fd44f7c974834f810225f">fat_reset_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>dd</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Resets a directory handle. </p>
<p>Resets the directory handle such that reading restarts with the first directory entry.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dd</td><td>The directory handle to reset. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#gab4bc79452dbf5ac2a2f3e1fccafd9534" title="Reads the next directory entry contained within a parent directory.">fat_read_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gace4858e7a145684f6c8cd14debe14255"></a><!-- doxytag: member="fat.h::fat_resize_file" ref="gace4858e7a145684f6c8cd14debe14255" args="(struct fat_file_struct *fd, uint32_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#gace4858e7a145684f6c8cd14debe14255">fat_resize_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_file_struct *&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Resizes a file to have a specific size. </p>
<p>Enlarges or shrinks the file pointed to by the file descriptor to have exactly the specified size.</p>
<p>If the file is truncated, all bytes having an equal or larger offset than the given size are lost. If the file is expanded, the additional bytes are allocated.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Please be aware that this function just allocates or deallocates disk space, it does not explicitely clear it. To avoid data leakage, this must be done manually.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The file decriptor of the file which to resize. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The new size of the file. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
</div>
</div>
<a class="anchor" id="gad4c305cf004bae9bea48730ed20c87ec"></a><!-- doxytag: member="fat.h::fat_seek_file" ref="gad4c305cf004bae9bea48730ed20c87ec" args="(struct fat_file_struct *fd, int32_t *offset, uint8_t whence)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#gad4c305cf004bae9bea48730ed20c87ec">fat_seek_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_file_struct *&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t *&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>whence</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Repositions the read/write file offset. </p>
<p>Changes the file offset where the next call to <a class="el" href="group__fat__file.html#ga48e17b173bede64cb08cef05b88fd0ca" title="Reads data from a file.">fat_read_file()</a> or <a class="el" href="group__fat__file.html#ga6782ff80eb6fba9b6ed1a66f33dae60a" title="Writes data to a file.">fat_write_file()</a> starts reading/writing.</p>
<p>If the new offset is beyond the end of the file, <a class="el" href="group__fat__file.html#gace4858e7a145684f6c8cd14debe14255" title="Resizes a file to have a specific size.">fat_resize_file()</a> is implicitly called, i.e. the file is expanded.</p>
<p>The new offset can be given in different ways determined by the <code>whence</code> parameter:</p>
<ul>
<li><b>FAT_SEEK_SET:</b> <code>*offset</code> is relative to the beginning of the file.</li>
<li><b>FAT_SEEK_CUR:</b> <code>*offset</code> is relative to the current file position.</li>
<li><b>FAT_SEEK_END:</b> <code>*offset</code> is relative to the end of the file.</li>
</ul>
<p>The resulting absolute offset is written to the location the <code>offset</code> parameter points to.</p>
<p>Calling this function can also be used to retrieve the current file position: </p>
<div class="fragment"><pre class="fragment"> int32_t file_pos = 0;
<span class="keywordflow">if</span>(!<a class="code" href="group__fat__file.html#gad4c305cf004bae9bea48730ed20c87ec" title="Repositions the read/write file offset.">fat_seek_file</a>(fd, &amp;file_pos, <a class="code" href="group__fat__file.html#gadba54c574b9a738c8b766ea3b40eeef2" title="The given offset is relative to the current read/write position.">FAT_SEEK_CUR</a>))
{
<span class="comment">// error</span>
}
<span class="comment">// file_pos now contains the absolute file position</span>
</pre></div><dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The file decriptor of the file on which to seek. </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">offset</td><td>A pointer to the new offset, as affected by the <code>whence</code> parameter. The function writes the new absolute offset to this location before it returns. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">whence</td><td>Affects the way <code>offset</code> is interpreted, see above. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
</div>
</div>
<a class="anchor" id="ga6782ff80eb6fba9b6ed1a66f33dae60a"></a><!-- doxytag: member="fat.h::fat_write_file" ref="ga6782ff80eb6fba9b6ed1a66f33dae60a" args="(struct fat_file_struct *fd, const uint8_t *buffer, uintptr_t buffer_len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">intptr_t <a class="el" href="group__fat.html#ga6782ff80eb6fba9b6ed1a66f33dae60a">fat_write_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_file_struct *&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uintptr_t&#160;</td>
<td class="paramname"><em>buffer_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Writes data to a file. </p>
<p>The data is written to the current file location.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The file handle of the file to which to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>The buffer from which to read the data to be written. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer_len</td><td>The amount of data to write. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes written (0 or something less than <code>buffer_len</code> on disk full) or -1 on failure. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga48e17b173bede64cb08cef05b88fd0ca" title="Reads data from a file.">fat_read_file</a> </dd></dl>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,242 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: FAT configuration</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> </div>
<div class="headertitle">
<div class="title">FAT configuration</div> </div>
<div class="ingroups"><a class="el" href="group__fat.html">FAT support</a></div></div><!--header-->
<div class="contents">
<p>Preprocessor defines to configure the FAT implementation.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#gace70b11f85eb1b4e15220a65e9bd047d">FAT_WRITE_SUPPORT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls FAT write support. <a href="#gace70b11f85eb1b4e15220a65e9bd047d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga37b51677b33d2e74bec670f52c201a51">FAT_LFN_SUPPORT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls FAT long filename (LFN) support. <a href="#ga37b51677b33d2e74bec670f52c201a51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga80fa068db7d09fb267b36741d773eadf">FAT_DATETIME_SUPPORT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls FAT date and time support. <a href="#ga80fa068db7d09fb267b36741d773eadf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga73fdc6edf277eee1551985c3eb9602a3">FAT_FAT32_SUPPORT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls FAT32 support. <a href="#ga73fdc6edf277eee1551985c3eb9602a3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga13f632eadee5b7d768b14bf279e843fd">FAT_DELAY_DIRENTRY_UPDATE</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls updates of directory entries. <a href="#ga13f632eadee5b7d768b14bf279e843fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#gafeacb265671562dc1c4a863991163bb4">fat_get_datetime</a>(year, month, day, hour, min, sec)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the function used for retrieving current date and time. <a href="#gafeacb265671562dc1c4a863991163bb4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3d9b70f2a51fd6413f30f6a17e4480bd"></a><!-- doxytag: member="fat_config::FAT_FS_COUNT" ref="ga3d9b70f2a51fd6413f30f6a17e4480bd" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga3d9b70f2a51fd6413f30f6a17e4480bd">FAT_FS_COUNT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of filesystem handles. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae165b9e014e6213eb4429ebda300b6e8"></a><!-- doxytag: member="fat_config::FAT_FILE_COUNT" ref="gae165b9e014e6213eb4429ebda300b6e8" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#gae165b9e014e6213eb4429ebda300b6e8">FAT_FILE_COUNT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of file handles. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8309de7e60311102cb90f9bca6b7d2f8"></a><!-- doxytag: member="fat_config::FAT_DIR_COUNT" ref="ga8309de7e60311102cb90f9bca6b7d2f8" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__config.html#ga8309de7e60311102cb90f9bca6b7d2f8">FAT_DIR_COUNT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of directory handles. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Preprocessor defines to configure the FAT implementation. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ga80fa068db7d09fb267b36741d773eadf"></a><!-- doxytag: member="fat_config.h::FAT_DATETIME_SUPPORT" ref="ga80fa068db7d09fb267b36741d773eadf" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__config.html#ga80fa068db7d09fb267b36741d773eadf">FAT_DATETIME_SUPPORT</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Controls FAT date and time support. </p>
<p>Set to 1 to enable FAT date and time stamping support. </p>
</div>
</div>
<a class="anchor" id="ga13f632eadee5b7d768b14bf279e843fd"></a><!-- doxytag: member="fat_config.h::FAT_DELAY_DIRENTRY_UPDATE" ref="ga13f632eadee5b7d768b14bf279e843fd" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__config.html#ga13f632eadee5b7d768b14bf279e843fd">FAT_DELAY_DIRENTRY_UPDATE</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Controls updates of directory entries. </p>
<p>Set to 1 to delay directory entry updates until the file is closed. This can boost performance significantly, but may cause data loss if the file is not properly closed. </p>
</div>
</div>
<a class="anchor" id="ga73fdc6edf277eee1551985c3eb9602a3"></a><!-- doxytag: member="fat_config.h::FAT_FAT32_SUPPORT" ref="ga73fdc6edf277eee1551985c3eb9602a3" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__config.html#ga73fdc6edf277eee1551985c3eb9602a3">FAT_FAT32_SUPPORT</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Controls FAT32 support. </p>
<p>Set to 1 to enable FAT32 support. </p>
</div>
</div>
<a class="anchor" id="gafeacb265671562dc1c4a863991163bb4"></a><!-- doxytag: member="fat_config.h::fat_get_datetime" ref="gafeacb265671562dc1c4a863991163bb4" args="(year, month, day, hour, min, sec)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__config.html#gafeacb265671562dc1c4a863991163bb4">fat_get_datetime</a></td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">year, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">month, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">day, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">hour, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">min, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">sec&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Determines the function used for retrieving current date and time. </p>
<p>Define this to the function call which shall be used to retrieve current date and time.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Used only when FAT_DATETIME_SUPPORT is 1.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">year</td><td>Pointer to a <code>uint16_t</code> which receives the current year. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">month</td><td>Pointer to a <code>uint8_t</code> which receives the current month. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">day</td><td>Pointer to a <code>uint8_t</code> which receives the current day. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">hour</td><td>Pointer to a <code>uint8_t</code> which receives the current hour. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">min</td><td>Pointer to a <code>uint8_t</code> which receives the current minute. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">sec</td><td>Pointer to a <code>uint8_t</code> which receives the current sec. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga37b51677b33d2e74bec670f52c201a51"></a><!-- doxytag: member="fat_config.h::FAT_LFN_SUPPORT" ref="ga37b51677b33d2e74bec670f52c201a51" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__config.html#ga37b51677b33d2e74bec670f52c201a51">FAT_LFN_SUPPORT</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Controls FAT long filename (LFN) support. </p>
<p>Set to 1 to enable LFN support, set to 0 to disable it. </p>
</div>
</div>
<a class="anchor" id="gace70b11f85eb1b4e15220a65e9bd047d"></a><!-- doxytag: member="fat_config.h::FAT_WRITE_SUPPORT" ref="gace70b11f85eb1b4e15220a65e9bd047d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__config.html#gace70b11f85eb1b4e15220a65e9bd047d">FAT_WRITE_SUPPORT</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Controls FAT write support. </p>
<p>Set to 1 to enable FAT write support, set to 0 to disable it. </p>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,359 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: FAT directory functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">FAT directory functions</div> </div>
<div class="ingroups"><a class="el" href="group__fat.html">FAT support</a></div></div><!--header-->
<div class="contents">
<p>Functions for managing directories.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_dir_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#gac7a5b4ad0b972759a965e1afd5bbc87c">fat_open_dir</a> (struct fat_fs_struct *fs, const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a directory. <a href="#gac7a5b4ad0b972759a965e1afd5bbc87c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#ga2fed74d916370428e3dcf278e7050111">fat_close_dir</a> (struct fat_dir_struct *dd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a directory descriptor. <a href="#ga2fed74d916370428e3dcf278e7050111"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#gab4bc79452dbf5ac2a2f3e1fccafd9534">fat_read_dir</a> (struct fat_dir_struct *dd, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the next directory entry contained within a parent directory. <a href="#gab4bc79452dbf5ac2a2f3e1fccafd9534"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#ga2d74af47cb9fd44f7c974834f810225f">fat_reset_dir</a> (struct fat_dir_struct *dd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets a directory handle. <a href="#ga2d74af47cb9fd44f7c974834f810225f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#gaff3b524066c9a937fae32771c80e7603">fat_create_dir</a> (struct fat_dir_struct *parent, const char *dir, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a directory. <a href="#gaff3b524066c9a937fae32771c80e7603"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#gac0b6889e84a48b2d69fd681e5ac2e772">fat_delete_dir</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes a directory. <a href="#gac0b6889e84a48b2d69fd681e5ac2e772"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__dir.html#ga8c448f10b372823ce01b39fefb0679b9">fat_move_dir</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, struct fat_dir_struct *parent_new, const char *dir_new)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves or renames a directory. <a href="#ga8c448f10b372823ce01b39fefb0679b9"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Functions for managing directories. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga2fed74d916370428e3dcf278e7050111"></a><!-- doxytag: member="fat.c::fat_close_dir" ref="ga2fed74d916370428e3dcf278e7050111" args="(struct fat_dir_struct *dd)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat.html#ga2fed74d916370428e3dcf278e7050111">fat_close_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>dd</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Closes a directory descriptor. </p>
<p>This function destroys a directory descriptor which was previously obtained by calling <a class="el" href="group__fat__dir.html#gac7a5b4ad0b972759a965e1afd5bbc87c" title="Opens a directory.">fat_open_dir()</a>. When this function returns, the given descriptor will be invalid.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dd</td><td>The directory descriptor to close. </td></tr>
</table>
</dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#gac7a5b4ad0b972759a965e1afd5bbc87c" title="Opens a directory.">fat_open_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gaff3b524066c9a937fae32771c80e7603"></a><!-- doxytag: member="fat.c::fat_create_dir" ref="gaff3b524066c9a937fae32771c80e7603" args="(struct fat_dir_struct *parent, const char *dir, struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#gaff3b524066c9a937fae32771c80e7603">fat_create_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>parent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates a directory. </p>
<p>Creates a directory and obtains its directory entry. If the directory to create already exists, its directory entry will be returned within the dir_entry parameter.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>The notes which apply to <a class="el" href="group__fat__file.html#ga9d17d09125359dfb440fc57eede40b4f" title="Creates a file.">fat_create_file()</a> also apply to this function.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">parent</td><td>The handle of the parent directory of the new directory. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dir</td><td>The name of the directory to create. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">dir_entry</td><td>The directory entry to fill for the new directory. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat__dir.html#gac0b6889e84a48b2d69fd681e5ac2e772" title="Deletes a directory.">fat_delete_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gac0b6889e84a48b2d69fd681e5ac2e772"></a><!-- doxytag: member="fat.c::fat_delete_dir" ref="gac0b6889e84a48b2d69fd681e5ac2e772" args="(struct fat_fs_struct *fs, struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat__dir.html#gac0b6889e84a48b2d69fd681e5ac2e772">fat_delete_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Deletes a directory. </p>
<p>This is just a synonym for <a class="el" href="group__fat__file.html#ga46055219b942eb8d57ffae9dc6447e7c" title="Deletes a file or directory.">fat_delete_file()</a>. If a directory is deleted without first deleting its subdirectories and files, disk space occupied by these files will get wasted as there is no chance to release it and mark it as free.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which to operate. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry of the directory to delete. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#gaff3b524066c9a937fae32771c80e7603" title="Creates a directory.">fat_create_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga8c448f10b372823ce01b39fefb0679b9"></a><!-- doxytag: member="fat.c::fat_move_dir" ref="ga8c448f10b372823ce01b39fefb0679b9" args="(struct fat_fs_struct *fs, struct fat_dir_entry_struct *dir_entry, struct fat_dir_struct *parent_new, const char *dir_new)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat__dir.html#ga8c448f10b372823ce01b39fefb0679b9">fat_move_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>parent_new</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>dir_new</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Moves or renames a directory. </p>
<p>This is just a synonym for <a class="el" href="group__fat__file.html#gaba4d2c80ccd8f1aebcecf7072dc37510" title="Moves or renames a file.">fat_move_file()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which to operate. </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">dir_entry</td><td>The directory entry of the directory to move. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">parent_new</td><td>The handle of the new parent directory. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dir_new</td><td>The directory's new name. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#gaff3b524066c9a937fae32771c80e7603" title="Creates a directory.">fat_create_dir</a>, <a class="el" href="group__fat__dir.html#gac0b6889e84a48b2d69fd681e5ac2e772" title="Deletes a directory.">fat_delete_dir</a>, <a class="el" href="group__fat.html#gaba4d2c80ccd8f1aebcecf7072dc37510" title="Moves or renames a file.">fat_move_file</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gac7a5b4ad0b972759a965e1afd5bbc87c"></a><!-- doxytag: member="fat.c::fat_open_dir" ref="gac7a5b4ad0b972759a965e1afd5bbc87c" args="(struct fat_fs_struct *fs, const struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct fat_dir_struct* <a class="el" href="group__fat.html#gac7a5b4ad0b972759a965e1afd5bbc87c">fat_open_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [read]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Opens a directory. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which the directory to open resides. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry which stands for the directory to open. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>An opaque directory descriptor on success, 0 on failure. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga2fed74d916370428e3dcf278e7050111" title="Closes a directory descriptor.">fat_close_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gab4bc79452dbf5ac2a2f3e1fccafd9534"></a><!-- doxytag: member="fat.c::fat_read_dir" ref="gab4bc79452dbf5ac2a2f3e1fccafd9534" args="(struct fat_dir_struct *dd, struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#gab4bc79452dbf5ac2a2f3e1fccafd9534">fat_read_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>dd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads the next directory entry contained within a parent directory. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dd</td><td>The descriptor of the parent directory from which to read the entry. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">dir_entry</td><td>Pointer to a buffer into which to write the directory entry information. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga2d74af47cb9fd44f7c974834f810225f" title="Resets a directory handle.">fat_reset_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga2d74af47cb9fd44f7c974834f810225f"></a><!-- doxytag: member="fat.c::fat_reset_dir" ref="ga2d74af47cb9fd44f7c974834f810225f" args="(struct fat_dir_struct *dd)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#ga2d74af47cb9fd44f7c974834f810225f">fat_reset_dir</a> </td>
<td>(</td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>dd</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Resets a directory handle. </p>
<p>Resets the directory handle such that reading restarts with the first directory entry.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dd</td><td>The directory handle to reset. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#gab4bc79452dbf5ac2a2f3e1fccafd9534" title="Reads the next directory entry contained within a parent directory.">fat_read_dir</a> </dd></dl>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,910 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: FAT file functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">FAT file functions</div> </div>
<div class="ingroups"><a class="el" href="group__fat.html">FAT support</a></div></div><!--header-->
<div class="contents">
<p>Functions for managing files.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes a directory entry. <a href="structfat__dir__entry__struct.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gac404d1380dbf00e8a1d6145e035ef10b">FAT_ATTRIB_READONLY</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file is read-only. <a href="#gac404d1380dbf00e8a1d6145e035ef10b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gaaf88f01d19ef4ca777c9c683f458f45f">FAT_ATTRIB_HIDDEN</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file is hidden. <a href="#gaaf88f01d19ef4ca777c9c683f458f45f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gae5aa3610233e87e4ca36b2afe3c3854c">FAT_ATTRIB_SYSTEM</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file is a system file. <a href="#gae5aa3610233e87e4ca36b2afe3c3854c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga86f9c93dd409d11813361d48517ccbce">FAT_ATTRIB_VOLUME</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file is empty and has the volume label as its name. <a href="#ga86f9c93dd409d11813361d48517ccbce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gacd38dccfabf884611c62aebc90e5adc7">FAT_ATTRIB_DIR</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file is a directory. <a href="#gacd38dccfabf884611c62aebc90e5adc7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga18ef7ecd9adce93d49a571882e145c99">FAT_ATTRIB_ARCHIVE</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file has to be archived. <a href="#ga18ef7ecd9adce93d49a571882e145c99"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gab870215439192f82ed358e2c7e94ba09">FAT_SEEK_SET</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The given offset is relative to the beginning of the file. <a href="#gab870215439192f82ed358e2c7e94ba09"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gadba54c574b9a738c8b766ea3b40eeef2">FAT_SEEK_CUR</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The given offset is relative to the current read/write position. <a href="#gadba54c574b9a738c8b766ea3b40eeef2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gab34d95851ea8b28646ce25c0e0039bc2">FAT_SEEK_END</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The given offset is relative to the end of the file. <a href="#gab34d95851ea8b28646ce25c0e0039bc2"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga033743a7d8878712e0add6d57b750525">fat_get_dir_entry_of_path</a> (struct fat_fs_struct *fs, const char *path, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the directory entry of a path. <a href="#ga033743a7d8878712e0add6d57b750525"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_file_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga76a0b06949525b578db04a56d67fbfc4">fat_open_file</a> (struct fat_fs_struct *fs, const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a file on a FAT filesystem. <a href="#ga76a0b06949525b578db04a56d67fbfc4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga70b082abb4ebc8d4e9956886901b55fc">fat_close_file</a> (struct fat_file_struct *fd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a file. <a href="#ga70b082abb4ebc8d4e9956886901b55fc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">intptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga48e17b173bede64cb08cef05b88fd0ca">fat_read_file</a> (struct fat_file_struct *fd, uint8_t *buffer, uintptr_t buffer_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data from a file. <a href="#ga48e17b173bede64cb08cef05b88fd0ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">intptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga6782ff80eb6fba9b6ed1a66f33dae60a">fat_write_file</a> (struct fat_file_struct *fd, const uint8_t *buffer, uintptr_t buffer_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes data to a file. <a href="#ga6782ff80eb6fba9b6ed1a66f33dae60a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gad4c305cf004bae9bea48730ed20c87ec">fat_seek_file</a> (struct fat_file_struct *fd, int32_t *offset, uint8_t whence)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repositions the read/write file offset. <a href="#gad4c305cf004bae9bea48730ed20c87ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gace4858e7a145684f6c8cd14debe14255">fat_resize_file</a> (struct fat_file_struct *fd, uint32_t size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resizes a file to have a specific size. <a href="#gace4858e7a145684f6c8cd14debe14255"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga9d17d09125359dfb440fc57eede40b4f">fat_create_file</a> (struct fat_dir_struct *parent, const char *file, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a file. <a href="#ga9d17d09125359dfb440fc57eede40b4f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga46055219b942eb8d57ffae9dc6447e7c">fat_delete_file</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes a file or directory. <a href="#ga46055219b942eb8d57ffae9dc6447e7c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gaba4d2c80ccd8f1aebcecf7072dc37510">fat_move_file</a> (struct fat_fs_struct *fs, struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, struct fat_dir_struct *parent_new, const char *file_new)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves or renames a file. <a href="#gaba4d2c80ccd8f1aebcecf7072dc37510"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga24763fd73cbeb580ae5d19e975bde0d8">fat_get_file_modification_date</a> (const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint16_t *year, uint8_t *month, uint8_t *day)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the modification date of a file. <a href="#ga24763fd73cbeb580ae5d19e975bde0d8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga74f840c317556b7dae766e199d87a6ef">fat_get_file_modification_time</a> (const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint8_t *hour, uint8_t *min, uint8_t *sec)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the modification time of a file. <a href="#ga74f840c317556b7dae766e199d87a6ef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#ga02c969e994a556534c92906db5bb04fd">fat_set_file_modification_date</a> (struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint16_t year, uint8_t month, uint8_t day)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the modification time of a date. <a href="#ga02c969e994a556534c92906db5bb04fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__file.html#gab514f14ce35a38bff3f16270dfdc033b">fat_set_file_modification_time</a> (struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *dir_entry, uint8_t hour, uint8_t min, uint8_t sec)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the modification time of a file. <a href="#gab514f14ce35a38bff3f16270dfdc033b"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Functions for managing files. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ga18ef7ecd9adce93d49a571882e145c99"></a><!-- doxytag: member="fat.h::FAT_ATTRIB_ARCHIVE" ref="ga18ef7ecd9adce93d49a571882e145c99" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__file.html#ga18ef7ecd9adce93d49a571882e145c99">FAT_ATTRIB_ARCHIVE</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The file has to be archived. </p>
</div>
</div>
<a class="anchor" id="gacd38dccfabf884611c62aebc90e5adc7"></a><!-- doxytag: member="fat.h::FAT_ATTRIB_DIR" ref="gacd38dccfabf884611c62aebc90e5adc7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__file.html#gacd38dccfabf884611c62aebc90e5adc7">FAT_ATTRIB_DIR</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The file is a directory. </p>
</div>
</div>
<a class="anchor" id="gaaf88f01d19ef4ca777c9c683f458f45f"></a><!-- doxytag: member="fat.h::FAT_ATTRIB_HIDDEN" ref="gaaf88f01d19ef4ca777c9c683f458f45f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__file.html#gaaf88f01d19ef4ca777c9c683f458f45f">FAT_ATTRIB_HIDDEN</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The file is hidden. </p>
</div>
</div>
<a class="anchor" id="gac404d1380dbf00e8a1d6145e035ef10b"></a><!-- doxytag: member="fat.h::FAT_ATTRIB_READONLY" ref="gac404d1380dbf00e8a1d6145e035ef10b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__file.html#gac404d1380dbf00e8a1d6145e035ef10b">FAT_ATTRIB_READONLY</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The file is read-only. </p>
</div>
</div>
<a class="anchor" id="gae5aa3610233e87e4ca36b2afe3c3854c"></a><!-- doxytag: member="fat.h::FAT_ATTRIB_SYSTEM" ref="gae5aa3610233e87e4ca36b2afe3c3854c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__file.html#gae5aa3610233e87e4ca36b2afe3c3854c">FAT_ATTRIB_SYSTEM</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The file is a system file. </p>
</div>
</div>
<a class="anchor" id="ga86f9c93dd409d11813361d48517ccbce"></a><!-- doxytag: member="fat.h::FAT_ATTRIB_VOLUME" ref="ga86f9c93dd409d11813361d48517ccbce" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__file.html#ga86f9c93dd409d11813361d48517ccbce">FAT_ATTRIB_VOLUME</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The file is empty and has the volume label as its name. </p>
</div>
</div>
<a class="anchor" id="gadba54c574b9a738c8b766ea3b40eeef2"></a><!-- doxytag: member="fat.h::FAT_SEEK_CUR" ref="gadba54c574b9a738c8b766ea3b40eeef2" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__file.html#gadba54c574b9a738c8b766ea3b40eeef2">FAT_SEEK_CUR</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The given offset is relative to the current read/write position. </p>
</div>
</div>
<a class="anchor" id="gab34d95851ea8b28646ce25c0e0039bc2"></a><!-- doxytag: member="fat.h::FAT_SEEK_END" ref="gab34d95851ea8b28646ce25c0e0039bc2" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__file.html#gab34d95851ea8b28646ce25c0e0039bc2">FAT_SEEK_END</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The given offset is relative to the end of the file. </p>
</div>
</div>
<a class="anchor" id="gab870215439192f82ed358e2c7e94ba09"></a><!-- doxytag: member="fat.h::FAT_SEEK_SET" ref="gab870215439192f82ed358e2c7e94ba09" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__fat__file.html#gab870215439192f82ed358e2c7e94ba09">FAT_SEEK_SET</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The given offset is relative to the beginning of the file. </p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga70b082abb4ebc8d4e9956886901b55fc"></a><!-- doxytag: member="fat.c::fat_close_file" ref="ga70b082abb4ebc8d4e9956886901b55fc" args="(struct fat_file_struct *fd)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat.html#ga70b082abb4ebc8d4e9956886901b55fc">fat_close_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_file_struct *&#160;</td>
<td class="paramname"><em>fd</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Closes a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The file handle of the file to close. </td></tr>
</table>
</dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga76a0b06949525b578db04a56d67fbfc4" title="Opens a file on a FAT filesystem.">fat_open_file</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga9d17d09125359dfb440fc57eede40b4f"></a><!-- doxytag: member="fat.c::fat_create_file" ref="ga9d17d09125359dfb440fc57eede40b4f" args="(struct fat_dir_struct *parent, const char *file, struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#ga9d17d09125359dfb440fc57eede40b4f">fat_create_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>parent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates a file. </p>
<p>Creates a file and obtains the directory entry of the new file. If the file to create already exists, the directory entry of the existing file will be returned within the dir_entry parameter.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>The file name is not checked for invalid characters.</dd>
<dd>
The generation of the short 8.3 file name is quite simple. The first eight characters are used for the filename. The extension, if any, is made up of the first three characters following the last dot within the long filename. If the filename (without the extension) is longer than eight characters, the lower byte of the cluster number replaces the last two characters to avoid name clashes. In any other case, it is your responsibility to avoid name clashes.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">parent</td><td>The handle of the directory in which to create the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>The name of the file to create. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">dir_entry</td><td>The directory entry to fill for the new (or existing) file. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success, 2 if the file already existed. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga46055219b942eb8d57ffae9dc6447e7c" title="Deletes a file or directory.">fat_delete_file</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga46055219b942eb8d57ffae9dc6447e7c"></a><!-- doxytag: member="fat.c::fat_delete_file" ref="ga46055219b942eb8d57ffae9dc6447e7c" args="(struct fat_fs_struct *fs, struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#ga46055219b942eb8d57ffae9dc6447e7c">fat_delete_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Deletes a file or directory. </p>
<p>If a directory is deleted without first deleting its subdirectories and files, disk space occupied by these files will get wasted as there is no chance to release it and mark it as free.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which to operate. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry of the file to delete. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga9d17d09125359dfb440fc57eede40b4f" title="Creates a file.">fat_create_file</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga033743a7d8878712e0add6d57b750525"></a><!-- doxytag: member="fat.c::fat_get_dir_entry_of_path" ref="ga033743a7d8878712e0add6d57b750525" args="(struct fat_fs_struct *fs, const char *path, struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#ga033743a7d8878712e0add6d57b750525">fat_get_dir_entry_of_path</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Retrieves the directory entry of a path. </p>
<p>The given path may both describe a file or a directory.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The FAT filesystem on which to search. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>The path of which to read the directory entry. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">dir_entry</td><td>The directory entry to fill. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#gab4bc79452dbf5ac2a2f3e1fccafd9534" title="Reads the next directory entry contained within a parent directory.">fat_read_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga24763fd73cbeb580ae5d19e975bde0d8"></a><!-- doxytag: member="fat.c::fat_get_file_modification_date" ref="ga24763fd73cbeb580ae5d19e975bde0d8" args="(const struct fat_dir_entry_struct *dir_entry, uint16_t *year, uint8_t *month, uint8_t *day)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat.html#ga24763fd73cbeb580ae5d19e975bde0d8">fat_get_file_modification_date</a> </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t *&#160;</td>
<td class="paramname"><em>year</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>month</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>day</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the modification date of a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry of which to return the modification date. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">year</td><td>The year the file was last modified. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">month</td><td>The month the file was last modified. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">day</td><td>The day the file was last modified. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga74f840c317556b7dae766e199d87a6ef"></a><!-- doxytag: member="fat.c::fat_get_file_modification_time" ref="ga74f840c317556b7dae766e199d87a6ef" args="(const struct fat_dir_entry_struct *dir_entry, uint8_t *hour, uint8_t *min, uint8_t *sec)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat.html#ga74f840c317556b7dae766e199d87a6ef">fat_get_file_modification_time</a> </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>hour</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>min</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>sec</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the modification time of a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry of which to return the modification time. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">hour</td><td>The hour the file was last modified. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">min</td><td>The min the file was last modified. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">sec</td><td>The sec the file was last modified. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaba4d2c80ccd8f1aebcecf7072dc37510"></a><!-- doxytag: member="fat.c::fat_move_file" ref="gaba4d2c80ccd8f1aebcecf7072dc37510" args="(struct fat_fs_struct *fs, struct fat_dir_entry_struct *dir_entry, struct fat_dir_struct *parent_new, const char *file_new)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#gaba4d2c80ccd8f1aebcecf7072dc37510">fat_move_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct fat_dir_struct *&#160;</td>
<td class="paramname"><em>parent_new</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>file_new</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Moves or renames a file. </p>
<p>Changes a file's name, optionally moving it into another directory as well. Before calling this function, the target file name must not exist. Moving a file to a different filesystem (i.e. <em>parent_new</em> doesn't lie on <em>fs</em>) is not supported.</p>
<p>After successfully renaming (and moving) the file, the given directory entry is updated such that it points to the file's new location.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>The notes which apply to <a class="el" href="group__fat__file.html#ga9d17d09125359dfb440fc57eede40b4f" title="Creates a file.">fat_create_file()</a> also apply to this function.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which to operate. </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">dir_entry</td><td>The directory entry of the file to move. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">parent_new</td><td>The handle of the new parent directory of the file. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">file_new</td><td>The file's new name. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga9d17d09125359dfb440fc57eede40b4f" title="Creates a file.">fat_create_file</a>, <a class="el" href="group__fat.html#ga46055219b942eb8d57ffae9dc6447e7c" title="Deletes a file or directory.">fat_delete_file</a>, <a class="el" href="group__fat__dir.html#ga8c448f10b372823ce01b39fefb0679b9" title="Moves or renames a directory.">fat_move_dir</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga76a0b06949525b578db04a56d67fbfc4"></a><!-- doxytag: member="fat.c::fat_open_file" ref="ga76a0b06949525b578db04a56d67fbfc4" args="(struct fat_fs_struct *fs, const struct fat_dir_entry_struct *dir_entry)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct fat_file_struct* <a class="el" href="group__fat.html#ga76a0b06949525b578db04a56d67fbfc4">fat_open_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [read]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Opens a file on a FAT filesystem. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which the file to open lies. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry of the file to open. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The file handle, or 0 on failure. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga70b082abb4ebc8d4e9956886901b55fc" title="Closes a file.">fat_close_file</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga48e17b173bede64cb08cef05b88fd0ca"></a><!-- doxytag: member="fat.c::fat_read_file" ref="ga48e17b173bede64cb08cef05b88fd0ca" args="(struct fat_file_struct *fd, uint8_t *buffer, uintptr_t buffer_len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">intptr_t <a class="el" href="group__fat.html#ga48e17b173bede64cb08cef05b88fd0ca">fat_read_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_file_struct *&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uintptr_t&#160;</td>
<td class="paramname"><em>buffer_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads data from a file. </p>
<p>The data requested is read from the current file location.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The file handle of the file from which to read. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>The buffer into which to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer_len</td><td>The amount of data to read. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes read, 0 on end of file, or -1 on failure. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga6782ff80eb6fba9b6ed1a66f33dae60a" title="Writes data to a file.">fat_write_file</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gace4858e7a145684f6c8cd14debe14255"></a><!-- doxytag: member="fat.c::fat_resize_file" ref="gace4858e7a145684f6c8cd14debe14255" args="(struct fat_file_struct *fd, uint32_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#gace4858e7a145684f6c8cd14debe14255">fat_resize_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_file_struct *&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Resizes a file to have a specific size. </p>
<p>Enlarges or shrinks the file pointed to by the file descriptor to have exactly the specified size.</p>
<p>If the file is truncated, all bytes having an equal or larger offset than the given size are lost. If the file is expanded, the additional bytes are allocated.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Please be aware that this function just allocates or deallocates disk space, it does not explicitely clear it. To avoid data leakage, this must be done manually.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The file decriptor of the file which to resize. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The new size of the file. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
</div>
</div>
<a class="anchor" id="gad4c305cf004bae9bea48730ed20c87ec"></a><!-- doxytag: member="fat.c::fat_seek_file" ref="gad4c305cf004bae9bea48730ed20c87ec" args="(struct fat_file_struct *fd, int32_t *offset, uint8_t whence)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__fat.html#gad4c305cf004bae9bea48730ed20c87ec">fat_seek_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_file_struct *&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t *&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>whence</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Repositions the read/write file offset. </p>
<p>Changes the file offset where the next call to <a class="el" href="group__fat__file.html#ga48e17b173bede64cb08cef05b88fd0ca" title="Reads data from a file.">fat_read_file()</a> or <a class="el" href="group__fat__file.html#ga6782ff80eb6fba9b6ed1a66f33dae60a" title="Writes data to a file.">fat_write_file()</a> starts reading/writing.</p>
<p>If the new offset is beyond the end of the file, <a class="el" href="group__fat__file.html#gace4858e7a145684f6c8cd14debe14255" title="Resizes a file to have a specific size.">fat_resize_file()</a> is implicitly called, i.e. the file is expanded.</p>
<p>The new offset can be given in different ways determined by the <code>whence</code> parameter:</p>
<ul>
<li><b>FAT_SEEK_SET:</b> <code>*offset</code> is relative to the beginning of the file.</li>
<li><b>FAT_SEEK_CUR:</b> <code>*offset</code> is relative to the current file position.</li>
<li><b>FAT_SEEK_END:</b> <code>*offset</code> is relative to the end of the file.</li>
</ul>
<p>The resulting absolute offset is written to the location the <code>offset</code> parameter points to.</p>
<p>Calling this function can also be used to retrieve the current file position: </p>
<div class="fragment"><pre class="fragment"> int32_t file_pos = 0;
<span class="keywordflow">if</span>(!<a class="code" href="group__fat__file.html#gad4c305cf004bae9bea48730ed20c87ec" title="Repositions the read/write file offset.">fat_seek_file</a>(fd, &amp;file_pos, <a class="code" href="group__fat__file.html#gadba54c574b9a738c8b766ea3b40eeef2" title="The given offset is relative to the current read/write position.">FAT_SEEK_CUR</a>))
{
<span class="comment">// error</span>
}
<span class="comment">// file_pos now contains the absolute file position</span>
</pre></div><dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The file decriptor of the file on which to seek. </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">offset</td><td>A pointer to the new offset, as affected by the <code>whence</code> parameter. The function writes the new absolute offset to this location before it returns. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">whence</td><td>Affects the way <code>offset</code> is interpreted, see above. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
</div>
</div>
<a class="anchor" id="ga02c969e994a556534c92906db5bb04fd"></a><!-- doxytag: member="fat.c::fat_set_file_modification_date" ref="ga02c969e994a556534c92906db5bb04fd" args="(struct fat_dir_entry_struct *dir_entry, uint16_t year, uint8_t month, uint8_t day)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat__file.html#ga02c969e994a556534c92906db5bb04fd">fat_set_file_modification_date</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>year</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>month</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>day</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the modification time of a date. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry for which to set the modification date. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">year</td><td>The year the file was last modified. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">month</td><td>The month the file was last modified. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">day</td><td>The day the file was last modified. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab514f14ce35a38bff3f16270dfdc033b"></a><!-- doxytag: member="fat.c::fat_set_file_modification_time" ref="gab514f14ce35a38bff3f16270dfdc033b" args="(struct fat_dir_entry_struct *dir_entry, uint8_t hour, uint8_t min, uint8_t sec)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat__file.html#gab514f14ce35a38bff3f16270dfdc033b">fat_set_file_modification_time</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structfat__dir__entry__struct.html">fat_dir_entry_struct</a> *&#160;</td>
<td class="paramname"><em>dir_entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>hour</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>min</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>sec</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the modification time of a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dir_entry</td><td>The directory entry for which to set the modification time. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">hour</td><td>The year the file was last modified. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">min</td><td>The month the file was last modified. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sec</td><td>The day the file was last modified. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga6782ff80eb6fba9b6ed1a66f33dae60a"></a><!-- doxytag: member="fat.c::fat_write_file" ref="ga6782ff80eb6fba9b6ed1a66f33dae60a" args="(struct fat_file_struct *fd, const uint8_t *buffer, uintptr_t buffer_len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">intptr_t <a class="el" href="group__fat.html#ga6782ff80eb6fba9b6ed1a66f33dae60a">fat_write_file</a> </td>
<td>(</td>
<td class="paramtype">struct fat_file_struct *&#160;</td>
<td class="paramname"><em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uintptr_t&#160;</td>
<td class="paramname"><em>buffer_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Writes data to a file. </p>
<p>The data is written to the current file location.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>The file handle of the file to which to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>The buffer from which to read the data to be written. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer_len</td><td>The amount of data to write. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes written (0 or something less than <code>buffer_len</code> on disk full) or -1 on failure. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga48e17b173bede64cb08cef05b88fd0ca" title="Reads data from a file.">fat_read_file</a> </dd></dl>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,193 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: FAT access</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">FAT access</div> </div>
<div class="ingroups"><a class="el" href="group__fat.html">FAT support</a></div></div><!--header-->
<div class="contents">
<p>Basic functions for handling a FAT filesystem.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct fat_fs_struct *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__fs.html#ga5d726bac328b49abc2e6fb022d97092a">fat_open</a> (struct <a class="el" href="structpartition__struct.html">partition_struct</a> *partition)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a FAT filesystem. <a href="#ga5d726bac328b49abc2e6fb022d97092a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__fs.html#ga057612824886e115b88bf5affcf76829">fat_close</a> (struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a FAT filesystem. <a href="#ga057612824886e115b88bf5affcf76829"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">offset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__fs.html#gaab7768ca45847d5c4033a91984d65f1a">fat_get_fs_size</a> (const struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the amount of total storage capacity of the filesystem in bytes. <a href="#gaab7768ca45847d5c4033a91984d65f1a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">offset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__fs.html#gacc43179721b97d82fefafaf5625350bb">fat_get_fs_free</a> (const struct fat_fs_struct *fs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the amount of free storage capacity on the filesystem in bytes. <a href="#gacc43179721b97d82fefafaf5625350bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafee6ea130655af67845e1cebe9a96bfc"></a><!-- doxytag: member="fat_fs::fat_get_fs_free_32_callback" ref="gafee6ea130655af67845e1cebe9a96bfc" args="(uint8_t *buffer, offset_t offset, void *p)" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__fat__fs.html#gafee6ea130655af67845e1cebe9a96bfc">fat_get_fs_free_32_callback</a> (uint8_t *buffer, offset_t offset, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function used for counting free clusters in a FAT32. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Basic functions for handling a FAT filesystem. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga057612824886e115b88bf5affcf76829"></a><!-- doxytag: member="fat.c::fat_close" ref="ga057612824886e115b88bf5affcf76829" args="(struct fat_fs_struct *fs)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__fat.html#ga057612824886e115b88bf5affcf76829">fat_close</a> </td>
<td>(</td>
<td class="paramtype">struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Closes a FAT filesystem. </p>
<p>When this function returns, the given filesystem descriptor will be invalid.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem to close. </td></tr>
</table>
</dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga5d726bac328b49abc2e6fb022d97092a" title="Opens a FAT filesystem.">fat_open</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gacc43179721b97d82fefafaf5625350bb"></a><!-- doxytag: member="fat.c::fat_get_fs_free" ref="gacc43179721b97d82fefafaf5625350bb" args="(const struct fat_fs_struct *fs)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">offset_t <a class="el" href="group__fat.html#gacc43179721b97d82fefafaf5625350bb">fat_get_fs_free</a> </td>
<td>(</td>
<td class="paramtype">const struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the amount of free storage capacity on the filesystem in bytes. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>As the FAT filesystem is cluster based, this function does not return continuous values but multiples of the cluster size.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which to operate. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, the free filesystem space in bytes otherwise. </dd></dl>
</div>
</div>
<a class="anchor" id="gaab7768ca45847d5c4033a91984d65f1a"></a><!-- doxytag: member="fat.c::fat_get_fs_size" ref="gaab7768ca45847d5c4033a91984d65f1a" args="(const struct fat_fs_struct *fs)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">offset_t <a class="el" href="group__fat.html#gaab7768ca45847d5c4033a91984d65f1a">fat_get_fs_size</a> </td>
<td>(</td>
<td class="paramtype">const struct fat_fs_struct *&#160;</td>
<td class="paramname"><em>fs</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the amount of total storage capacity of the filesystem in bytes. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">fs</td><td>The filesystem on which to operate. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, the filesystem size in bytes otherwise. </dd></dl>
</div>
</div>
<a class="anchor" id="ga5d726bac328b49abc2e6fb022d97092a"></a><!-- doxytag: member="fat.c::fat_open" ref="ga5d726bac328b49abc2e6fb022d97092a" args="(struct partition_struct *partition)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct fat_fs_struct* <a class="el" href="group__fat.html#ga5d726bac328b49abc2e6fb022d97092a">fat_open</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structpartition__struct.html">partition_struct</a> *&#160;</td>
<td class="paramname"><em>partition</em></td><td>)</td>
<td><code> [read]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Opens a FAT filesystem. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">partition</td><td>Discriptor of partition on which the filesystem resides. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on error, a FAT filesystem descriptor on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__fat.html#ga057612824886e115b88bf5affcf76829" title="Closes a FAT filesystem.">fat_close</a> </dd></dl>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,394 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Partition table support</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#groups">Modules</a> &#124;
<a href="#files">Files</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Partition table support</div> </div>
</div><!--header-->
<div class="contents">
<p>Support for reading partition tables and access to partitions.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpartition__struct.html">partition_struct</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes a partition. <a href="structpartition__struct.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition__config.html">Configuration of partition table support</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Preprocessor defines to configure the partition support. </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="files"></a>
Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="partition_8c.html">partition.c</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Partition table implementation (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="partition_8h.html">partition.h</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Partition table header (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="partition__config_8h.html">partition_config.h</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Partition configuration (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaab5ffe2ef6119a6815c505e3103a2714"></a><!-- doxytag: member="partition::PARTITION_TYPE_FREE" ref="gaab5ffe2ef6119a6815c505e3103a2714" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gaab5ffe2ef6119a6815c505e3103a2714">PARTITION_TYPE_FREE</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition table entry is not used. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa92b6c552d2411e093204cd3ed4cffa3"></a><!-- doxytag: member="partition::PARTITION_TYPE_FAT12" ref="gaa92b6c552d2411e093204cd3ed4cffa3" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gaa92b6c552d2411e093204cd3ed4cffa3">PARTITION_TYPE_FAT12</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT12 filesystem. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf7296b4a29c1f7e5c39e28372648b2cd"></a><!-- doxytag: member="partition::PARTITION_TYPE_FAT16_32MB" ref="gaf7296b4a29c1f7e5c39e28372648b2cd" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gaf7296b4a29c1f7e5c39e28372648b2cd">PARTITION_TYPE_FAT16_32MB</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT16 filesystem with 32MB maximum. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaceaa1bf17d4e8961726834e53ed79732"></a><!-- doxytag: member="partition::PARTITION_TYPE_EXTENDED" ref="gaceaa1bf17d4e8961726834e53ed79732" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gaceaa1bf17d4e8961726834e53ed79732">PARTITION_TYPE_EXTENDED</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition is an extended partition with its own partition table. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gada7e1b4d950c7a3f42f559ab99f5fe43"></a><!-- doxytag: member="partition::PARTITION_TYPE_FAT16" ref="gada7e1b4d950c7a3f42f559ab99f5fe43" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gada7e1b4d950c7a3f42f559ab99f5fe43">PARTITION_TYPE_FAT16</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT16 filesystem. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f6a6c30cc239ae13ea287ff901c95f4"></a><!-- doxytag: member="partition::PARTITION_TYPE_FAT32" ref="ga2f6a6c30cc239ae13ea287ff901c95f4" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga2f6a6c30cc239ae13ea287ff901c95f4">PARTITION_TYPE_FAT32</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT32 filesystem. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa2e0c8e8b4ec10f7b342c0d554b5f6d8"></a><!-- doxytag: member="partition::PARTITION_TYPE_FAT32_LBA" ref="gaa2e0c8e8b4ec10f7b342c0d554b5f6d8" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gaa2e0c8e8b4ec10f7b342c0d554b5f6d8">PARTITION_TYPE_FAT32_LBA</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT32 filesystem with LBA. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52b69fda008ca19d75304a2385cc4900"></a><!-- doxytag: member="partition::PARTITION_TYPE_FAT16_LBA" ref="ga52b69fda008ca19d75304a2385cc4900" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga52b69fda008ca19d75304a2385cc4900">PARTITION_TYPE_FAT16_LBA</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT16 filesystem with LBA. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1c9a00e3b09b488ce7f3b2ef2904400b"></a><!-- doxytag: member="partition::PARTITION_TYPE_EXTENDED_LBA" ref="ga1c9a00e3b09b488ce7f3b2ef2904400b" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga1c9a00e3b09b488ce7f3b2ef2904400b">PARTITION_TYPE_EXTENDED_LBA</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition is an extended partition with LBA. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacdc50585fe8130f0a4faee13caade86f"></a><!-- doxytag: member="partition::PARTITION_TYPE_UNKNOWN" ref="gacdc50585fe8130f0a4faee13caade86f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gacdc50585fe8130f0a4faee13caade86f">PARTITION_TYPE_UNKNOWN</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition has an unknown type. <br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85">device_read_t</a> )(offset_t offset, uint8_t *buffer, uintptr_t length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer used to read from the partition. <a href="#ga52bf225ef74664c7e596f23d8d807c85"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga23a54af15a8c9711925e8b2e3433a27d">device_read_callback_t</a> )(uint8_t *buffer, offset_t offset, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer passed to a <code>device_read_interval_t</code>. <a href="#ga23a54af15a8c9711925e8b2e3433a27d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4">device_read_interval_t</a> )(offset_t offset, uint8_t *buffer, uintptr_t interval, uintptr_t length, <a class="el" href="group__partition.html#ga23a54af15a8c9711925e8b2e3433a27d">device_read_callback_t</a> callback, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer used to continuously read units of <code>interval</code> bytes and call a callback function. <a href="#gae89b7507ba9787aec1e8974c5f2b30a4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f">device_write_t</a> )(offset_t offset, const uint8_t *buffer, uintptr_t length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer used to write to the partition. <a href="#ga8d202a969ce237e5876b1f1f506df53f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uintptr_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga3199d1b591458c7c6664545fab7d32fe">device_write_callback_t</a> )(uint8_t *buffer, offset_t offset, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer passed to a <code>device_write_interval_t</code>. <a href="#ga3199d1b591458c7c6664545fab7d32fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800">device_write_interval_t</a> )(offset_t offset, uint8_t *buffer, uintptr_t length, <a class="el" href="group__partition.html#ga3199d1b591458c7c6664545fab7d32fe">device_write_callback_t</a> callback, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer used to continuously write a data stream obtained from a callback function. <a href="#ga032324dc0780bc62cd91a8856ffe0800"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structpartition__struct.html">partition_struct</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga3125023db4e9d50adb8489c71fa1be68">partition_open</a> (<a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85">device_read_t</a> device_read, <a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4">device_read_interval_t</a> device_read_interval, <a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f">device_write_t</a> device_write, <a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800">device_write_interval_t</a> device_write_interval, int8_t index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a partition. <a href="#ga3125023db4e9d50adb8489c71fa1be68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga128f4363de35c81a9ff8026d4db289d2">partition_close</a> (struct <a class="el" href="structpartition__struct.html">partition_struct</a> *partition)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a partition. <a href="#ga128f4363de35c81a9ff8026d4db289d2"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Support for reading partition tables and access to partitions. </p>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga23a54af15a8c9711925e8b2e3433a27d"></a><!-- doxytag: member="partition.h::device_read_callback_t" ref="ga23a54af15a8c9711925e8b2e3433a27d" args=")(uint8_t *buffer, offset_t offset, void *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint8_t(* <a class="el" href="group__partition.html#ga23a54af15a8c9711925e8b2e3433a27d">device_read_callback_t</a>)(uint8_t *buffer, offset_t offset, void *p)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer passed to a <code>device_read_interval_t</code>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>The buffer which contains the data just read. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>The offset from which the data in <code>buffer</code> was read. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>An opaque pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4" title="A function pointer used to continuously read units of interval bytes and call a callback function...">device_read_interval_t</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gae89b7507ba9787aec1e8974c5f2b30a4"></a><!-- doxytag: member="partition.h::device_read_interval_t" ref="gae89b7507ba9787aec1e8974c5f2b30a4" args=")(offset_t offset, uint8_t *buffer, uintptr_t interval, uintptr_t length, device_read_callback_t callback, void *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint8_t(* <a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4">device_read_interval_t</a>)(offset_t offset, uint8_t *buffer, uintptr_t interval, uintptr_t length, <a class="el" href="group__partition.html#ga23a54af15a8c9711925e8b2e3433a27d">device_read_callback_t</a> callback, void *p)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer used to continuously read units of <code>interval</code> bytes and call a callback function. </p>
<p>This function starts reading at the specified offset. Every <code>interval</code> bytes, it calls the callback function with the associated data buffer.</p>
<p>By returning zero, the callback may stop reading.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>Offset from which to start reading. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Pointer to a buffer which is at least interval bytes in size. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">interval</td><td>Number of bytes to read before calling the callback function. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>Number of bytes to read altogether. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>The function to call every interval bytes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>An opaque pointer directly passed to the callback function. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85" title="A function pointer used to read from the partition.">device_read_t</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga52bf225ef74664c7e596f23d8d807c85"></a><!-- doxytag: member="partition.h::device_read_t" ref="ga52bf225ef74664c7e596f23d8d807c85" args=")(offset_t offset, uint8_t *buffer, uintptr_t length)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint8_t(* <a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85">device_read_t</a>)(offset_t offset, uint8_t *buffer, uintptr_t length)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer used to read from the partition. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>The offset on the device where to start reading. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>The buffer into which to place the data. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>The count of bytes to read. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3199d1b591458c7c6664545fab7d32fe"></a><!-- doxytag: member="partition.h::device_write_callback_t" ref="ga3199d1b591458c7c6664545fab7d32fe" args=")(uint8_t *buffer, offset_t offset, void *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uintptr_t(* <a class="el" href="group__partition.html#ga3199d1b591458c7c6664545fab7d32fe">device_write_callback_t</a>)(uint8_t *buffer, offset_t offset, void *p)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer passed to a <code>device_write_interval_t</code>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>The buffer which receives the data to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>The offset to which the data in <code>buffer</code> will be written. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>An opaque pointer. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of bytes put into <code>buffer</code> </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800" title="A function pointer used to continuously write a data stream obtained from a callback function...">device_write_interval_t</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga032324dc0780bc62cd91a8856ffe0800"></a><!-- doxytag: member="partition.h::device_write_interval_t" ref="ga032324dc0780bc62cd91a8856ffe0800" args=")(offset_t offset, uint8_t *buffer, uintptr_t length, device_write_callback_t callback, void *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint8_t(* <a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800">device_write_interval_t</a>)(offset_t offset, uint8_t *buffer, uintptr_t length, <a class="el" href="group__partition.html#ga3199d1b591458c7c6664545fab7d32fe">device_write_callback_t</a> callback, void *p)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer used to continuously write a data stream obtained from a callback function. </p>
<p>This function starts writing at the specified offset. To obtain the next bytes to write, it calls the callback function. The callback fills the provided data buffer and returns the number of bytes it has put into the buffer.</p>
<p>By returning zero, the callback may stop writing.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>Offset where to start writing. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Pointer to a buffer which is used for the callback function. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>Number of bytes to write in total. May be zero for endless writes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>The function used to obtain the bytes to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>An opaque pointer directly passed to the callback function. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f" title="A function pointer used to write to the partition.">device_write_t</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga8d202a969ce237e5876b1f1f506df53f"></a><!-- doxytag: member="partition.h::device_write_t" ref="ga8d202a969ce237e5876b1f1f506df53f" args=")(offset_t offset, const uint8_t *buffer, uintptr_t length)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint8_t(* <a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f">device_write_t</a>)(offset_t offset, const uint8_t *buffer, uintptr_t length)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A function pointer used to write to the partition. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>The offset on the device where to start writing. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>The buffer which to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>The count of bytes to write. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga128f4363de35c81a9ff8026d4db289d2"></a><!-- doxytag: member="partition.c::partition_close" ref="ga128f4363de35c81a9ff8026d4db289d2" args="(struct partition_struct *partition)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__partition.html#ga128f4363de35c81a9ff8026d4db289d2">partition_close</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structpartition__struct.html">partition_struct</a> *&#160;</td>
<td class="paramname"><em>partition</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Closes a partition. </p>
<p>This function destroys a partition descriptor which was previously obtained from a call to <a class="el" href="group__partition.html#ga3125023db4e9d50adb8489c71fa1be68" title="Opens a partition.">partition_open()</a>. When this function returns, the given descriptor will be invalid.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">partition</td><td>The partition descriptor to destroy. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__partition.html#ga3125023db4e9d50adb8489c71fa1be68" title="Opens a partition.">partition_open</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga3125023db4e9d50adb8489c71fa1be68"></a><!-- doxytag: member="partition.c::partition_open" ref="ga3125023db4e9d50adb8489c71fa1be68" args="(device_read_t device_read, device_read_interval_t device_read_interval, device_write_t device_write, device_write_interval_t device_write_interval, int8_t index)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structpartition__struct.html">partition_struct</a> * <a class="el" href="group__partition.html#ga3125023db4e9d50adb8489c71fa1be68">partition_open</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85">device_read_t</a>&#160;</td>
<td class="paramname"><em>device_read</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4">device_read_interval_t</a>&#160;</td>
<td class="paramname"><em>device_read_interval</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f">device_write_t</a>&#160;</td>
<td class="paramname"><em>device_write</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800">device_write_interval_t</a>&#160;</td>
<td class="paramname"><em>device_write_interval</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int8_t&#160;</td>
<td class="paramname"><em>index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [read]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Opens a partition. </p>
<p>Opens a partition by its index number and returns a partition handle which describes the opened partition.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>This function does not support extended partitions.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">device_read</td><td>A function pointer which is used to read from the disk. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">device_read_interval</td><td>A function pointer which is used to read in constant intervals from the disk. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">device_write</td><td>A function pointer which is used to write to the disk. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">device_write_interval</td><td>A function pointer which is used to write a data stream to disk. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the partition which should be opened, range 0 to 3. A negative value is allowed as well. In this case, the partition opened is not checked for existance, begins at offset zero, has a length of zero and is of an unknown type. Use this in case you want to open the whole device as a single partition (e.g. for "super floppy" use). </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, a partition descriptor on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__partition.html#ga128f4363de35c81a9ff8026d4db289d2" title="Closes a partition.">partition_close</a> </dd></dl>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,77 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Configuration of partition table support</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> </div>
<div class="headertitle">
<div class="title">Configuration of partition table support</div> </div>
<div class="ingroups"><a class="el" href="group__partition.html">Partition table support</a></div></div><!--header-->
<div class="contents">
<p>Preprocessor defines to configure the partition support.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad3d3ffd91206adf249d3318930f024af"></a><!-- doxytag: member="partition_config::PARTITION_COUNT" ref="gad3d3ffd91206adf249d3318930f024af" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition__config.html#gad3d3ffd91206adf249d3318930f024af">PARTITION_COUNT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of partition handles. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Preprocessor defines to configure the partition support. </p>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,465 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: MMC/SD/SDHC card raw access</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#groups">Modules</a> &#124;
<a href="#files">Files</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">MMC/SD/SDHC card raw access</div> </div>
</div><!--header-->
<div class="contents">
<p>This module implements read and write access to MMC, SD and SDHC cards.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html">sd_raw_info</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This struct is used by <a class="el" href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79" title="Reads informational data from the card.">sd_raw_get_info()</a> to return manufacturing and status information of the card. <a href="structsd__raw__info.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw__config.html">MMC/SD configuration</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Preprocessor defines to configure the MMC/SD support. </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="files"></a>
Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sd__raw_8c.html">sd_raw.c</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>MMC/SD/SDHC raw access implementation (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sd__raw_8h.html">sd_raw.h</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>MMC/SD/SDHC raw access header (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sd__raw__config_8h.html">sd_raw_config.h</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>MMC/SD support configuration (license: GPLv2 or LGPLv2.1) </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2507a78d61385c9dbc1d06b8a03ef58a"></a><!-- doxytag: member="sd_raw::SD_RAW_FORMAT_HARDDISK" ref="ga2507a78d61385c9dbc1d06b8a03ef58a" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga2507a78d61385c9dbc1d06b8a03ef58a">SD_RAW_FORMAT_HARDDISK</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The card's layout is harddisk-like, which means it contains a master boot record with a partition table. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4caede5500f4d1035ceb9951a831c224"></a><!-- doxytag: member="sd_raw::SD_RAW_FORMAT_SUPERFLOPPY" ref="ga4caede5500f4d1035ceb9951a831c224" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga4caede5500f4d1035ceb9951a831c224">SD_RAW_FORMAT_SUPERFLOPPY</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The card contains a single filesystem and no partition table. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad070d05f762410f57870549a0fcd5f43"></a><!-- doxytag: member="sd_raw::SD_RAW_FORMAT_UNIVERSAL" ref="gad070d05f762410f57870549a0fcd5f43" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#gad070d05f762410f57870549a0fcd5f43">SD_RAW_FORMAT_UNIVERSAL</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The card's layout follows the Universal File Format. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7e87231437f32335a25930ec1b85a9c9"></a><!-- doxytag: member="sd_raw::SD_RAW_FORMAT_UNKNOWN" ref="ga7e87231437f32335a25930ec1b85a9c9" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga7e87231437f32335a25930ec1b85a9c9">SD_RAW_FORMAT_UNKNOWN</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The card's layout is unknown. <br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga82e8599b2679451e491484fb0b19bfd5">sd_raw_init</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes memory card communication. <a href="#ga82e8599b2679451e491484fb0b19bfd5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga5e227f25ad4a18466e7cdd9ecdfce8ab">sd_raw_available</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks wether a memory card is located in the slot. <a href="#ga5e227f25ad4a18466e7cdd9ecdfce8ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga55f311428473cd5b85cf8f24ffba121b">sd_raw_locked</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks wether the memory card is locked for write access. <a href="#ga55f311428473cd5b85cf8f24ffba121b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga3da1870e406622511379a66370cdc774">sd_raw_read</a> (offset_t offset, uint8_t *buffer, uintptr_t length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads raw data from the card. <a href="#ga3da1870e406622511379a66370cdc774"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#gaf7eb53b23a8a91aaae785379da1527c9">sd_raw_read_interval</a> (offset_t offset, uint8_t *buffer, uintptr_t interval, uintptr_t length, sd_raw_read_interval_handler_t callback, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Continuously reads units of <code>interval</code> bytes and calls a callback function. <a href="#gaf7eb53b23a8a91aaae785379da1527c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577">sd_raw_write</a> (offset_t offset, const uint8_t *buffer, uintptr_t length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes raw data to the card. <a href="#ga0e46673759c1aa9ba492c8d123a3c577"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga7c60c1314055991e0812b659fe4e6c68">sd_raw_write_interval</a> (offset_t offset, uint8_t *buffer, uintptr_t length, sd_raw_write_interval_handler_t callback, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a continuous data stream obtained from a callback function. <a href="#ga7c60c1314055991e0812b659fe4e6c68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#gad4d9ff40a7ea50c65cfa47927b35b735">sd_raw_sync</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the write buffer's content to the card. <a href="#gad4d9ff40a7ea50c65cfa47927b35b735"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79">sd_raw_get_info</a> (struct <a class="el" href="structsd__raw__info.html">sd_raw_info</a> *info)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads informational data from the card. <a href="#ga97c54e82834f87bcdd38e79822fe5a79"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>This module implements read and write access to MMC, SD and SDHC cards. </p>
<p>It serves as a low-level driver for the higher level modules such as partition and file system access. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga5e227f25ad4a18466e7cdd9ecdfce8ab"></a><!-- doxytag: member="sd_raw.c::sd_raw_available" ref="ga5e227f25ad4a18466e7cdd9ecdfce8ab" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__sd__raw.html#ga5e227f25ad4a18466e7cdd9ecdfce8ab">sd_raw_available</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Checks wether a memory card is located in the slot. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 if the card is available, 0 if it is not. </dd></dl>
</div>
</div>
<a class="anchor" id="ga97c54e82834f87bcdd38e79822fe5a79"></a><!-- doxytag: member="sd_raw.c::sd_raw_get_info" ref="ga97c54e82834f87bcdd38e79822fe5a79" args="(struct sd_raw_info *info)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79">sd_raw_get_info</a> </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structsd__raw__info.html">sd_raw_info</a> *&#160;</td>
<td class="paramname"><em>info</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads informational data from the card. </p>
<p>This function reads and returns the card's registers containing manufacturing and status information.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>: The information retrieved by this function is not required in any way to operate on the card, but it might be nice to display some of the data to the user.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">info</td><td>A pointer to the structure into which to save the information. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
</div>
</div>
<a class="anchor" id="ga82e8599b2679451e491484fb0b19bfd5"></a><!-- doxytag: member="sd_raw.c::sd_raw_init" ref="ga82e8599b2679451e491484fb0b19bfd5" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__sd__raw.html#ga82e8599b2679451e491484fb0b19bfd5">sd_raw_init</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initializes memory card communication. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
</div>
</div>
<a class="anchor" id="ga55f311428473cd5b85cf8f24ffba121b"></a><!-- doxytag: member="sd_raw.c::sd_raw_locked" ref="ga55f311428473cd5b85cf8f24ffba121b" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__sd__raw.html#ga55f311428473cd5b85cf8f24ffba121b">sd_raw_locked</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Checks wether the memory card is locked for write access. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 if the card is locked, 0 if it is not. </dd></dl>
</div>
</div>
<a class="anchor" id="ga3da1870e406622511379a66370cdc774"></a><!-- doxytag: member="sd_raw.c::sd_raw_read" ref="ga3da1870e406622511379a66370cdc774" args="(offset_t offset, uint8_t *buffer, uintptr_t length)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__sd__raw.html#ga3da1870e406622511379a66370cdc774">sd_raw_read</a> </td>
<td>(</td>
<td class="paramtype">offset_t&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uintptr_t&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads raw data from the card. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>The offset from which to read. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>The buffer into which to write the data. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>The number of bytes to read. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__sd__raw.html#gaf7eb53b23a8a91aaae785379da1527c9" title="Continuously reads units of interval bytes and calls a callback function.">sd_raw_read_interval</a>, <a class="el" href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577" title="Writes raw data to the card.">sd_raw_write</a>, <a class="el" href="group__sd__raw.html#ga7c60c1314055991e0812b659fe4e6c68" title="Writes a continuous data stream obtained from a callback function.">sd_raw_write_interval</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gaf7eb53b23a8a91aaae785379da1527c9"></a><!-- doxytag: member="sd_raw.c::sd_raw_read_interval" ref="gaf7eb53b23a8a91aaae785379da1527c9" args="(offset_t offset, uint8_t *buffer, uintptr_t interval, uintptr_t length, sd_raw_read_interval_handler_t callback, void *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__sd__raw.html#gaf7eb53b23a8a91aaae785379da1527c9">sd_raw_read_interval</a> </td>
<td>(</td>
<td class="paramtype">offset_t&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uintptr_t&#160;</td>
<td class="paramname"><em>interval</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uintptr_t&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">sd_raw_read_interval_handler_t&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Continuously reads units of <code>interval</code> bytes and calls a callback function. </p>
<p>This function starts reading at the specified offset. Every <code>interval</code> bytes, it calls the callback function with the associated data buffer.</p>
<p>By returning zero, the callback may stop reading.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>Within the callback function, you can not start another read or write operation. </dd>
<dd>
This function only works if the following conditions are met:<ul>
<li>(offset - (offset % 512)) % interval == 0</li>
<li>length % interval == 0</li>
</ul>
</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>Offset from which to start reading. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Pointer to a buffer which is at least interval bytes in size. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">interval</td><td>Number of bytes to read before calling the callback function. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>Number of bytes to read altogether. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>The function to call every interval bytes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>An opaque pointer directly passed to the callback function. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__sd__raw.html#ga7c60c1314055991e0812b659fe4e6c68" title="Writes a continuous data stream obtained from a callback function.">sd_raw_write_interval</a>, <a class="el" href="group__sd__raw.html#ga3da1870e406622511379a66370cdc774" title="Reads raw data from the card.">sd_raw_read</a>, <a class="el" href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577" title="Writes raw data to the card.">sd_raw_write</a> </dd></dl>
</div>
</div>
<a class="anchor" id="gad4d9ff40a7ea50c65cfa47927b35b735"></a><!-- doxytag: member="sd_raw.c::sd_raw_sync" ref="gad4d9ff40a7ea50c65cfa47927b35b735" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__sd__raw.html#gad4d9ff40a7ea50c65cfa47927b35b735">sd_raw_sync</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Writes the write buffer's content to the card. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>When write buffering is enabled, you should call this function before disconnecting the card to ensure all remaining data has been written.</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577" title="Writes raw data to the card.">sd_raw_write</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga0e46673759c1aa9ba492c8d123a3c577"></a><!-- doxytag: member="sd_raw.c::sd_raw_write" ref="ga0e46673759c1aa9ba492c8d123a3c577" args="(offset_t offset, const uint8_t *buffer, uintptr_t length)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577">sd_raw_write</a> </td>
<td>(</td>
<td class="paramtype">offset_t&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uintptr_t&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Writes raw data to the card. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>If write buffering is enabled, you might have to call <a class="el" href="group__sd__raw.html#gad4d9ff40a7ea50c65cfa47927b35b735" title="Writes the write buffer&#39;s content to the card.">sd_raw_sync()</a> before disconnecting the card to ensure all remaining data has been written.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>The offset where to start writing. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>The buffer containing the data to be written. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>The number of bytes to write. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__sd__raw.html#ga7c60c1314055991e0812b659fe4e6c68" title="Writes a continuous data stream obtained from a callback function.">sd_raw_write_interval</a>, <a class="el" href="group__sd__raw.html#ga3da1870e406622511379a66370cdc774" title="Reads raw data from the card.">sd_raw_read</a>, <a class="el" href="group__sd__raw.html#gaf7eb53b23a8a91aaae785379da1527c9" title="Continuously reads units of interval bytes and calls a callback function.">sd_raw_read_interval</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ga7c60c1314055991e0812b659fe4e6c68"></a><!-- doxytag: member="sd_raw.c::sd_raw_write_interval" ref="ga7c60c1314055991e0812b659fe4e6c68" args="(offset_t offset, uint8_t *buffer, uintptr_t length, sd_raw_write_interval_handler_t callback, void *p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="group__sd__raw.html#ga7c60c1314055991e0812b659fe4e6c68">sd_raw_write_interval</a> </td>
<td>(</td>
<td class="paramtype">offset_t&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uintptr_t&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">sd_raw_write_interval_handler_t&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Writes a continuous data stream obtained from a callback function. </p>
<p>This function starts writing at the specified offset. To obtain the next bytes to write, it calls the callback function. The callback fills the provided data buffer and returns the number of bytes it has put into the buffer.</p>
<p>By returning zero, the callback may stop writing.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>Offset where to start writing. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Pointer to a buffer which is used for the callback function. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>Number of bytes to write in total. May be zero for endless writes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>The function used to obtain the bytes to write. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>An opaque pointer directly passed to the callback function. </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on failure, 1 on success </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__sd__raw.html#gaf7eb53b23a8a91aaae785379da1527c9" title="Continuously reads units of interval bytes and calls a callback function.">sd_raw_read_interval</a>, <a class="el" href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577" title="Writes raw data to the card.">sd_raw_write</a>, <a class="el" href="group__sd__raw.html#ga3da1870e406622511379a66370cdc774" title="Reads raw data from the card.">sd_raw_read</a> </dd></dl>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,168 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: MMC/SD configuration</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> </div>
<div class="headertitle">
<div class="title">MMC/SD configuration</div> </div>
<div class="ingroups"><a class="el" href="group__sd__raw.html">MMC/SD/SDHC card raw access</a></div></div><!--header-->
<div class="contents">
<p>Preprocessor defines to configure the MMC/SD support.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw__config.html#ga5f2253a3c408671f91f9aebefeef7472">SD_RAW_WRITE_SUPPORT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls MMC/SD write support. <a href="#ga5f2253a3c408671f91f9aebefeef7472"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw__config.html#gaa749d88c077a812f5c518e3172c96f9e">SD_RAW_WRITE_BUFFERING</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls MMC/SD write buffering. <a href="#gaa749d88c077a812f5c518e3172c96f9e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw__config.html#ga4b98be138e87b8ab807d3f266a0c5bb9">SD_RAW_SAVE_RAM</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls MMC/SD access buffering. <a href="#ga4b98be138e87b8ab807d3f266a0c5bb9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw__config.html#ga4b98be138e87b8ab807d3f266a0c5bb9">SD_RAW_SAVE_RAM</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls MMC/SD access buffering. <a href="#ga4b98be138e87b8ab807d3f266a0c5bb9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw__config.html#ga03cccc1544f7cd6c23d66967a1bbc0f7">SD_RAW_SDHC</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls support for SDHC cards. <a href="#ga03cccc1544f7cd6c23d66967a1bbc0f7"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Preprocessor defines to configure the MMC/SD support. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ga4b98be138e87b8ab807d3f266a0c5bb9"></a><!-- doxytag: member="sd_raw_config.h::SD_RAW_SAVE_RAM" ref="ga4b98be138e87b8ab807d3f266a0c5bb9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__sd__raw__config.html#ga4b98be138e87b8ab807d3f266a0c5bb9">SD_RAW_SAVE_RAM</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Controls MMC/SD access buffering. </p>
<p>Set to 1 to save static RAM, but be aware that you will lose performance.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>When SD_RAW_WRITE_SUPPORT is 1, SD_RAW_SAVE_RAM will be reset to 0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4b98be138e87b8ab807d3f266a0c5bb9"></a><!-- doxytag: member="sd_raw_config.h::SD_RAW_SAVE_RAM" ref="ga4b98be138e87b8ab807d3f266a0c5bb9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__sd__raw__config.html#ga4b98be138e87b8ab807d3f266a0c5bb9">SD_RAW_SAVE_RAM</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Controls MMC/SD access buffering. </p>
<p>Set to 1 to save static RAM, but be aware that you will lose performance.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>When SD_RAW_WRITE_SUPPORT is 1, SD_RAW_SAVE_RAM will be reset to 0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga03cccc1544f7cd6c23d66967a1bbc0f7"></a><!-- doxytag: member="sd_raw_config.h::SD_RAW_SDHC" ref="ga03cccc1544f7cd6c23d66967a1bbc0f7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__sd__raw__config.html#ga03cccc1544f7cd6c23d66967a1bbc0f7">SD_RAW_SDHC</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Controls support for SDHC cards. </p>
<p>Set to 1 to support so-called SDHC memory cards, i.e. SD cards with more than 2 gigabytes of memory. </p>
</div>
</div>
<a class="anchor" id="gaa749d88c077a812f5c518e3172c96f9e"></a><!-- doxytag: member="sd_raw_config.h::SD_RAW_WRITE_BUFFERING" ref="gaa749d88c077a812f5c518e3172c96f9e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__sd__raw__config.html#gaa749d88c077a812f5c518e3172c96f9e">SD_RAW_WRITE_BUFFERING</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Controls MMC/SD write buffering. </p>
<p>Set to 1 to buffer write accesses, set to 0 to disable it.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>This option has no effect when SD_RAW_WRITE_SUPPORT is 0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga5f2253a3c408671f91f9aebefeef7472"></a><!-- doxytag: member="sd_raw_config.h::SD_RAW_WRITE_SUPPORT" ref="ga5f2253a3c408671f91f9aebefeef7472" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="group__sd__raw__config.html#ga5f2253a3c408671f91f9aebefeef7472">SD_RAW_WRITE_SUPPORT</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Controls MMC/SD write support. </p>
<p>Set to 1 to enable MMC/SD write support, set to 0 to disable it. </p>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,210 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: MMC/SD/SDHC card library</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">MMC/SD/SDHC card library </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>This project provides a general purpose library which implements read and write support for MMC, SD and SDHC memory cards. It includes</p>
<ul>
<li>low-level <a class="el" href="group__sd__raw.html">MMC, SD and SDHC read/write routines </a></li>
<li><a class="el" href="group__partition.html">partition table support </a></li>
<li>a simple <a class="el" href="group__fat.html">FAT16/FAT32 read/write implementation </a></li>
</ul>
<h2><a class="anchor" id="circuit"></a>
The circuit</h2>
<p>The circuit which was mainly used during development consists of an Atmel AVR microcontroller with some passive components. It is quite simple and provides an easy test environment. The circuit which can be downloaded on the <a href="http://www.roland-riegel.de/sd-reader/">project homepage</a> has been improved with regard to operation stability.</p>
<p>I used different microcontrollers during development, the ATmega8 with 8kBytes of flash, and its pin-compatible alternative, the ATmega168 with 16kBytes flash. The first one is the one I started with, but when I implemented FAT16 write support, I ran out of flash space and switched to the ATmega168. For FAT32, an ATmega328 is required.</p>
<p>The circuit board is a self-made and self-soldered board consisting of a single copper layer and standard DIL components, except of the MMC/SD card connector.</p>
<p>The connector is soldered to the bottom side of the board. It has a simple eject button which, when a card is inserted, needs some space beyond the connector itself. As an additional feature the connector has two electrical switches to detect wether a card is inserted and wether this card is write-protected.</p>
<h2><a class="anchor" id="pictures"></a>
Pictures</h2>
<div class="image">
<img src="pic01.jpg" alt="pic01.jpg"/>
<div class="caption">
The circuit board used to implement and test this application.</div></div>
<div class="image">
<img src="pic02.jpg" alt="pic02.jpg"/>
<div class="caption">
The MMC/SD card connector on the soldering side of the circuit board.</div></div>
<h2><a class="anchor" id="software"></a>
The software</h2>
<p>The software is written in C (ISO C99). It might not be the smallest or the fastest one, but I think it is quite flexible. See the project's <a href="http://www.roland-riegel.de/sd-reader/benchmarks/">benchmark page</a> to get an idea of the possible data rates.</p>
<p>I implemented an example application providing a simple command prompt which is accessible via the UART at 9600 Baud. With commands similiar to the Unix shell you can browse different directories, read and write files, create new ones and delete them again. Not all commands are available in all software configurations.</p>
<ul>
<li><code>cat &lt;file&gt;</code><br/>
Writes a hexdump of &lt;file&gt; to the terminal.</li>
<li><code>cd &lt;directory&gt;</code><br/>
Changes current working directory to &lt;directory&gt;.</li>
<li><code>disk</code><br/>
Shows card manufacturer, status, filesystem capacity and free storage space.</li>
<li><code>init</code><br/>
Reinitializes and reopens the memory card.</li>
<li><code>ls</code><br/>
Shows the content of the current directory.</li>
<li><code>mkdir &lt;directory&gt;</code><br/>
Creates a directory called &lt;directory&gt;.</li>
<li><code>mv &lt;file&gt; &lt;file_new&gt;</code><br/>
Renames &lt;file&gt; to &lt;file_new&gt;.</li>
<li><code>rm &lt;file&gt;</code><br/>
Deletes &lt;file&gt;.</li>
<li><code>sync</code><br/>
Ensures all buffered data is written to the card.</li>
<li><code>touch &lt;file&gt;</code><br/>
Creates &lt;file&gt;.</li>
<li><code>write &lt;file&gt; &lt;offset&gt;</code><br/>
Writes text to &lt;file&gt;, starting from &lt;offset&gt;. The text is read from the UART, line by line. Finish with an empty line.</li>
</ul>
<p>
The following table shows some typical code sizes in bytes, using the 20090330 release with a
buffered read-write MMC/SD configuration, FAT16 and static memory allocation:
</p>
<table border="1" cellpadding="2">
<tr>
<th>layer</th>
<th>code size</th>
<th>static RAM usage</th>
</tr>
<tr>
<td>MMC/SD</td>
<td align="right">2410</td>
<td align="right">518</td>
</tr>
<tr>
<td>Partition</td>
<td align="right">456</td>
<td align="right">17</td>
</tr>
<tr>
<td>FAT16</td>
<td align="right">7928</td>
<td align="right">188</td>
</tr>
</table>
<p>
The static RAM is mostly used for buffering memory card access, which
improves performance and reduces implementation complexity.
</p>
<p>
Please note that the numbers above do not include the C library functions
used, e.g. some string functions. These will raise the numbers somewhat
if they are not already used in other program parts.
</p>
<p>
When opening a partition, filesystem, file or directory, a little amount
of RAM is used, as listed in the following table. Depending on the library
configuration, the memory is either allocated statically or dynamically.
</p>
<table border="1" cellpadding="2">
<tr>
<th>descriptor</th>
<th>dynamic/static RAM</th>
</tr>
<tr>
<td>partition</td>
<td align="right">17</td>
</tr>
<tr>
<td>filesystem</td>
<td align="right">26</td>
</tr>
<tr>
<td>file</td>
<td align="right">53</td>
</tr>
<tr>
<td>directory</td>
<td align="right">49</td>
</tr>
</table>
<h2><a class="anchor" id="adaptation"></a>
Adapting the software to your needs</h2>
<p>The only hardware dependent part is the communication layer talking to the memory card. The other parts like partition table and FAT support are completely independent, you could use them even for managing Compact Flash cards or standard ATAPI hard disks.</p>
<p>By changing the MCU* variables in the Makefile, you can use other Atmel microcontrollers or different clock speeds. You might also want to change the configuration defines in the files <a class="el" href="fat__config_8h.html" title="FAT configuration (license: GPLv2 or LGPLv2.1)">fat_config.h</a>, <a class="el" href="partition__config_8h.html" title="Partition configuration (license: GPLv2 or LGPLv2.1)">partition_config.h</a>, <a class="el" href="sd__raw__config_8h.html" title="MMC/SD support configuration (license: GPLv2 or LGPLv2.1)">sd_raw_config.h</a> and <a class="el" href="sd-reader__config_8h.html" title="Common sd-reader configuration used by all modules (license: GPLv2 or LGPLv2.1)">sd-reader_config.h</a>. For example, you could disable write support completely if you only need read support.</p>
<p>For further information, visit the project's <a href="http://www.roland-riegel.de/sd-reader/faq/">FAQ page</a>.</p>
<h2><a class="anchor" id="bugs"></a>
Bugs or comments?</h2>
<p>If you have comments or found a bug in the software - there might be some of them - you may contact me per mail at <a href="mailto:feedback@roland-riegel.de">feedback@roland-riegel.de</a>.</p>
<h2><a class="anchor" id="acknowledgements"></a>
Acknowledgements</h2>
<p>Thanks go to Ulrich Radig, who explained on his homepage how to interface MMC cards to the Atmel microcontroller (<a href="http://www.ulrichradig.de/">http://www.ulrichradig.de/</a>). I adapted his work for my circuit.</p>
<h2><a class="anchor" id="copyright"></a>
Copyright 2006-2012 by Roland Riegel</h2>
<p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation (<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>). At your option, you can alternatively redistribute and/or modify the following files under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation (<a href="http://www.gnu.org/copyleft/lgpl.html">http://www.gnu.org/copyleft/lgpl.html</a>):</p>
<ul>
<li><a class="el" href="byteordering_8c.html" title="Byte-order handling implementation (license: GPLv2 or LGPLv2.1)">byteordering.c</a></li>
<li><a class="el" href="byteordering_8h.html" title="Byte-order handling header (license: GPLv2 or LGPLv2.1)">byteordering.h</a></li>
<li><a class="el" href="fat_8c.html" title="FAT implementation (license: GPLv2 or LGPLv2.1)">fat.c</a></li>
<li><a class="el" href="fat_8h.html" title="FAT header (license: GPLv2 or LGPLv2.1)">fat.h</a></li>
<li><a class="el" href="fat__config_8h.html" title="FAT configuration (license: GPLv2 or LGPLv2.1)">fat_config.h</a></li>
<li><a class="el" href="partition_8c.html" title="Partition table implementation (license: GPLv2 or LGPLv2.1)">partition.c</a></li>
<li><a class="el" href="partition_8h.html" title="Partition table header (license: GPLv2 or LGPLv2.1)">partition.h</a></li>
<li><a class="el" href="partition__config_8h.html" title="Partition configuration (license: GPLv2 or LGPLv2.1)">partition_config.h</a></li>
<li><a class="el" href="sd__raw_8c.html" title="MMC/SD/SDHC raw access implementation (license: GPLv2 or LGPLv2.1)">sd_raw.c</a></li>
<li><a class="el" href="sd__raw_8h.html" title="MMC/SD/SDHC raw access header (license: GPLv2 or LGPLv2.1)">sd_raw.h</a></li>
<li><a class="el" href="sd__raw__config_8h.html" title="MMC/SD support configuration (license: GPLv2 or LGPLv2.1)">sd_raw_config.h</a></li>
<li><a class="el" href="sd-reader__config_8h.html" title="Common sd-reader configuration used by all modules (license: GPLv2 or LGPLv2.1)">sd-reader_config.h</a> </li>
</ul>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,82 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: Modules</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Modules</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all modules:</div><ul>
<li><a class="el" href="group__byteordering.html">Byteordering</a></li>
<li><a class="el" href="group__fat.html">FAT support</a><ul>
<li><a class="el" href="group__fat__config.html">FAT configuration</a></li>
<li><a class="el" href="group__fat__fs.html">FAT access</a></li>
<li><a class="el" href="group__fat__file.html">FAT file functions</a></li>
<li><a class="el" href="group__fat__dir.html">FAT directory functions</a></li>
</ul>
</li>
<li><a class="el" href="group__partition.html">Partition table support</a><ul>
<li><a class="el" href="group__partition__config.html">Configuration of partition table support</a></li>
</ul>
</li>
<li><a class="el" href="group__config.html">Sd-reader configuration</a></li>
<li><a class="el" href="group__sd__raw.html">MMC/SD/SDHC card raw access</a><ul>
<li><a class="el" href="group__sd__raw__config.html">MMC/SD configuration</a></li>
</ul>
</li>
</ul>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 B

View File

@ -1,85 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: partition.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">partition.c File Reference<div class="ingroups"><a class="el" href="group__partition.html">Partition table support</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Partition table implementation (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structpartition__struct.html">partition_struct</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga3125023db4e9d50adb8489c71fa1be68">partition_open</a> (<a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85">device_read_t</a> device_read, <a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4">device_read_interval_t</a> device_read_interval, <a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f">device_write_t</a> device_write, <a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800">device_write_interval_t</a> device_write_interval, int8_t index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a partition. <a href="group__partition.html#ga3125023db4e9d50adb8489c71fa1be68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga128f4363de35c81a9ff8026d4db289d2">partition_close</a> (struct <a class="el" href="structpartition__struct.html">partition_struct</a> *partition)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a partition. <a href="group__partition.html#ga128f4363de35c81a9ff8026d4db289d2"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Partition table implementation (license: GPLv2 or LGPLv2.1) </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Roland Riegel </dd></dl>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,138 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: partition.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">partition.h File Reference<div class="ingroups"><a class="el" href="group__partition.html">Partition table support</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Partition table header (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpartition__struct.html">partition_struct</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes a partition. <a href="structpartition__struct.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaab5ffe2ef6119a6815c505e3103a2714"></a><!-- doxytag: member="partition.h::PARTITION_TYPE_FREE" ref="gaab5ffe2ef6119a6815c505e3103a2714" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gaab5ffe2ef6119a6815c505e3103a2714">PARTITION_TYPE_FREE</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition table entry is not used. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa92b6c552d2411e093204cd3ed4cffa3"></a><!-- doxytag: member="partition.h::PARTITION_TYPE_FAT12" ref="gaa92b6c552d2411e093204cd3ed4cffa3" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gaa92b6c552d2411e093204cd3ed4cffa3">PARTITION_TYPE_FAT12</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT12 filesystem. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf7296b4a29c1f7e5c39e28372648b2cd"></a><!-- doxytag: member="partition.h::PARTITION_TYPE_FAT16_32MB" ref="gaf7296b4a29c1f7e5c39e28372648b2cd" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gaf7296b4a29c1f7e5c39e28372648b2cd">PARTITION_TYPE_FAT16_32MB</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT16 filesystem with 32MB maximum. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaceaa1bf17d4e8961726834e53ed79732"></a><!-- doxytag: member="partition.h::PARTITION_TYPE_EXTENDED" ref="gaceaa1bf17d4e8961726834e53ed79732" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gaceaa1bf17d4e8961726834e53ed79732">PARTITION_TYPE_EXTENDED</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition is an extended partition with its own partition table. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gada7e1b4d950c7a3f42f559ab99f5fe43"></a><!-- doxytag: member="partition.h::PARTITION_TYPE_FAT16" ref="gada7e1b4d950c7a3f42f559ab99f5fe43" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gada7e1b4d950c7a3f42f559ab99f5fe43">PARTITION_TYPE_FAT16</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT16 filesystem. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f6a6c30cc239ae13ea287ff901c95f4"></a><!-- doxytag: member="partition.h::PARTITION_TYPE_FAT32" ref="ga2f6a6c30cc239ae13ea287ff901c95f4" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga2f6a6c30cc239ae13ea287ff901c95f4">PARTITION_TYPE_FAT32</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT32 filesystem. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa2e0c8e8b4ec10f7b342c0d554b5f6d8"></a><!-- doxytag: member="partition.h::PARTITION_TYPE_FAT32_LBA" ref="gaa2e0c8e8b4ec10f7b342c0d554b5f6d8" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gaa2e0c8e8b4ec10f7b342c0d554b5f6d8">PARTITION_TYPE_FAT32_LBA</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT32 filesystem with LBA. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga52b69fda008ca19d75304a2385cc4900"></a><!-- doxytag: member="partition.h::PARTITION_TYPE_FAT16_LBA" ref="ga52b69fda008ca19d75304a2385cc4900" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga52b69fda008ca19d75304a2385cc4900">PARTITION_TYPE_FAT16_LBA</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition contains a FAT16 filesystem with LBA. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1c9a00e3b09b488ce7f3b2ef2904400b"></a><!-- doxytag: member="partition.h::PARTITION_TYPE_EXTENDED_LBA" ref="ga1c9a00e3b09b488ce7f3b2ef2904400b" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga1c9a00e3b09b488ce7f3b2ef2904400b">PARTITION_TYPE_EXTENDED_LBA</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition is an extended partition with LBA. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacdc50585fe8130f0a4faee13caade86f"></a><!-- doxytag: member="partition.h::PARTITION_TYPE_UNKNOWN" ref="gacdc50585fe8130f0a4faee13caade86f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gacdc50585fe8130f0a4faee13caade86f">PARTITION_TYPE_UNKNOWN</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The partition has an unknown type. <br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85">device_read_t</a> )(offset_t offset, uint8_t *buffer, uintptr_t length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer used to read from the partition. <a href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga23a54af15a8c9711925e8b2e3433a27d">device_read_callback_t</a> )(uint8_t *buffer, offset_t offset, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer passed to a <code>device_read_interval_t</code>. <a href="group__partition.html#ga23a54af15a8c9711925e8b2e3433a27d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4">device_read_interval_t</a> )(offset_t offset, uint8_t *buffer, uintptr_t interval, uintptr_t length, <a class="el" href="group__partition.html#ga23a54af15a8c9711925e8b2e3433a27d">device_read_callback_t</a> callback, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer used to continuously read units of <code>interval</code> bytes and call a callback function. <a href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f">device_write_t</a> )(offset_t offset, const uint8_t *buffer, uintptr_t length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer used to write to the partition. <a href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uintptr_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga3199d1b591458c7c6664545fab7d32fe">device_write_callback_t</a> )(uint8_t *buffer, offset_t offset, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer passed to a <code>device_write_interval_t</code>. <a href="group__partition.html#ga3199d1b591458c7c6664545fab7d32fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800">device_write_interval_t</a> )(offset_t offset, uint8_t *buffer, uintptr_t length, <a class="el" href="group__partition.html#ga3199d1b591458c7c6664545fab7d32fe">device_write_callback_t</a> callback, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A function pointer used to continuously write a data stream obtained from a callback function. <a href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structpartition__struct.html">partition_struct</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga3125023db4e9d50adb8489c71fa1be68">partition_open</a> (<a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85">device_read_t</a> device_read, <a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4">device_read_interval_t</a> device_read_interval, <a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f">device_write_t</a> device_write, <a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800">device_write_interval_t</a> device_write_interval, int8_t index)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens a partition. <a href="group__partition.html#ga3125023db4e9d50adb8489c71fa1be68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition.html#ga128f4363de35c81a9ff8026d4db289d2">partition_close</a> (struct <a class="el" href="structpartition__struct.html">partition_struct</a> *partition)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a partition. <a href="group__partition.html#ga128f4363de35c81a9ff8026d4db289d2"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Partition table header (license: GPLv2 or LGPLv2.1) </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Roland Riegel </dd></dl>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,83 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: partition_config.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> </div>
<div class="headertitle">
<div class="title">partition_config.h File Reference<div class="ingroups"><a class="el" href="group__partition.html">Partition table support</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Partition configuration (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad3d3ffd91206adf249d3318930f024af"></a><!-- doxytag: member="partition_config.h::PARTITION_COUNT" ref="gad3d3ffd91206adf249d3318930f024af" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__partition__config.html#gad3d3ffd91206adf249d3318930f024af">PARTITION_COUNT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of partition handles. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Partition configuration (license: GPLv2 or LGPLv2.1) </p>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

View File

@ -1,83 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: sd-reader_config.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> </div>
<div class="headertitle">
<div class="title">sd-reader_config.h File Reference<div class="ingroups"><a class="el" href="group__config.html">Sd-reader configuration</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Common sd-reader configuration used by all modules (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__config.html#ga59a630bfc97e8a00e2ad0a0ad4b2f8a7">USE_DYNAMIC_MEMORY</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls allocation of memory. <a href="group__config.html#ga59a630bfc97e8a00e2ad0a0ad4b2f8a7"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Common sd-reader configuration used by all modules (license: GPLv2 or LGPLv2.1) </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This file contains only configuration items relevant to all sd-reader implementation files. For module specific configuration options, please see the files <a class="el" href="fat__config_8h.html" title="FAT configuration (license: GPLv2 or LGPLv2.1)">fat_config.h</a>, <a class="el" href="partition__config_8h.html" title="Partition configuration (license: GPLv2 or LGPLv2.1)">partition_config.h</a> and <a class="el" href="sd__raw__config_8h.html" title="MMC/SD support configuration (license: GPLv2 or LGPLv2.1)">sd_raw_config.h</a>. </dd></dl>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,99 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: sd_raw.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">sd_raw.c File Reference<div class="ingroups"><a class="el" href="group__sd__raw.html">MMC/SD/SDHC card raw access</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>MMC/SD/SDHC raw access implementation (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga82e8599b2679451e491484fb0b19bfd5">sd_raw_init</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes memory card communication. <a href="group__sd__raw.html#ga82e8599b2679451e491484fb0b19bfd5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga5e227f25ad4a18466e7cdd9ecdfce8ab">sd_raw_available</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks wether a memory card is located in the slot. <a href="group__sd__raw.html#ga5e227f25ad4a18466e7cdd9ecdfce8ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga55f311428473cd5b85cf8f24ffba121b">sd_raw_locked</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks wether the memory card is locked for write access. <a href="group__sd__raw.html#ga55f311428473cd5b85cf8f24ffba121b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga3da1870e406622511379a66370cdc774">sd_raw_read</a> (offset_t offset, uint8_t *buffer, uintptr_t length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads raw data from the card. <a href="group__sd__raw.html#ga3da1870e406622511379a66370cdc774"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#gaf7eb53b23a8a91aaae785379da1527c9">sd_raw_read_interval</a> (offset_t offset, uint8_t *buffer, uintptr_t interval, uintptr_t length, sd_raw_read_interval_handler_t callback, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Continuously reads units of <code>interval</code> bytes and calls a callback function. <a href="group__sd__raw.html#gaf7eb53b23a8a91aaae785379da1527c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577">sd_raw_write</a> (offset_t offset, const uint8_t *buffer, uintptr_t length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes raw data to the card. <a href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga7c60c1314055991e0812b659fe4e6c68">sd_raw_write_interval</a> (offset_t offset, uint8_t *buffer, uintptr_t length, sd_raw_write_interval_handler_t callback, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a continuous data stream obtained from a callback function. <a href="group__sd__raw.html#ga7c60c1314055991e0812b659fe4e6c68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#gad4d9ff40a7ea50c65cfa47927b35b735">sd_raw_sync</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the write buffer's content to the card. <a href="group__sd__raw.html#gad4d9ff40a7ea50c65cfa47927b35b735"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79">sd_raw_get_info</a> (struct <a class="el" href="structsd__raw__info.html">sd_raw_info</a> *info)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads informational data from the card. <a href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>MMC/SD/SDHC raw access implementation (license: GPLv2 or LGPLv2.1) </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Roland Riegel </dd></dl>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,119 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: sd_raw.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">sd_raw.h File Reference<div class="ingroups"><a class="el" href="group__sd__raw.html">MMC/SD/SDHC card raw access</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>MMC/SD/SDHC raw access header (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html">sd_raw_info</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This struct is used by <a class="el" href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79" title="Reads informational data from the card.">sd_raw_get_info()</a> to return manufacturing and status information of the card. <a href="structsd__raw__info.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2507a78d61385c9dbc1d06b8a03ef58a"></a><!-- doxytag: member="sd_raw.h::SD_RAW_FORMAT_HARDDISK" ref="ga2507a78d61385c9dbc1d06b8a03ef58a" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga2507a78d61385c9dbc1d06b8a03ef58a">SD_RAW_FORMAT_HARDDISK</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The card's layout is harddisk-like, which means it contains a master boot record with a partition table. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4caede5500f4d1035ceb9951a831c224"></a><!-- doxytag: member="sd_raw.h::SD_RAW_FORMAT_SUPERFLOPPY" ref="ga4caede5500f4d1035ceb9951a831c224" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga4caede5500f4d1035ceb9951a831c224">SD_RAW_FORMAT_SUPERFLOPPY</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The card contains a single filesystem and no partition table. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad070d05f762410f57870549a0fcd5f43"></a><!-- doxytag: member="sd_raw.h::SD_RAW_FORMAT_UNIVERSAL" ref="gad070d05f762410f57870549a0fcd5f43" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#gad070d05f762410f57870549a0fcd5f43">SD_RAW_FORMAT_UNIVERSAL</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The card's layout follows the Universal File Format. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7e87231437f32335a25930ec1b85a9c9"></a><!-- doxytag: member="sd_raw.h::SD_RAW_FORMAT_UNKNOWN" ref="ga7e87231437f32335a25930ec1b85a9c9" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga7e87231437f32335a25930ec1b85a9c9">SD_RAW_FORMAT_UNKNOWN</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The card's layout is unknown. <br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga82e8599b2679451e491484fb0b19bfd5">sd_raw_init</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes memory card communication. <a href="group__sd__raw.html#ga82e8599b2679451e491484fb0b19bfd5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga5e227f25ad4a18466e7cdd9ecdfce8ab">sd_raw_available</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks wether a memory card is located in the slot. <a href="group__sd__raw.html#ga5e227f25ad4a18466e7cdd9ecdfce8ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga55f311428473cd5b85cf8f24ffba121b">sd_raw_locked</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks wether the memory card is locked for write access. <a href="group__sd__raw.html#ga55f311428473cd5b85cf8f24ffba121b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga3da1870e406622511379a66370cdc774">sd_raw_read</a> (offset_t offset, uint8_t *buffer, uintptr_t length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads raw data from the card. <a href="group__sd__raw.html#ga3da1870e406622511379a66370cdc774"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#gaf7eb53b23a8a91aaae785379da1527c9">sd_raw_read_interval</a> (offset_t offset, uint8_t *buffer, uintptr_t interval, uintptr_t length, sd_raw_read_interval_handler_t callback, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Continuously reads units of <code>interval</code> bytes and calls a callback function. <a href="group__sd__raw.html#gaf7eb53b23a8a91aaae785379da1527c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577">sd_raw_write</a> (offset_t offset, const uint8_t *buffer, uintptr_t length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes raw data to the card. <a href="group__sd__raw.html#ga0e46673759c1aa9ba492c8d123a3c577"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga7c60c1314055991e0812b659fe4e6c68">sd_raw_write_interval</a> (offset_t offset, uint8_t *buffer, uintptr_t length, sd_raw_write_interval_handler_t callback, void *p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a continuous data stream obtained from a callback function. <a href="group__sd__raw.html#ga7c60c1314055991e0812b659fe4e6c68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#gad4d9ff40a7ea50c65cfa47927b35b735">sd_raw_sync</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the write buffer's content to the card. <a href="group__sd__raw.html#gad4d9ff40a7ea50c65cfa47927b35b735"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79">sd_raw_get_info</a> (struct <a class="el" href="structsd__raw__info.html">sd_raw_info</a> *info)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads informational data from the card. <a href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>MMC/SD/SDHC raw access header (license: GPLv2 or LGPLv2.1) </p>
<dl class="author"><dt><b>Author:</b></dt><dd>Roland Riegel </dd></dl>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: sd_raw_config.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> </div>
<div class="headertitle">
<div class="title">sd_raw_config.h File Reference<div class="ingroups"><a class="el" href="group__sd__raw.html">MMC/SD/SDHC card raw access</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>MMC/SD support configuration (license: GPLv2 or LGPLv2.1)
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw__config.html#ga5f2253a3c408671f91f9aebefeef7472">SD_RAW_WRITE_SUPPORT</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls MMC/SD write support. <a href="group__sd__raw__config.html#ga5f2253a3c408671f91f9aebefeef7472"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw__config.html#gaa749d88c077a812f5c518e3172c96f9e">SD_RAW_WRITE_BUFFERING</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls MMC/SD write buffering. <a href="group__sd__raw__config.html#gaa749d88c077a812f5c518e3172c96f9e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw__config.html#ga4b98be138e87b8ab807d3f266a0c5bb9">SD_RAW_SAVE_RAM</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls MMC/SD access buffering. <a href="group__sd__raw__config.html#ga4b98be138e87b8ab807d3f266a0c5bb9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw__config.html#ga03cccc1544f7cd6c23d66967a1bbc0f7">SD_RAW_SDHC</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls support for SDHC cards. <a href="group__sd__raw__config.html#ga03cccc1544f7cd6c23d66967a1bbc0f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sd__raw__config.html#ga4b98be138e87b8ab807d3f266a0c5bb9">SD_RAW_SAVE_RAM</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls MMC/SD access buffering. <a href="group__sd__raw__config.html#ga4b98be138e87b8ab807d3f266a0c5bb9"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>MMC/SD support configuration (license: GPLv2 or LGPLv2.1) </p>
</div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,167 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: fat_dir_entry_struct Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
<div class="headertitle">
<div class="title">fat_dir_entry_struct Struct Reference<div class="ingroups"><a class="el" href="group__fat.html">FAT support</a> &#124; <a class="el" href="group__fat__file.html">FAT file functions</a></div></div> </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="fat_dir_entry_struct" -->
<p>Describes a directory entry.
<a href="structfat__dir__entry__struct.html#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfat__dir__entry__struct.html#a55d4698f86eecb6b49987a7c5f37566c">long_name</a> [32]</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file's name, truncated to 31 characters. <a href="#a55d4698f86eecb6b49987a7c5f37566c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfat__dir__entry__struct.html#a96bb7fbc6037217acccbeb22b718bc1a">attributes</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file's attributes. <a href="#a96bb7fbc6037217acccbeb22b718bc1a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">cluster_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfat__dir__entry__struct.html#a33ff89147834319be295ce273eac0d16">cluster</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The cluster in which the file's first byte resides. <a href="#a33ff89147834319be295ce273eac0d16"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfat__dir__entry__struct.html#ac8821140df86bef96d2e4c9b177f386e">file_size</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file's size. <a href="#ac8821140df86bef96d2e4c9b177f386e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">offset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfat__dir__entry__struct.html#acf491ee03bd21f230aecc449cac2c429">entry_offset</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The total disk offset of this directory entry. <a href="#acf491ee03bd21f230aecc449cac2c429"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Describes a directory entry. </p>
</div><hr/><h2>Field Documentation</h2>
<a class="anchor" id="a96bb7fbc6037217acccbeb22b718bc1a"></a><!-- doxytag: member="fat_dir_entry_struct::attributes" ref="a96bb7fbc6037217acccbeb22b718bc1a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="structfat__dir__entry__struct.html#a96bb7fbc6037217acccbeb22b718bc1a">fat_dir_entry_struct::attributes</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The file's attributes. </p>
<p>Mask of the FAT_ATTRIB_* constants. </p>
</div>
</div>
<a class="anchor" id="a33ff89147834319be295ce273eac0d16"></a><!-- doxytag: member="fat_dir_entry_struct::cluster" ref="a33ff89147834319be295ce273eac0d16" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">cluster_t <a class="el" href="structfat__dir__entry__struct.html#a33ff89147834319be295ce273eac0d16">fat_dir_entry_struct::cluster</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The cluster in which the file's first byte resides. </p>
</div>
</div>
<a class="anchor" id="acf491ee03bd21f230aecc449cac2c429"></a><!-- doxytag: member="fat_dir_entry_struct::entry_offset" ref="acf491ee03bd21f230aecc449cac2c429" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">offset_t <a class="el" href="structfat__dir__entry__struct.html#acf491ee03bd21f230aecc449cac2c429">fat_dir_entry_struct::entry_offset</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The total disk offset of this directory entry. </p>
</div>
</div>
<a class="anchor" id="ac8821140df86bef96d2e4c9b177f386e"></a><!-- doxytag: member="fat_dir_entry_struct::file_size" ref="ac8821140df86bef96d2e4c9b177f386e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t <a class="el" href="structfat__dir__entry__struct.html#ac8821140df86bef96d2e4c9b177f386e">fat_dir_entry_struct::file_size</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The file's size. </p>
</div>
</div>
<a class="anchor" id="a55d4698f86eecb6b49987a7c5f37566c"></a><!-- doxytag: member="fat_dir_entry_struct::long_name" ref="a55d4698f86eecb6b49987a7c5f37566c" args="[32]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char <a class="el" href="structfat__dir__entry__struct.html#a55d4698f86eecb6b49987a7c5f37566c">fat_dir_entry_struct::long_name</a>[32]</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The file's name, truncated to 31 characters. </p>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,177 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: partition_struct Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
<div class="headertitle">
<div class="title">partition_struct Struct Reference<div class="ingroups"><a class="el" href="group__partition.html">Partition table support</a></div></div> </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="partition_struct" -->
<p>Describes a partition.
<a href="structpartition__struct.html#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85">device_read_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpartition__struct.html#a9d82319d1b4f052c165a806069f49afa">device_read</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The function which reads data from the partition. <a href="#a9d82319d1b4f052c165a806069f49afa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4">device_read_interval_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpartition__struct.html#a23ef90827c177f8f3385582416ff3ea3">device_read_interval</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The function which repeatedly reads a constant amount of data from the partition. <a href="#a23ef90827c177f8f3385582416ff3ea3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f">device_write_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpartition__struct.html#ac16e2eedf75a5e472ed93a92c30e0dad">device_write</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The function which writes data to the partition. <a href="#ac16e2eedf75a5e472ed93a92c30e0dad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800">device_write_interval_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpartition__struct.html#a91923c55ba1c3a2dad435124964d91aa">device_write_interval</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The function which repeatedly writes data to the partition. <a href="#a91923c55ba1c3a2dad435124964d91aa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpartition__struct.html#a6923f9a2463495b35df8b73750e5d959">type</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of the partition. <a href="#a6923f9a2463495b35df8b73750e5d959"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad9d6f2b7a40168d2960e28a151ef1808"></a><!-- doxytag: member="partition_struct::offset" ref="ad9d6f2b7a40168d2960e28a151ef1808" args="" -->
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpartition__struct.html#ad9d6f2b7a40168d2960e28a151ef1808">offset</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The offset in blocks on the disk where this partition starts. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a416da0cd540916a03a536c4fc5970635"></a><!-- doxytag: member="partition_struct::length" ref="a416da0cd540916a03a536c4fc5970635" args="" -->
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpartition__struct.html#a416da0cd540916a03a536c4fc5970635">length</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The length in blocks of this partition. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Describes a partition. </p>
</div><hr/><h2>Field Documentation</h2>
<a class="anchor" id="a9d82319d1b4f052c165a806069f49afa"></a><!-- doxytag: member="partition_struct::device_read" ref="a9d82319d1b4f052c165a806069f49afa" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__partition.html#ga52bf225ef74664c7e596f23d8d807c85">device_read_t</a> <a class="el" href="structpartition__struct.html#a9d82319d1b4f052c165a806069f49afa">partition_struct::device_read</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The function which reads data from the partition. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The offset given to this function is relative to the whole disk, not to the start of the partition. </dd></dl>
</div>
</div>
<a class="anchor" id="a23ef90827c177f8f3385582416ff3ea3"></a><!-- doxytag: member="partition_struct::device_read_interval" ref="a23ef90827c177f8f3385582416ff3ea3" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__partition.html#gae89b7507ba9787aec1e8974c5f2b30a4">device_read_interval_t</a> <a class="el" href="structpartition__struct.html#a23ef90827c177f8f3385582416ff3ea3">partition_struct::device_read_interval</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The function which repeatedly reads a constant amount of data from the partition. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The offset given to this function is relative to the whole disk, not to the start of the partition. </dd></dl>
</div>
</div>
<a class="anchor" id="ac16e2eedf75a5e472ed93a92c30e0dad"></a><!-- doxytag: member="partition_struct::device_write" ref="ac16e2eedf75a5e472ed93a92c30e0dad" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__partition.html#ga8d202a969ce237e5876b1f1f506df53f">device_write_t</a> <a class="el" href="structpartition__struct.html#ac16e2eedf75a5e472ed93a92c30e0dad">partition_struct::device_write</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The function which writes data to the partition. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The offset given to this function is relative to the whole disk, not to the start of the partition. </dd></dl>
</div>
</div>
<a class="anchor" id="a91923c55ba1c3a2dad435124964d91aa"></a><!-- doxytag: member="partition_struct::device_write_interval" ref="a91923c55ba1c3a2dad435124964d91aa" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__partition.html#ga032324dc0780bc62cd91a8856ffe0800">device_write_interval_t</a> <a class="el" href="structpartition__struct.html#a91923c55ba1c3a2dad435124964d91aa">partition_struct::device_write_interval</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The function which repeatedly writes data to the partition. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>The offset given to this function is relative to the whole disk, not to the start of the partition. </dd></dl>
</div>
</div>
<a class="anchor" id="a6923f9a2463495b35df8b73750e5d959"></a><!-- doxytag: member="partition_struct::type" ref="a6923f9a2463495b35df8b73750e5d959" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="structpartition__struct.html#a6923f9a2463495b35df8b73750e5d959">partition_struct::type</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The type of the partition. </p>
<p>Compare this value to the PARTITION_TYPE_* constants. </p>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -1,208 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>sd-reader: sd_raw_info Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">sd-reader
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-attribs">Data Fields</a> </div>
<div class="headertitle">
<div class="title">sd_raw_info Struct Reference<div class="ingroups"><a class="el" href="group__sd__raw.html">MMC/SD/SDHC card raw access</a></div></div> </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="sd_raw_info" -->
<p>This struct is used by <a class="el" href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79" title="Reads informational data from the card.">sd_raw_get_info()</a> to return manufacturing and status information of the card.
<a href="structsd__raw__info.html#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad543253184afa50a8e4cb51b6dd5bf67"></a><!-- doxytag: member="sd_raw_info::manufacturer" ref="ad543253184afa50a8e4cb51b6dd5bf67" args="" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#ad543253184afa50a8e4cb51b6dd5bf67">manufacturer</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A manufacturer code globally assigned by the SD card organization. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ec2f9a6cdc4ac26cd695321bd9b3057"></a><!-- doxytag: member="sd_raw_info::oem" ref="a8ec2f9a6cdc4ac26cd695321bd9b3057" args="[3]" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#a8ec2f9a6cdc4ac26cd695321bd9b3057">oem</a> [3]</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A string describing the card's OEM or content, globally assigned by the SD card organization. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8d781e7a0ec7e752b340a72ba87fc40f"></a><!-- doxytag: member="sd_raw_info::product" ref="a8d781e7a0ec7e752b340a72ba87fc40f" args="[6]" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#a8d781e7a0ec7e752b340a72ba87fc40f">product</a> [6]</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A product name. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#a0eb79353f9b63b1e719f8babad77c87e">revision</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The card's revision, coded in packed BCD. <a href="#a0eb79353f9b63b1e719f8babad77c87e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22771967744cca36595278b52686a69f"></a><!-- doxytag: member="sd_raw_info::serial" ref="a22771967744cca36595278b52686a69f" args="" -->
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#a22771967744cca36595278b52686a69f">serial</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A serial number assigned by the manufacturer. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#ae8a5dd6ae2039058100800f6bb85997a">manufacturing_year</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The year of manufacturing. <a href="#ae8a5dd6ae2039058100800f6bb85997a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80b3393a84f9c7f0a648cb8a9fd9c8b7"></a><!-- doxytag: member="sd_raw_info::manufacturing_month" ref="a80b3393a84f9c7f0a648cb8a9fd9c8b7" args="" -->
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#a80b3393a84f9c7f0a648cb8a9fd9c8b7">manufacturing_month</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The month of manufacturing. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0443b0eb7316378025763674a5bf9b0"></a><!-- doxytag: member="sd_raw_info::capacity" ref="af0443b0eb7316378025763674a5bf9b0" args="" -->
offset_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#af0443b0eb7316378025763674a5bf9b0">capacity</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The card's total capacity in bytes. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#af23fccda0fa6740558d71c530576961b">flag_copy</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines wether the card's content is original or copied. <a href="#af23fccda0fa6740558d71c530576961b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#a55f4daed5bef3289878fc0521ca191b1">flag_write_protect</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines wether the card's content is write-protected. <a href="#a55f4daed5bef3289878fc0521ca191b1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#af3815572d323acafa8e3eabf19b154d5">flag_write_protect_temp</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines wether the card's content is temporarily write-protected. <a href="#af3815572d323acafa8e3eabf19b154d5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsd__raw__info.html#a10d485029641a4fc1aadccad5e9eaa03">format</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The card's data layout. <a href="#a10d485029641a4fc1aadccad5e9eaa03"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This struct is used by <a class="el" href="group__sd__raw.html#ga97c54e82834f87bcdd38e79822fe5a79" title="Reads informational data from the card.">sd_raw_get_info()</a> to return manufacturing and status information of the card. </p>
</div><hr/><h2>Field Documentation</h2>
<a class="anchor" id="af23fccda0fa6740558d71c530576961b"></a><!-- doxytag: member="sd_raw_info::flag_copy" ref="af23fccda0fa6740558d71c530576961b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="structsd__raw__info.html#af23fccda0fa6740558d71c530576961b">sd_raw_info::flag_copy</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Defines wether the card's content is original or copied. </p>
<p>A value of <code>0</code> means original, <code>1</code> means copied. </p>
</div>
</div>
<a class="anchor" id="a55f4daed5bef3289878fc0521ca191b1"></a><!-- doxytag: member="sd_raw_info::flag_write_protect" ref="a55f4daed5bef3289878fc0521ca191b1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="structsd__raw__info.html#a55f4daed5bef3289878fc0521ca191b1">sd_raw_info::flag_write_protect</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Defines wether the card's content is write-protected. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This is an internal flag and does not represent the state of the card's mechanical write-protect switch. </dd></dl>
</div>
</div>
<a class="anchor" id="af3815572d323acafa8e3eabf19b154d5"></a><!-- doxytag: member="sd_raw_info::flag_write_protect_temp" ref="af3815572d323acafa8e3eabf19b154d5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="structsd__raw__info.html#af3815572d323acafa8e3eabf19b154d5">sd_raw_info::flag_write_protect_temp</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Defines wether the card's content is temporarily write-protected. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This is an internal flag and does not represent the state of the card's mechanical write-protect switch. </dd></dl>
</div>
</div>
<a class="anchor" id="a10d485029641a4fc1aadccad5e9eaa03"></a><!-- doxytag: member="sd_raw_info::format" ref="a10d485029641a4fc1aadccad5e9eaa03" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="structsd__raw__info.html#a10d485029641a4fc1aadccad5e9eaa03">sd_raw_info::format</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The card's data layout. </p>
<p>See the <code>SD_RAW_FORMAT_*</code> constants for details.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>This value is not guaranteed to match reality. </dd></dl>
</div>
</div>
<a class="anchor" id="ae8a5dd6ae2039058100800f6bb85997a"></a><!-- doxytag: member="sd_raw_info::manufacturing_year" ref="ae8a5dd6ae2039058100800f6bb85997a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="structsd__raw__info.html#ae8a5dd6ae2039058100800f6bb85997a">sd_raw_info::manufacturing_year</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The year of manufacturing. </p>
<p>A value of zero means year 2000. </p>
</div>
</div>
<a class="anchor" id="a0eb79353f9b63b1e719f8babad77c87e"></a><!-- doxytag: member="sd_raw_info::revision" ref="a0eb79353f9b63b1e719f8babad77c87e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t <a class="el" href="structsd__raw__info.html#a0eb79353f9b63b1e719f8babad77c87e">sd_raw_info::revision</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The card's revision, coded in packed BCD. </p>
<p>For example, the revision value <code>0x32</code> means "3.2". </p>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 12 2012 20:06:45 for sd-reader by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 B

View File

@ -1,59 +0,0 @@
.tabs, .tabs2, .tabs3 {
background-image: url('tab_b.png');
width: 100%;
z-index: 101;
font-size: 13px;
}
.tabs2 {
font-size: 10px;
}
.tabs3 {
font-size: 9px;
}
.tablist {
margin: 0;
padding: 0;
display: table;
}
.tablist li {
float: left;
display: table-cell;
background-image: url('tab_b.png');
line-height: 36px;
list-style: none;
}
.tablist a {
display: block;
padding: 0 20px;
font-weight: bold;
background-image:url('tab_s.png');
background-repeat:no-repeat;
background-position:right;
color: #283A5D;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
text-decoration: none;
outline: none;
}
.tabs3 .tablist a {
padding: 0 10px;
}
.tablist a:hover {
background-image: url('tab_h.png');
background-repeat:repeat-x;
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
text-decoration: none;
}
.tablist li.current a {
background-image: url('tab_a.png');
background-repeat:repeat-x;
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
}

View File

@ -11,7 +11,18 @@
#define DEBUG 1
#define MAX_SONG_NUM 9
/* ---- Control Flow Variables ---- */
// Commands
uint8_t cmd_depth = 0;
uint8_t cmd_state;
// Song playing
// TODO fix this atrocious naming
uint16_t song_buf[2][SONG_BUF_LEN]; //! Buffers to play song from
uint8_t song_position; //! where we are in the buffers
bool song_buf_select; //! which buffer we're using
bool song_selected; //! Flag to say we just selected the song, read data in
int8_t song_selection = -1; //! ID of selected song
typedef struct {
@ -23,6 +34,9 @@ song_info_t songs[MAX_SONG_NUM];
int main()
{
gpio_init();
timer_init();
usart_init();
/* we will just use ordinary idle mode */
//set_sleep_mode(SLEEP_MODE_IDLE);
@ -75,7 +89,7 @@ int main()
strcpy(songs[song_id].name, dir_entry.long_name);
// Open file and keep info in songs
fat_open_file(fs, songs[song_id].fd);
fat_open_file(fs, (const struct fat_dir_entry_struct*) songs[song_id].fd);
// Move on to reading next song
song_id++;
@ -87,13 +101,69 @@ int main()
while (1) {
/// do stuff
uint8_t incoming_cmd;
if (fifo_pop(&incoming_cmd) == FIFO_SUCCESS) {
// Handle incoming command
// Handle incoming commands
if (cmd_depth == 0) {
if (fifo_pop(&cmd_state) == FIFO_SUCCESS) {
// Handle incoming command
switch(cmd_state) {
case (COMMS_CMD_PAUSE):
// Turn off interrupts for play timer to stop playing
TIFR0 &= ~(1 << OCF0A);
cmd_depth = 0;
break;
case (COMMS_CMD_PLAY):
// Turn on interrupts for play timer to start playing
TIFR0 |= (1 << OCF0A);
cmd_depth = 0;
break;
case (COMMS_CMD_SELECT_FILE):
// stop playing whatever song we have right now
// Wait for next loop to handle file
TIFR0 &= ~(1 << OCF0A);
cmd_depth = 1;
break;
case (COMMS_CMD_QUERY_NAME):
// Wait for next loop to handle file info
cmd_depth = 1;
break;
}
}
}
if (cmd_depth == 1) {
uint8_t song_id;
if (fifo_pop(&song_id) == FIFO_SUCCESS) {
switch (cmd_state) {
case (COMMS_CMD_SELECT_FILE):
// select proper song and begin reading in
song_selection = song_id;
song_selected = 1;
break;
case (COMMS_CMD_QUERY_NAME):
// Just going to hope we can bump the UART baudrate up high enough
comms_reply_name(songs[song_id].name);
break;
}
}
}
// TODO check here if we are running into the end of our song buffer, and read in song data
if (song_position > 128 || song_selected) {
// Select opposite buffer
bool read_song_buf = !song_buf_select;
// Read in file
// 512 bytes to read, 256 samples
fat_read_file(songs[song_selection].fd, (uint8_t*) song_buf[read_song_buf], 512);
// If we selected the song, make sure we start playing from the right buffer
if (song_selected) {
song_buf_select = read_song_buf;
}
// Ensure we don't "re-select" the song
song_selected = false;
}
}
return 0;

View File

@ -3,6 +3,7 @@
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include <avr/sleep.h>
#include "fat.h"
@ -11,6 +12,16 @@
#include "sd_raw.h"
#include "sd_raw_config.h"
#include "fifo.h"
#include "comms.h"
#include "periph.h"
#define MAX_SONG_NUM 9
#define SONG_BUF_LEN 256 // NO MORE THAN 256!!!
// Song playing
extern uint16_t song_buf[2][SONG_BUF_LEN]; //! Buffers to play song from
extern uint8_t song_position; //! where we are in the buffers
extern bool song_buf_select; //! which buffer we're using
#endif

View File

@ -1,16 +1,91 @@
#include "main.h"
#include <avr/interrupt.h>
/** @brief intercepts incoming Serial commands
*/
ISR(USART_RX_vect) {
cli();
// Read byte into FIFO
fifo_push(UDR0);
// Flag is cleared by reading data from UDR
sei();
}
/** @brief Interrupt handler for actually playing music
*
* Will only be called if the TIFR OCF0A flag is high, using that as our play/pause flag
*
* This may be possible to hand-optimise better, but I cut it down to ~40 instructions
* which should be fine at 16MHz
*/
ISR(TIMER0_COMPA_vect) {
cli();
// Handle music playing
/* DAC0 -> DAC5 are on PC0 -> PC5
* Nothing relevent is on the rest of PORTC
*
* DAC6 -> DAC11 is PD2->PD7
*
* DAC12 and DAC13 are PB0 and PB1
*/
uint16_t in_data = song_buf[song_buf_select][song_position];
// Split into 8 bit because we are using an 8 bit MCU, so code can be better
uint8_t data_lo = in_data;
uint8_t data_hi = in_data >> 8;
// DAC0 -> DAC5
PORTC = (data_lo >> 2) & 0x3F;
// DAC6 -> DAC11
PORTD &= 0x03;
PORTD |= data_hi << 2;
// DAC12 and DAC13
PORTB &= 0xFC; // clear bits
PORTB |= data_hi >> 6;
// Go to next sample
song_position++;
// Can just wrap if it's 8 bit
sei();
}
void gpio_init() {
// Initialise all DAC outputs
/* DAC0 -> DAC5 are on PC0 -> PC5
* Nothing relevent is on the rest of PORTC
*
* DAC6 -> DAC11 is PD2->PD7
*
* DAC12 and DAC13 are PB0 and PB1
*/
DDRC |= 0x3F;
DDRD |= 0xFC;
DDRC |= 0x03;
}
void timer_init() {
// Compare outputs should be default, nothing
// Set to CTC, WGM = 0b010
TCCR0A = (1 << OCIE0A);
// Set timer to use clock input w/o prescaling
TCCR0B = 1;
// 16 MHz / 44kHz = 182 clock cycles
// Pushing it for time, may have to move to 8 bit...
OCR0A = 182;
// Don't enable the interrupt yet
}
void usart_init() {
// set baudrate
UBRR0L = UBRR_VALUE & 255;
UBRR0H = UBRR_VALUE >> 8;
// Set data info, no parity, 1 stop, 8-bit
UCSR0C |= (1 << UCSZ01) | (1 << UCSZ00);
// Start it up
UCSR0B |= (1 << TXEN0) | (1 << RXEN0);
}

View File

@ -0,0 +1,13 @@
#ifndef PERIPH_H_
#define PERIPH_H_
#define USART_BAUDRATE 9600 //! USART baudrate, change this to set it.
#define UBRR_VALUE (((F_CPU/(USART_BAUDRATE*16UL)))-1)
// TODO comments
void gpio_init();
void timer_init();
void usart_init();
#endif

View File

@ -7,7 +7,7 @@ Archive member included to satisfy reference by file (symbol)
/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
fat.o (__udivmodsi4)
/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o (exit)
/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o (exit)
/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
sd_raw.o (__tablejump2__)
/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
@ -38,11 +38,27 @@ Archive member included to satisfy reference by file (symbol)
fat.o (__cmpdi2_s8)
/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) (__umulhisi3)
/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
main.o (malloc)
/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
fat.o (strchr)
/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o)
main.o (strcpy)
/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
fat.o (strncmp)
Allocating common symbols
Common symbol size file
cmd_state 0x1 main.o
song_buf 0x400 main.o
song_buf_select 0x1 main.o
__brkval 0x2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
song_selected 0x1 main.o
songs 0x24 main.o
song_position 0x1 main.o
__flp 0x2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
Memory Configuration
Name Origin Length Attributes
@ -58,18 +74,19 @@ user_signatures 0x0000000000850000 0x0000000000000400 rw !x
Linker script and memory map
Address of section .data set to 0x800100
LOAD /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
LOAD /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
LOAD partition.o
LOAD sd_raw.o
LOAD byteordering.o
LOAD lcd.o
LOAD periph.o
LOAD fat.o
LOAD main.o
LOAD fifo.o
START GROUP
LOAD /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a
LOAD /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a
LOAD /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a
LOAD /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libatmega168.a
LOAD /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libatmega328p.a
END GROUP
0x0000000000020000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x20000
0x000000000000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
@ -169,9 +186,9 @@ END GROUP
.rela.plt
*(.rela.plt)
.text 0x0000000000000000 0x2502
.text 0x0000000000000000 0x2884
*(.vectors)
.vectors 0x0000000000000000 0x68 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
.vectors 0x0000000000000000 0x68 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
0x0000000000000000 __vectors
0x0000000000000000 __vector_default
*(.vectors)
@ -201,13 +218,13 @@ END GROUP
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x0000000000000086 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
.init0 0x0000000000000086 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
0x0000000000000086 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x0000000000000086 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
.init2 0x0000000000000086 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
*(.init2)
*(.init3)
*(.init3)
@ -226,10 +243,10 @@ END GROUP
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000000000000b8 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
.init9 0x00000000000000b8 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
*(.init9)
*(.text)
.text 0x00000000000000c0 0x4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
.text 0x00000000000000c0 0x4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
0x00000000000000c0 __vector_22
0x00000000000000c0 __vector_1
0x00000000000000c0 __vector_24
@ -251,10 +268,8 @@ END GROUP
0x00000000000000c0 __vector_21
0x00000000000000c0 __vector_15
0x00000000000000c0 __vector_8
0x00000000000000c0 __vector_14
0x00000000000000c0 __vector_10
0x00000000000000c0 __vector_16
0x00000000000000c0 __vector_18
0x00000000000000c0 __vector_20
.text 0x00000000000000c4 0x144 partition.o
0x00000000000000c4 partition_open
@ -271,333 +286,341 @@ END GROUP
0x0000000000000a78 read32
0x0000000000000a84 write16
0x0000000000000a8c write32
.text 0x0000000000000a98 0x1f8 lcd.o
0x0000000000000b6a lcd_command
0x0000000000000b7c lcd_data
0x0000000000000b8e lcd_gotoxy
0x0000000000000b9c lcd_getxy
0x0000000000000ba4 lcd_clrscr
0x0000000000000baa lcd_home
0x0000000000000bb0 lcd_putc
0x0000000000000bd8 lcd_puts
0x0000000000000bf0 lcd_puts_p
0x0000000000000c0e lcd_init
.text 0x0000000000000c90 0x14fa fat.o
0x000000000000115a fat_open
0x0000000000001610 fat_close
0x000000000000161c fat_open_file
0x0000000000001698 fat_close_file
0x00000000000016a4 fat_read_file
0x0000000000001a76 fat_seek_file
0x0000000000001b06 fat_open_dir
0x0000000000001b76 fat_close_dir
0x0000000000001b82 fat_reset_dir
0x0000000000001ba4 fat_read_dir
0x0000000000001e6e fat_get_dir_entry_of_path
0x0000000000001f80 fat_get_fs_size
0x0000000000001fee fat_get_fs_free
.text 0x000000000000218a 0x0 main.o
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
.text 0x000000000000218a 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
0x000000000000218a . = ALIGN (0x2)
.text 0x0000000000000a98 0x120 periph.o
0x0000000000000a98 __vector_18
0x0000000000000ae8 __vector_14
0x0000000000000b76 gpio_init
0x0000000000000b8a timer_init
0x0000000000000b98 usart_init
.text 0x0000000000000bb8 0x14fa fat.o
0x0000000000001082 fat_open
0x0000000000001538 fat_close
0x0000000000001544 fat_open_file
0x00000000000015c0 fat_close_file
0x00000000000015cc fat_read_file
0x000000000000199e fat_seek_file
0x0000000000001a2e fat_open_dir
0x0000000000001a9e fat_close_dir
0x0000000000001aaa fat_reset_dir
0x0000000000001acc fat_read_dir
0x0000000000001d96 fat_get_dir_entry_of_path
0x0000000000001ea8 fat_get_fs_size
0x0000000000001f16 fat_get_fs_free
.text 0x00000000000020b2 0x0 main.o
.text 0x00000000000020b2 0xb6 fifo.o
0x00000000000020b2 fifo_init
0x00000000000020c4 fifo_pop
0x0000000000002118 fifo_push
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o)
.text 0x0000000000002168 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
0x0000000000002168 . = ALIGN (0x2)
*(.text.*)
.text.startup 0x000000000000218a 0x9a main.o
0x000000000000218a main
.text.startup 0x0000000000002168 0x1ee main.o
0x0000000000002168 main
.text.libgcc.mul
0x0000000000002224 0x20 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
0x0000000000002224 __mulsi3
0x0000000000002356 0x20 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
0x0000000000002356 __mulsi3
.text.libgcc.div
0x0000000000002244 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc 0x0000000000002244 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc 0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc.prologue
0x0000000000002244 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc.builtins
0x0000000000002244 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc.fmul
0x0000000000002244 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc.fixed
0x0000000000002244 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc.mul
0x0000000000002244 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
0x0000000000002376 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.div
0x0000000000002244 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
0x0000000000002244 __udivmodhi4
.text.libgcc 0x000000000000226c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
0x0000000000002376 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
0x0000000000002376 __udivmodhi4
.text.libgcc 0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.prologue
0x000000000000226c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.builtins
0x000000000000226c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.fmul
0x000000000000226c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.fixed
0x000000000000226c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.mul
0x000000000000226c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
0x000000000000239e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text.libgcc.div
0x000000000000226c 0x44 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
0x000000000000226c __udivmodsi4
.text.libgcc 0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
0x000000000000239e 0x44 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
0x000000000000239e __udivmodsi4
.text.libgcc 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text.libgcc.prologue
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text.libgcc.builtins
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text.libgcc.fmul
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text.libgcc.fixed
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text.libgcc.mul
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.div
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc 0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc 0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.div
0x00000000000022b0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc 0x00000000000022b0 0xc /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
0x00000000000022b0 __tablejump2__
0x00000000000023e2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc 0x00000000000023e2 0xc /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
0x00000000000023e2 __tablejump2__
.text.libgcc.prologue
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.builtins
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.fmul
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.fixed
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.mul
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc 0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.div
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x00000000000022bc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
0x00000000000023ee 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.mul
0x00000000000022bc 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
0x00000000000022bc __muluhisi3
0x00000000000023ee 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
0x00000000000023ee __muluhisi3
.text.libgcc.div
0x00000000000022d2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc 0x00000000000022d2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc 0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc.prologue
0x00000000000022d2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc.builtins
0x00000000000022d2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc.fmul
0x00000000000022d2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc.fixed
0x00000000000022d2 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
0x0000000000002404 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc.mul
0x00000000000022d2 0xa0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
0x00000000000022d2 __muldi3
0x0000000000002404 0xa0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
0x0000000000002404 __muldi3
.text.libgcc.div
0x0000000000002372 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.text.libgcc 0x0000000000002372 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.text.libgcc 0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.text.libgcc.prologue
0x0000000000002372 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.text.libgcc.builtins
0x0000000000002372 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.text.libgcc.fmul
0x0000000000002372 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.text.libgcc.fixed
0x0000000000002372 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
0x00000000000024a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.text.libgcc.mul
0x0000000000002372 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
0x0000000000002372 __muldi3_6
0x00000000000024a4 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
0x00000000000024a4 __muldi3_6
.text.libgcc.div
0x0000000000002384 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.text.libgcc 0x0000000000002384 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.text.libgcc 0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.text.libgcc.prologue
0x0000000000002384 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.text.libgcc.builtins
0x0000000000002384 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.text.libgcc.fmul
0x0000000000002384 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.text.libgcc.fixed
0x0000000000002384 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
0x00000000000024b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.text.libgcc.mul
0x0000000000002384 0x56 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
0x0000000000002384 __umulsidi3
0x0000000000002386 __umulsidi3_helper
0x00000000000024b6 0x56 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
0x00000000000024b6 __umulsidi3
0x00000000000024b8 __umulsidi3_helper
.text.libgcc.div
0x00000000000023da 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.text.libgcc 0x00000000000023da 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.text.libgcc 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.text.libgcc.prologue
0x00000000000023da 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.text.libgcc.builtins
0x00000000000023da 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.text.libgcc.fmul
0x00000000000023da 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.text.libgcc.fixed
0x00000000000023da 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.text.libgcc.mul
0x00000000000023da 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.text.libgcc.div
0x00000000000023da 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.text.libgcc 0x00000000000023da 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.text.libgcc 0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.text.libgcc.prologue
0x00000000000023da 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
0x000000000000250c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.text.libgcc.builtins
0x00000000000023da 0x32 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
0x00000000000023da __ashldi3
0x000000000000250c 0x32 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
0x000000000000250c __ashldi3
.text.libgcc.fmul
0x000000000000240c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.text.libgcc.fixed
0x000000000000240c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.text.libgcc.mul
0x000000000000240c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.text.libgcc.div
0x000000000000240c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.text.libgcc 0x000000000000240c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.text.libgcc 0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.text.libgcc.prologue
0x000000000000240c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
0x000000000000253e 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.text.libgcc.builtins
0x000000000000240c 0x3c /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
0x000000000000240c __ashrdi3
0x0000000000002410 __lshrdi3
0x000000000000253e 0x3c /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
0x000000000000253e __ashrdi3
0x0000000000002542 __lshrdi3
.text.libgcc.fmul
0x0000000000002448 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
0x000000000000257a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.text.libgcc.fixed
0x0000000000002448 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
0x000000000000257a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.text.libgcc.mul
0x0000000000002448 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
0x000000000000257a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.text.libgcc.div
0x0000000000002448 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.text.libgcc 0x0000000000002448 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
0x0000000000002448 __adddi3
0x000000000000257a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.text.libgcc 0x000000000000257a 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
0x000000000000257a __adddi3
.text.libgcc.prologue
0x000000000000245a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.text.libgcc.builtins
0x000000000000245a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.text.libgcc.fmul
0x000000000000245a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.text.libgcc.fixed
0x000000000000245a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.text.libgcc.mul
0x000000000000245a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.text.libgcc.div
0x000000000000245a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.text.libgcc 0x000000000000245a 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
0x000000000000245a __adddi3_s8
0x000000000000258c 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.text.libgcc 0x000000000000258c 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
0x000000000000258c __adddi3_s8
.text.libgcc.prologue
0x0000000000002472 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.text.libgcc.builtins
0x0000000000002472 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.text.libgcc.fmul
0x0000000000002472 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.text.libgcc.fixed
0x0000000000002472 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.text.libgcc.mul
0x0000000000002472 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.text.libgcc.div
0x0000000000002472 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.text.libgcc 0x0000000000002472 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
0x0000000000002472 __subdi3
0x00000000000025a4 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.text.libgcc 0x00000000000025a4 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
0x00000000000025a4 __subdi3
.text.libgcc.prologue
0x0000000000002484 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.text.libgcc.builtins
0x0000000000002484 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.text.libgcc.fmul
0x0000000000002484 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.text.libgcc.fixed
0x0000000000002484 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.text.libgcc.mul
0x0000000000002484 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.text.libgcc.div
0x0000000000002484 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.text.libgcc 0x0000000000002484 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
0x0000000000002484 __cmpdi2
0x00000000000025b6 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.text.libgcc 0x00000000000025b6 0x12 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
0x00000000000025b6 __cmpdi2
.text.libgcc.prologue
0x0000000000002496 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.text.libgcc.builtins
0x0000000000002496 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.text.libgcc.fmul
0x0000000000002496 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.text.libgcc.fixed
0x0000000000002496 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.text.libgcc.mul
0x0000000000002496 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.text.libgcc.div
0x0000000000002496 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.text.libgcc 0x0000000000002496 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
0x0000000000002496 __cmpdi2_s8
0x00000000000025c8 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.text.libgcc 0x00000000000025c8 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
0x00000000000025c8 __cmpdi2_s8
.text.libgcc.prologue
0x00000000000024ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
0x00000000000025e0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.text.libgcc.builtins
0x00000000000024ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
0x00000000000025e0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.text.libgcc.fmul
0x00000000000024ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
0x00000000000025e0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.text.libgcc.fixed
0x00000000000024ae 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
0x00000000000025e0 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.text.libgcc.mul
0x00000000000024ae 0x1e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
0x00000000000024ae __umulhisi3
0x00000000000025e0 0x1e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
0x00000000000025e0 __umulhisi3
.text.libgcc.div
0x00000000000024cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.libgcc 0x00000000000024cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.libgcc 0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.libgcc.prologue
0x00000000000024cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.libgcc.builtins
0x00000000000024cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.libgcc.fmul
0x00000000000024cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.libgcc.fixed
0x00000000000024cc 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
0x00000000000025fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.avr-libc
0x00000000000024cc 0x16 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
0x00000000000024cc strchr
0x00000000000025fe 0x242 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
0x00000000000025fe malloc
0x000000000000272e free
.text.avr-libc
0x00000000000024e2 0x1c /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
0x00000000000024e2 strncmp
0x00000000000024fe . = ALIGN (0x2)
0x0000000000002840 0x16 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
0x0000000000002840 strchr
.text.avr-libc
0x0000000000002856 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o)
0x0000000000002856 strcpy
.text.avr-libc
0x0000000000002864 0x1c /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
0x0000000000002864 strncmp
0x0000000000002880 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00000000000024fe 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
0x00000000000024fe exit
0x00000000000024fe _exit
.fini9 0x0000000000002880 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
0x0000000000002880 exit
0x0000000000002880 _exit
*(.fini9)
*(.fini8)
*(.fini8)
@ -616,96 +639,116 @@ END GROUP
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00000000000024fe 0x4 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.fini0 0x0000000000002880 0x4 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
*(.fini0)
0x0000000000002502 _etext = .
0x0000000000002884 _etext = .
.data 0x0000000000800100 0x10 load address 0x0000000000002502
.data 0x0000000000800100 0x16 load address 0x0000000000002884
0x0000000000800100 PROVIDE (__data_start, .)
*(.data)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
.data 0x0000000000800100 0x0 partition.o
.data 0x0000000000800100 0x0 sd_raw.o
.data 0x0000000000800100 0x0 byteordering.o
.data 0x0000000000800100 0x0 lcd.o
.data 0x0000000000800100 0x0 periph.o
.data 0x0000000000800100 0x0 fat.o
.data 0x0000000000800100 0x0 main.o
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
.data 0x0000000000800100 0x1 main.o
0x0000000000800100 song_selection
.data 0x0000000000800101 0x0 fifo.o
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.data 0x0000000000800101 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.data 0x0000000000800101 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
0x0000000000800101 __malloc_heap_end
0x0000000000800103 __malloc_heap_start
0x0000000000800105 __malloc_margin
.data 0x0000000000800107 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
.data 0x0000000000800107 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o)
.data 0x0000000000800107 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
*(.data*)
*(.rodata)
.rodata 0x0000000000800100 0xd fat.o
.rodata 0x0000000000800107 0xd fat.o
*(.rodata*)
.rodata.str1.1
0x000000000080010d 0x2 main.o
0x0000000000800114 0x2 main.o
*(.gnu.linkonce.d*)
0x0000000000800110 . = ALIGN (0x2)
*fill* 0x000000000080010f 0x1
0x0000000000800110 _edata = .
0x0000000000800110 PROVIDE (__data_end, .)
0x0000000000800116 . = ALIGN (0x2)
0x0000000000800116 _edata = .
0x0000000000800116 PROVIDE (__data_end, .)
.bss 0x0000000000800110 0xf5
0x0000000000800110 PROVIDE (__bss_start, .)
.bss 0x0000000000800116 0x53c
0x0000000000800116 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x0000000000800110 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
.bss 0x0000000000800110 0x11 partition.o
.bss 0x0000000000800121 0x1 sd_raw.o
.bss 0x0000000000800122 0x0 byteordering.o
.bss 0x0000000000800122 0x0 lcd.o
.bss 0x0000000000800122 0xe3 fat.o
.bss 0x0000000000800205 0x0 main.o
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
.bss 0x0000000000800205 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
.bss 0x0000000000800116 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
.bss 0x0000000000800116 0x11 partition.o
.bss 0x0000000000800127 0x1 sd_raw.o
.bss 0x0000000000800128 0x0 byteordering.o
.bss 0x0000000000800128 0x0 periph.o
.bss 0x0000000000800128 0xe3 fat.o
.bss 0x000000000080020b 0x1 main.o
0x000000000080020b cmd_depth
.bss 0x000000000080020c 0x1a fifo.o
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muldi3_6.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulsidi3.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashldi3.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ashrdi3.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_adddi3_s8.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_subdi3.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_cmpdi2_s8.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o)
.bss 0x0000000000800226 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
*(.bss*)
*(COMMON)
0x0000000000800205 PROVIDE (__bss_end, .)
0x0000000000002502 __data_load_start = LOADADDR (.data)
0x0000000000002512 __data_load_end = (__data_load_start + SIZEOF (.data))
COMMON 0x0000000000800226 0x428 main.o
0x0000000000800226 cmd_state
0x0000000000800227 song_buf
0x0000000000800627 song_buf_select
0x0000000000800628 song_selected
0x0000000000800629 songs
0x000000000080064d song_position
COMMON 0x000000000080064e 0x4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
0x000000000080064e __brkval
0x0000000000800650 __flp
0x0000000000800652 PROVIDE (__bss_end, .)
0x0000000000002884 __data_load_start = LOADADDR (.data)
0x000000000000289a __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0000000000800205 0x0
.noinit 0x0000000000800652 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
0x0000000000800205 _end = .
[!provide] PROVIDE (__heap_start, .)
0x0000000000800652 _end = .
0x0000000000800652 PROVIDE (__heap_start, .)
.eeprom 0x0000000000810000 0x0
*(.eeprom*)
@ -726,23 +769,25 @@ END GROUP
.user_signatures
*(.user_signatures*)
.stab 0x0000000000000000 0x4b3c
.stab 0x0000000000000000 0x4ab8
*(.stab)
.stab 0x0000000000000000 0x6e4 partition.o
.stab 0x00000000000006e4 0x129c sd_raw.o
0x144c (size before relaxing)
.stab 0x0000000000001980 0x414 byteordering.o
0x594 (size before relaxing)
.stab 0x0000000000001d94 0xe34 lcd.o
0x1008 (size before relaxing)
.stab 0x0000000000002bc8 0x1b0c fat.o
.stab 0x0000000000001d94 0x69c periph.o
0x8f4 (size before relaxing)
.stab 0x0000000000002430 0x1adc fat.o
0x1d28 (size before relaxing)
.stab 0x00000000000046d4 0x468 main.o
0x6fc (size before relaxing)
.stab 0x0000000000003f0c 0x750 main.o
0xab0 (size before relaxing)
.stab 0x000000000000465c 0x45c fifo.o
0x5f4 (size before relaxing)
.stabstr 0x0000000000000000 0x2390
.stabstr 0x0000000000000000 0x2638
*(.stabstr)
.stabstr 0x0000000000000000 0x2390 partition.o
.stabstr 0x0000000000000000 0x2638 partition.o
.stab.excl
*(.stab.excl)
@ -762,14 +807,16 @@ END GROUP
0x12 (size before relaxing)
.comment 0x0000000000000011 0x12 sd_raw.o
.comment 0x0000000000000011 0x12 byteordering.o
.comment 0x0000000000000011 0x12 lcd.o
.comment 0x0000000000000011 0x12 periph.o
.comment 0x0000000000000011 0x12 fat.o
.comment 0x0000000000000011 0x12 main.o
.comment 0x0000000000000011 0x12 fifo.o
.comment 0x0000000000000011 0x12 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
.note.gnu.avr.deviceinfo
0x0000000000000000 0x3c
0x0000000000000000 0x40
.note.gnu.avr.deviceinfo
0x0000000000000000 0x3c /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
0x0000000000000000 0x40 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
.note.gnu.build-id
*(.note.gnu.build-id)
@ -794,22 +841,22 @@ END GROUP
.debug_info 0x0000000000000000 0x5f4
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x0000000000000000 0x5f4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
.debug_info 0x0000000000000000 0x5f4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
.debug_abbrev 0x0000000000000000 0x5a2
*(.debug_abbrev)
.debug_abbrev 0x0000000000000000 0x5a2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
.debug_abbrev 0x0000000000000000 0x5a2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
.debug_line 0x0000000000000000 0x1a
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x0000000000000000 0x1a /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
.debug_line 0x0000000000000000 0x1a /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
.debug_frame
*(.debug_frame)
.debug_str 0x0000000000000000 0x208
*(.debug_str)
.debug_str 0x0000000000000000 0x208 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega168.o
.debug_str 0x0000000000000000 0x208 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
.debug_loc
*(.debug_loc)