<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>UbixOS V2: src/sys/lib/vsprintf.c File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main Page</span></a></li>
<li><a href="classes.html"><span>Data Structures</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
<li>
<form action="search.php" method="get">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><label> <u>S</u>earch for </label></td>
<td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
</tr>
</table>
</form>
</li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul></div>
<div class="nav">
<a class="el" href="dir_897b6a2d7bab147dd1db58381aad3984.html">src</a> » <a class="el" href="dir_832905b1f7f5feaf61a306b40c0ac817.html">sys</a> » <a class="el" href="dir_d9dcf62a8e8b4cc91cbf2445d76a799b.html">lib</a></div>
<h1>vsprintf.c File Reference</h1><code>#include <<a class="el" href="stdarg_8h-source.html">stdarg.h</a>></code><br>
<code>#include <<a class="el" href="lib_2string_8h-source.html">lib/string.h</a>></code><br>
<p>
Include dependency graph for vsprintf.c:<p><center><img src="vsprintf_8c__incl.png" border="0" usemap="#src/sys/lib/vsprintf.c_map" alt=""></center>
<map name="src/sys/lib/vsprintf.c_map">
<area href="stdarg_8h.html" shape="rect" coords="220,5,297,32" alt="">
<area href="lib_2string_8h.html" shape="rect" coords="212,56,305,83" alt="">
<area href="types_8h.html" shape="rect" coords="356,56,476,83" alt="">
<area href="__types_8h.html" shape="rect" coords="527,56,631,83" alt="">
</map>
<p>
<a href="vsprintf_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#71a962bd85fdfc754c583d48d47e2040">do_div</a>(n, base)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#2eb96152a52d739e41d16c53a2e419f3">is_digit</a>(c) ((c) >= '0' && (c) <= '9')</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#437ef08681e7210d6678427030446a54">LEFT</a> 16</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#0ea7ff5947c5f5430a29fdd98391eb2a">PLUS</a> 4</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#9576d2d6eb782d532607bac077e87892">SIGN</a> 2</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#09c78d2f8feb311dd9fc969a0bf84979">SMALL</a> 64</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#5ff6e798033f03e74730e99f01936f84">SPACE</a> 8</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#84acb423f634978b61ac46856de40a70">SPECIAL</a> 32</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#31373af6ef84e6fc25d9a9133522e4a6">ZEROPAD</a> 1</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static char * </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#c2f4c669c6f6aa6caa5ab8adb1b07dd0">number</a> (char *str, int num, int base, int size, int precision, int type)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#3fa7c8ef8597579301cb4b5c59bc6d9a">skip_atoi</a> (const char **s)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="vsprintf_8c.html#621577c2df0ad5faa281223c56eeb7a5">vsprintf</a> (char *<a class="el" href="structbuf.html">buf</a>, const char *fmt, <a class="el" href="stdarg_8h.html#661698386a304e27be00e5e9125a6ec5">vaList</a> args)</td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="71a962bd85fdfc754c583d48d47e2040"></a><!-- doxytag: member="vsprintf.c::do_div" ref="71a962bd85fdfc754c583d48d47e2040" args="(n, base)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define do_div </td>
<td>(</td>
<td class="paramtype">n, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">base </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment">({ \
<span class="keywordtype">int</span> __res; \
__asm__(<span class="stringliteral">"divl %4"</span>:<span class="stringliteral">"=a"</span> (n),<span class="stringliteral">"=d"</span> (__res):<span class="stringliteral">"0"</span> (n),<span class="stringliteral">"1"</span> (0),<span class="stringliteral">"r"</span> (base)); \
__res; })
</pre></div>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00079">79</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
Referenced by <a class="el" href="vsprintf_8c-source.html#l00084">number()</a>.
</div>
</div><p>
<a class="anchor" name="2eb96152a52d739e41d16c53a2e419f3"></a><!-- doxytag: member="vsprintf.c::is_digit" ref="2eb96152a52d739e41d16c53a2e419f3" args="(c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define is_digit </td>
<td>(</td>
<td class="paramtype">c </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> ((c) >= '0' && (c) <= '9')</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00060">60</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
Referenced by <a class="el" href="vsprintf_8c-source.html#l00062">skip_atoi()</a>, and <a class="el" href="vsprintf_8c-source.html#l00139">vsprintf()</a>.
</div>
</div><p>
<a class="anchor" name="437ef08681e7210d6678427030446a54"></a><!-- doxytag: member="vsprintf.c::LEFT" ref="437ef08681e7210d6678427030446a54" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LEFT 16 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00075">75</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
Referenced by <a class="el" href="vsprintf_8c-source.html#l00084">number()</a>, and <a class="el" href="vsprintf_8c-source.html#l00139">vsprintf()</a>.
</div>
</div><p>
<a class="anchor" name="0ea7ff5947c5f5430a29fdd98391eb2a"></a><!-- doxytag: member="vsprintf.c::PLUS" ref="0ea7ff5947c5f5430a29fdd98391eb2a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PLUS 4 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00073">73</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
Referenced by <a class="el" href="vsprintf_8c-source.html#l00084">number()</a>, and <a class="el" href="vsprintf_8c-source.html#l00139">vsprintf()</a>.
</div>
</div><p>
<a class="anchor" name="9576d2d6eb782d532607bac077e87892"></a><!-- doxytag: member="vsprintf.c::SIGN" ref="9576d2d6eb782d532607bac077e87892" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SIGN 2 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00072">72</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
Referenced by <a class="el" href="vsprintf_8c-source.html#l00084">number()</a>, and <a class="el" href="vsprintf_8c-source.html#l00139">vsprintf()</a>.
</div>
</div><p>
<a class="anchor" name="09c78d2f8feb311dd9fc969a0bf84979"></a><!-- doxytag: member="vsprintf.c::SMALL" ref="09c78d2f8feb311dd9fc969a0bf84979" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SMALL 64 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00077">77</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
Referenced by <a class="el" href="vsprintf_8c-source.html#l00084">number()</a>, and <a class="el" href="vsprintf_8c-source.html#l00139">vsprintf()</a>.
</div>
</div><p>
<a class="anchor" name="5ff6e798033f03e74730e99f01936f84"></a><!-- doxytag: member="vsprintf.c::SPACE" ref="5ff6e798033f03e74730e99f01936f84" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SPACE 8 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00074">74</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
Referenced by <a class="el" href="vsprintf_8c-source.html#l00084">number()</a>, and <a class="el" href="vsprintf_8c-source.html#l00139">vsprintf()</a>.
</div>
</div><p>
<a class="anchor" name="84acb423f634978b61ac46856de40a70"></a><!-- doxytag: member="vsprintf.c::SPECIAL" ref="84acb423f634978b61ac46856de40a70" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SPECIAL 32 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00076">76</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
Referenced by <a class="el" href="vsprintf_8c-source.html#l00084">number()</a>, and <a class="el" href="vsprintf_8c-source.html#l00139">vsprintf()</a>.
</div>
</div><p>
<a class="anchor" name="31373af6ef84e6fc25d9a9133522e4a6"></a><!-- doxytag: member="vsprintf.c::ZEROPAD" ref="31373af6ef84e6fc25d9a9133522e4a6" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ZEROPAD 1 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00071">71</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
Referenced by <a class="el" href="vsprintf_8c-source.html#l00084">number()</a>, and <a class="el" href="vsprintf_8c-source.html#l00139">vsprintf()</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="c2f4c669c6f6aa6caa5ab8adb1b07dd0"></a><!-- doxytag: member="vsprintf.c::number" ref="c2f4c669c6f6aa6caa5ab8adb1b07dd0" args="(char *str, int num, int base, int size, int precision, int type)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static char* number </td>
<td>(</td>
<td class="paramtype">char * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>precision</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>type</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00084">84</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
References <a class="el" href="vsprintf_8c-source.html#l00079">do_div</a>, <a class="el" href="vsprintf_8c-source.html#l00075">LEFT</a>, <a class="el" href="vsprintf_8c-source.html#l00073">PLUS</a>, <a class="el" href="vsprintf_8c-source.html#l00072">SIGN</a>, <a class="el" href="vsprintf_8c-source.html#l00077">SMALL</a>, <a class="el" href="vsprintf_8c-source.html#l00074">SPACE</a>, <a class="el" href="vsprintf_8c-source.html#l00076">SPECIAL</a>, and <a class="el" href="vsprintf_8c-source.html#l00071">ZEROPAD</a>.
<p>
Referenced by <a class="el" href="vsprintf_8c-source.html#l00139">vsprintf()</a>.
</div>
</div><p>
<a class="anchor" name="3fa7c8ef8597579301cb4b5c59bc6d9a"></a><!-- doxytag: member="vsprintf.c::skip_atoi" ref="3fa7c8ef8597579301cb4b5c59bc6d9a" args="(const char **s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static int skip_atoi </td>
<td>(</td>
<td class="paramtype">const char ** </td>
<td class="paramname"> <em>s</em> </td>
<td> ) </td>
<td width="100%"><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00062">62</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
References <a class="el" href="vsprintf_8c-source.html#l00060">is_digit</a>.
<p>
Referenced by <a class="el" href="vsprintf_8c-source.html#l00139">vsprintf()</a>.
</div>
</div><p>
<a class="anchor" name="621577c2df0ad5faa281223c56eeb7a5"></a><!-- doxytag: member="vsprintf.c::vsprintf" ref="621577c2df0ad5faa281223c56eeb7a5" args="(char *buf, const char *fmt, vaList args)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int vsprintf </td>
<td>(</td>
<td class="paramtype">char * </td>
<td class="paramname"> <em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>fmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="stdarg_8h.html#661698386a304e27be00e5e9125a6ec5">vaList</a> </td>
<td class="paramname"> <em>args</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="vsprintf_8c-source.html#l00139">139</a> of file <a class="el" href="vsprintf_8c-source.html">vsprintf.c</a>.
<p>
References <a class="el" href="vsprintf_8c-source.html#l00060">is_digit</a>, <a class="el" href="vsprintf_8c-source.html#l00075">LEFT</a>, <a class="el" href="vsprintf_8c-source.html#l00084">number()</a>, <a class="el" href="vsprintf_8c-source.html#l00073">PLUS</a>, <a class="el" href="vsprintf_8c-source.html#l00072">SIGN</a>, <a class="el" href="vsprintf_8c-source.html#l00062">skip_atoi()</a>, <a class="el" href="vsprintf_8c-source.html#l00077">SMALL</a>, <a class="el" href="vsprintf_8c-source.html#l00074">SPACE</a>, <a class="el" href="vsprintf_8c-source.html#l00076">SPECIAL</a>, <a class="el" href="strlen_8S-source.html#l00004">strlen</a>, <a class="el" href="stdarg_8h-source.html#l00038">vaArg</a>, and <a class="el" href="vsprintf_8c-source.html#l00071">ZEROPAD</a>.
<p>
Referenced by <a class="el" href="kpanic_8c-source.html#l00042">kpanic()</a>, <a class="el" href="kprintf_8c-source.html#l00038">kprintf()</a>, and <a class="el" href="kprintf_8c-source.html#l00051">sprintf()</a>.
<p>
Here is the call graph for this function:<p><center><img src="vsprintf_8c_621577c2df0ad5faa281223c56eeb7a5_cgraph.png" border="0" usemap="#vsprintf_8c_621577c2df0ad5faa281223c56eeb7a5_cgraph_map" alt=""></center>
<map name="vsprintf_8c_621577c2df0ad5faa281223c56eeb7a5_cgraph_map">
<area href="vsprintf_8c.html#c2f4c669c6f6aa6caa5ab8adb1b07dd0" shape="rect" coords="132,5,207,32" alt="">
<area href="vsprintf_8c.html#3fa7c8ef8597579301cb4b5c59bc6d9a" shape="rect" coords="129,56,209,83" alt="">
</map>
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 15 11:24:55 2006 for UbixOS V2 by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>