Sophie

Sophie

distrib > * > cooker > x86_64 > by-pkgid > 12036146830596fff8a6e80859ec761e > files > 12

lib64njb-devel-2.2.6-9.x86_64.rpm

<!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"/>
<title>libnjb: /home/mandrake/rpm/BUILD/libnjb-2.2.6/src/byteorder.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libnjb&#160;<span id="projectnumber">2.2.6</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <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>
      <li><a href="dirs.html"><span>Directories</span></a></li>
      <li><a href="examples.html"><span>Examples</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 id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="dir_c382854adf3ac0f9f97376793a1b657b.html">src</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>byteorder.c File Reference</h1>  </div>
</div>
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="libnjb_8h_source.html">libnjb.h</a>&quot;</code><br/>
<code>#include &quot;byteorder.h&quot;</code><br/>
</div><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">u_int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#a493611d5663d3a79767c8a11b7b601e7">njb1_bytes_to_64bit</a> (unsigned char *dp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#a83b8d3a440aa6cdc77b5c47989664a23">from_64bit_to_njb1_bytes</a> (u_int64_t val, unsigned char *dp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u_int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#afc49aa397ec35bd1d608d2afbdfeded1">njb1_bytes_to_32bit</a> (unsigned char *dp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u_int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#a618da9efc31dbc8fd27fd163d8555c47">njb3_bytes_to_32bit</a> (unsigned char *dp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#a8eb4ff18d984c00c4de64215e8ec56c3">from_32bit_to_njb1_bytes</a> (u_int32_t val, unsigned char *dp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#a4380f8c5e2841f39c2f63ce44d64df59">from_32bit_to_njb3_bytes</a> (u_int32_t val, unsigned char *dp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u_int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#a77340c095fa6b6b32bea9f4132fc4081">njb1_bytes_to_16bit</a> (unsigned char *dp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u_int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#acb74cfe4128d22e25013ed54b85a8d59">njb3_bytes_to_16bit</a> (unsigned char *dp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#a922262997ca997a6645fb232e7d6c162">from_16bit_to_njb1_bytes</a> (u_int16_t val, unsigned char *dp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#a3cb7e2df65722e11213de39bb33c1e8e">from_16bit_to_njb3_bytes</a> (u_int16_t val, unsigned char *dp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u_int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#ab259a2303e1a85bf3c3161320b6dda76">get_msw</a> (u_int32_t word)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u_int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#aa36e256b25dc9e80fd2e96c14c1bbc40">get_lsw</a> (u_int32_t word)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">u_int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#a428a14a634698eba1847192eb9809d29">make64</a> (u_int32_t msdw, u_int32_t lsdw)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byteorder_8c.html#a2beb0d0d1eec2c4ab14a7deda8616f86">split64</a> (u_int64_t num, u_int32_t *msdw, u_int32_t *lsdw)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>We want libnjb to be "endianness agnostic" i.e. the byte-ordering of the libnjb host platform shall not affect its functionality. These routines are written using shifting and byte operations that will produce the same result regardless of whether the host platform is little-endian, big-endian or even mixed-endian.</p>
<p>NJB1 and the "series 3 family" (NJB2, NJB3, NJB Zen, NJB Zen 2.0) have different byte ordering. NJB1 is essentially big-endian, and the series 3 family little-endian. The terminology could be confusing, so we refer to the different endiannesses as "njb1-endian" and "njb3-endian". </p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a922262997ca997a6645fb232e7d6c162"></a><!-- doxytag: member="byteorder.c::from_16bit_to_njb1_bytes" ref="a922262997ca997a6645fb232e7d6c162" args="(u_int16_t val, unsigned char *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void from_16bit_to_njb1_bytes </td>
          <td>(</td>
          <td class="paramtype">u_int16_t&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>dp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function will write the <code>u_int16_t</code> of the host platform, <code>val</code> as 2 NJB1-endian bytes beginning at the first byte in the byte array pointed to by <code>*dp</code>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>the unsigned 16 bit integer to convert to bytes </td></tr>
    <tr><td class="paramname">dp</td><td>a pointer to the byte array (of atleast 2 bytes) that shall hold the resulting bytes </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="datafile_8c.html#aa580707078938ef2447d971a96638ce3">datafile_pack()</a>, <a class="el" href="songid_8c.html#a1dcd88c13e7b209d9a5b6e31e71ff6e6">songid_pack()</a>, and <a class="el" href="njbtime_8c.html#a4f7a29c170277b10b63863b19d5d70d3">time_pack()</a>.</p>

</div>
</div>
<a class="anchor" id="a3cb7e2df65722e11213de39bb33c1e8e"></a><!-- doxytag: member="byteorder.c::from_16bit_to_njb3_bytes" ref="a3cb7e2df65722e11213de39bb33c1e8e" args="(u_int16_t val, unsigned char *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void from_16bit_to_njb3_bytes </td>
          <td>(</td>
          <td class="paramtype">u_int16_t&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>dp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function will write the <code>u_int16_t</code> of the host platform, <code>val</code> as 2 series 3-endian bytes beginning at the first byte in the byte array pointed to by <code>*dp</code>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>the unsigned 16 bit integer to convert to bytes </td></tr>
    <tr><td class="paramname">dp</td><td>a pointer to the byte array (of atleast 2 bytes) that shall hold the resulting bytes </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="datafile_8c.html#afc23fcd58e9e846ae7aa4ff500f5b198">datafile_pack3()</a>, <a class="el" href="datafile_8c.html#aa7ca666051692a0e0c2b458366e8fcf9">new_folder_pack3()</a>, <a class="el" href="protocol3_8h.html#a120bb9ef7afb94102b2e1f29515de0dd">njb3_add_multiple_tracks_to_playlist()</a>, <a class="el" href="protocol3_8h.html#a6fe00399de0e30cfd70220b28c49e781">njb3_control_eax_processor()</a>, <a class="el" href="protocol3_8h.html#a91831b3fc1d2c5ccafd2f62629733074">njb3_create_playlist()</a>, <a class="el" href="protocol3_8h.html#a22acc85e6102a1192c59c481d20b07aa">njb3_set_bitmap()</a>, <a class="el" href="protocol3_8h.html#a37d979a879932b2fe83ada01e5bc1f0b">njb3_update_16bit_frame()</a>, <a class="el" href="protocol3_8h.html#af4c77c8c12bea8f1a8c125e70019d5c1">njb3_update_string_frame()</a>, and <a class="el" href="songid_8c.html#a4a04f572c79d5f5c4b813ba8c1932f6b">songid_pack3()</a>.</p>

</div>
</div>
<a class="anchor" id="a8eb4ff18d984c00c4de64215e8ec56c3"></a><!-- doxytag: member="byteorder.c::from_32bit_to_njb1_bytes" ref="a8eb4ff18d984c00c4de64215e8ec56c3" args="(u_int32_t val, unsigned char *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void from_32bit_to_njb1_bytes </td>
          <td>(</td>
          <td class="paramtype">u_int32_t&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>dp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function will write the <code>u_int32_t</code> of the host platform, <code>val</code> as 4 NJB1-endian bytes beginning at the first byte in the byte array pointed to by <code>*dp</code>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>the unsigned 32 bit integer to convert to bytes </td></tr>
    <tr><td class="paramname">dp</td><td>a pointer to the byte array (of atleast 4 bytes) that shall hold the resulting bytes </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="protocol_8c.html#afe8b51e10cf1a2a5d313a4c273133278">njb_read_eaxtypes()</a>, <a class="el" href="protocol_8c.html#af1b5132b6c3f0c9f408a77cdc5e64f58">njb_receive_file_block()</a>, and <a class="el" href="songid_8c.html#a1dcd88c13e7b209d9a5b6e31e71ff6e6">songid_pack()</a>.</p>

</div>
</div>
<a class="anchor" id="a4380f8c5e2841f39c2f63ce44d64df59"></a><!-- doxytag: member="byteorder.c::from_32bit_to_njb3_bytes" ref="a4380f8c5e2841f39c2f63ce44d64df59" args="(u_int32_t val, unsigned char *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void from_32bit_to_njb3_bytes </td>
          <td>(</td>
          <td class="paramtype">u_int32_t&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>dp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function will write the <code>u_int32_t</code> of the host platform, <code>val</code> as 4 series 3-endian bytes beginning at the first byte in the byte array pointed to by <code>*dp</code>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>the unsigned 32 bit integer to convert to bytes </td></tr>
    <tr><td class="paramname">dp</td><td>a pointer to the byte array (of atleast 4 bytes) that shall hold the resulting bytes </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="datafile_8c.html#afc23fcd58e9e846ae7aa4ff500f5b198">datafile_pack3()</a>, <a class="el" href="datafile_8c.html#aa7ca666051692a0e0c2b458366e8fcf9">new_folder_pack3()</a>, <a class="el" href="protocol3_8h.html#a120bb9ef7afb94102b2e1f29515de0dd">njb3_add_multiple_tracks_to_playlist()</a>, <a class="el" href="protocol3_8h.html#aea0edf60a976fbe68c0fd3e0aae10984">njb3_announce_firmware()</a>, <a class="el" href="protocol3_8h.html#a956618fea29be076067bf608190398bf">njb3_request_file_chunk()</a>, <a class="el" href="protocol3_8h.html#a22acc85e6102a1192c59c481d20b07aa">njb3_set_bitmap()</a>, <a class="el" href="protocol3_8h.html#a37d979a879932b2fe83ada01e5bc1f0b">njb3_update_16bit_frame()</a>, <a class="el" href="protocol3_8h.html#af4c77c8c12bea8f1a8c125e70019d5c1">njb3_update_string_frame()</a>, <a class="el" href="protocol3_8h.html#aed7061feb344ae07fa2121e19332e280">njb3_update_tag()</a>, and <a class="el" href="songid_8c.html#a4a04f572c79d5f5c4b813ba8c1932f6b">songid_pack3()</a>.</p>

</div>
</div>
<a class="anchor" id="a83b8d3a440aa6cdc77b5c47989664a23"></a><!-- doxytag: member="byteorder.c::from_64bit_to_njb1_bytes" ref="a83b8d3a440aa6cdc77b5c47989664a23" args="(u_int64_t val, unsigned char *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void from_64bit_to_njb1_bytes </td>
          <td>(</td>
          <td class="paramtype">u_int64_t&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>dp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function will write the <code>u_int64_t</code> of the host platform, <code>val</code> as NJB1-endian bytes beginning at the first byte in the byte array pointed to by <code>*dp</code>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">val</td><td>the unsigned 64 bit integer to convert to bytes </td></tr>
    <tr><td class="paramname">dp</td><td>a pointer to the byte array (of atleast 8 bytes) that shall hold the resulting bytes </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="datafile_8c.html#aa580707078938ef2447d971a96638ce3">datafile_pack()</a>, and <a class="el" href="protocol_8c.html#a1d6bdb13a1de6c49b04a081502bcf9d4">njb_set_library_counter()</a>.</p>

</div>
</div>
<a class="anchor" id="aa36e256b25dc9e80fd2e96c14c1bbc40"></a><!-- doxytag: member="byteorder.c::get_lsw" ref="aa36e256b25dc9e80fd2e96c14c1bbc40" args="(u_int32_t word)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int16_t get_lsw </td>
          <td>(</td>
          <td class="paramtype">u_int32_t&#160;</td>
          <td class="paramname"><em>word</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This simply extract the least significant 16 bit parts of a 32 bit word.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">word</td><td>the 32 bit word to get the least significant 16 bits for </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the least significant 16 bits as a 16 bit unsigned integer </dd></dl>

</div>
</div>
<a class="anchor" id="ab259a2303e1a85bf3c3161320b6dda76"></a><!-- doxytag: member="byteorder.c::get_msw" ref="ab259a2303e1a85bf3c3161320b6dda76" args="(u_int32_t word)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int16_t get_msw </td>
          <td>(</td>
          <td class="paramtype">u_int32_t&#160;</td>
          <td class="paramname"><em>word</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This simply extract the most significant 16 bit parts of a 32 bit word.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">word</td><td>the 32 bit word to get the most significant 16 bits for </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the most significant 16 bits as a 16 bit unsigned integer </dd></dl>

</div>
</div>
<a class="anchor" id="a428a14a634698eba1847192eb9809d29"></a><!-- doxytag: member="byteorder.c::make64" ref="a428a14a634698eba1847192eb9809d29" args="(u_int32_t msdw, u_int32_t lsdw)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int64_t make64 </td>
          <td>(</td>
          <td class="paramtype">u_int32_t&#160;</td>
          <td class="paramname"><em>msdw</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int32_t&#160;</td>
          <td class="paramname"><em>lsdw</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Create a 64 bit unsigned integer from two 32 bit integers representing the most/least significant part of it.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">msdw</td><td>the most significant 32 bits </td></tr>
    <tr><td class="paramname">lsdw</td><td>the least significant 32 bits </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a 64 bit unsigned integer made by joining the two parts </dd></dl>

</div>
</div>
<a class="anchor" id="a77340c095fa6b6b32bea9f4132fc4081"></a><!-- doxytag: member="byteorder.c::njb1_bytes_to_16bit" ref="a77340c095fa6b6b32bea9f4132fc4081" args="(unsigned char *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int16_t njb1_bytes_to_16bit </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>dp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function will take 2 bytes from the NJB1-endian byte array pointed to by <code>*dp</code> and transform it to <code>a u_int16_t</code> unsigned 16 bit integer on the host platform.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dp</td><td>a pointer to the 2 raw bytes in NJB1 endianness to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an unsigned 16 bit integer </dd></dl>

<p>Referenced by <a class="el" href="datafile_8c.html#aa0767790f814895d8ddc310d933fb011">datafile_unpack()</a>, <a class="el" href="eax_8c.html#a618df2014818da5cdef1764186d825e6">eax_unpack()</a>, <a class="el" href="playlist_8c.html#a696ec1b911d19920b16b51d865a933f8">playlist_unpack()</a>, <a class="el" href="songid_8c.html#ab4fd686d31cb66af604ab8cd1b285046">songid_unpack()</a>, and <a class="el" href="njbtime_8c.html#a1592d006e576ff1ccfeca9ff283773f6">time_unpack()</a>.</p>

</div>
</div>
<a class="anchor" id="afc49aa397ec35bd1d608d2afbdfeded1"></a><!-- doxytag: member="byteorder.c::njb1_bytes_to_32bit" ref="afc49aa397ec35bd1d608d2afbdfeded1" args="(unsigned char *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int32_t njb1_bytes_to_32bit </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>dp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function will take 4 bytes from the NJB1-endian byte array pointed to by <code>*dp</code> and transform it to a <code>u_int32_t</code> on the host platform.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dp</td><td>a pointer to the 4 raw bytes in NJB1 endianness to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an unsigned 32 bit integer </dd></dl>

<p>Referenced by <a class="el" href="protocol_8c.html#a1bd23c272154f003bd55075b352be5fc">njb_get_datafile_header()</a>, <a class="el" href="protocol_8c.html#afb3d4c4e2f9fe7de9786aa47bc92da12">njb_get_playlist_header()</a>, <a class="el" href="protocol_8c.html#ab71c71bdf6131d176ad3572e72ef190b">njb_get_track_tag_header()</a>, <a class="el" href="protocol_8c.html#afe8b51e10cf1a2a5d313a4c273133278">njb_read_eaxtypes()</a>, <a class="el" href="playlist_8c.html#a696ec1b911d19920b16b51d865a933f8">playlist_unpack()</a>, and <a class="el" href="songid_8c.html#ab4fd686d31cb66af604ab8cd1b285046">songid_unpack()</a>.</p>

</div>
</div>
<a class="anchor" id="a493611d5663d3a79767c8a11b7b601e7"></a><!-- doxytag: member="byteorder.c::njb1_bytes_to_64bit" ref="a493611d5663d3a79767c8a11b7b601e7" args="(unsigned char *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int64_t njb1_bytes_to_64bit </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>dp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function will take 8 bytes from the njb1-endian byte array pointed to by <code>*dp</code> and transform it to a <code>u_int64_t</code> on the host platform.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dp</td><td>a pointer to the 8 raw bytes in NJB1 endianness to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an unsigned 64 bit integer </dd></dl>

<p>Referenced by <a class="el" href="datafile_8c.html#aa0767790f814895d8ddc310d933fb011">datafile_unpack()</a>, <a class="el" href="protocol_8c.html#a7f0a8d1560f23483fe722fb51f634fe8">njb_get_disk_usage()</a>, and <a class="el" href="protocol_8c.html#ad4c55baa3faa179396f2f76ce9fbd5ca">njb_get_library_counter()</a>.</p>

</div>
</div>
<a class="anchor" id="acb74cfe4128d22e25013ed54b85a8d59"></a><!-- doxytag: member="byteorder.c::njb3_bytes_to_16bit" ref="acb74cfe4128d22e25013ed54b85a8d59" args="(unsigned char *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int16_t njb3_bytes_to_16bit </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>dp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function will take 2 bytes from the series 3-endian byte array pointed to by <code>*dp</code> and transform it to <code>a u_int16_t</code> unsigned 16 bit integer on the host platform.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dp</td><td>a pointer to the 2 raw bytes in series 3 endianness to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an unsigned 16 bit integer </dd></dl>

<p>Referenced by <a class="el" href="protocol3_8h.html#a120bb9ef7afb94102b2e1f29515de0dd">njb3_add_multiple_tracks_to_playlist()</a>, <a class="el" href="protocol3_8h.html#a91831b3fc1d2c5ccafd2f62629733074">njb3_create_playlist()</a>, <a class="el" href="protocol3_8h.html#a11ff9d3e1e3a638168f290e68f6a8a20">njb3_get_codecs()</a>, <a class="el" href="protocol3_8h.html#a01ddb94dde9f1369519cea9159947291">njb3_power_status()</a>, and <a class="el" href="protocol3_8h.html#a956618fea29be076067bf608190398bf">njb3_request_file_chunk()</a>.</p>

</div>
</div>
<a class="anchor" id="a618da9efc31dbc8fd27fd163d8555c47"></a><!-- doxytag: member="byteorder.c::njb3_bytes_to_32bit" ref="a618da9efc31dbc8fd27fd163d8555c47" args="(unsigned char *dp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int32_t njb3_bytes_to_32bit </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>dp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function will take 4 bytes from the series 3-endian byte array pointed to by <code>*dp</code> and transform it to a <code>u_int32_t</code> on the host platform.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dp</td><td>a pointer to the 4 raw bytes in series 3 endianness to convert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an unsigned 32 bit integer </dd></dl>

<p>Referenced by <a class="el" href="protocol3_8h.html#a120bb9ef7afb94102b2e1f29515de0dd">njb3_add_multiple_tracks_to_playlist()</a>, <a class="el" href="protocol3_8h.html#a91831b3fc1d2c5ccafd2f62629733074">njb3_create_playlist()</a>, and <a class="el" href="protocol3_8h.html#a956618fea29be076067bf608190398bf">njb3_request_file_chunk()</a>.</p>

</div>
</div>
<a class="anchor" id="a2beb0d0d1eec2c4ab14a7deda8616f86"></a><!-- doxytag: member="byteorder.c::split64" ref="a2beb0d0d1eec2c4ab14a7deda8616f86" args="(u_int64_t num, u_int32_t *msdw, u_int32_t *lsdw)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void split64 </td>
          <td>(</td>
          <td class="paramtype">u_int64_t&#160;</td>
          <td class="paramname"><em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int32_t *&#160;</td>
          <td class="paramname"><em>msdw</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u_int32_t *&#160;</td>
          <td class="paramname"><em>lsdw</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Split a 64 bit unsigned integer into two unsigned 32 bit integer representing the most/least significant 32 bits of the incoming 64 bit integer.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">num</td><td>the 64 bit integer to split </td></tr>
    <tr><td class="paramname">msdw</td><td>a pointer to the 32 bit integer that shall hold the most significant 32 bits of the 64 bit integer </td></tr>
    <tr><td class="paramname">lsdw</td><td>a pointer to the 32 bit integer that shall hold the least significant 32 bits of the 64 bit integer </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Mon May 2 2011 06:05:24 for libnjb by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>