Sophie

Sophie

distrib > CentOS > 5 > i386 > media > os > by-pkgid > 608068f228165b6e5a4f2c11fda54521 > files > 580

rpm-apidocs-4.4.2.3-34.el5.i386.rpm

<!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>rpm: rpmio/rpmio_internal.h Source File</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="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<h1>rpmio/rpmio_internal.h</h1><a href="rpmio__internal_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef H_RPMIO_INTERNAL</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define H_RPMIO_INTERNAL</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00009"></a>00009 <span class="preprocessor">#include &lt;<a class="code" href="rpmio_8h.html">rpmio.h</a>&gt;</span>
<a name="l00010"></a>00010 <span class="preprocessor">#include &lt;<a class="code" href="rpmurl_8h.html">rpmurl.h</a>&gt;</span>
<a name="l00011"></a>00011 
<a name="l00012"></a>00012 <span class="preprocessor">#include &lt;<a class="code" href="rpmpgp_8h.html">rpmpgp.h</a>&gt;</span>
<a name="l00013"></a>00013 <span class="preprocessor">#include &lt;<a class="code" href="rpmsw_8h.html">rpmsw.h</a>&gt;</span>
<a name="l00014"></a>00014 <span class="preprocessor">#include &lt;base64.h&gt;</span>
<a name="l00015"></a>00015 
<a name="l00016"></a>00016 <span class="preprocessor">#include "nss.h"</span>
<a name="l00017"></a>00017 <span class="preprocessor">#include "sechash.h"</span>
<a name="l00018"></a>00018 <span class="preprocessor">#include "keyhi.h"</span>
<a name="l00019"></a>00019 <span class="preprocessor">#include "cryptohi.h"</span>
<a name="l00020"></a>00020 
<a name="l00024"></a><a class="code" href="structpgpDigParams__s.html">00024</a> <span class="keyword">struct </span><a class="code" href="structpgpDigParams__s.html">pgpDigParams_s</a> {
<a name="l00025"></a>00025 <span class="comment">/*@only@*/</span> <span class="comment">/*@null@*/</span>
<a name="l00026"></a><a class="code" href="structpgpDigParams__s.html#a9bca557ea6439de80c84ebbf5ca7730">00026</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structpgpDigParams__s.html#a9bca557ea6439de80c84ebbf5ca7730">userid</a>;
<a name="l00027"></a>00027 <span class="comment">/*@only@*/</span> <span class="comment">/*@null@*/</span>
<a name="l00028"></a><a class="code" href="structpgpDigParams__s.html#223724f41ce08e24de161e2133faf787">00028</a>     <span class="keyword">const</span> <a class="code" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> * <a class="code" href="structpgpDigParams__s.html#223724f41ce08e24de161e2133faf787">hash</a>;
<a name="l00029"></a><a class="code" href="structpgpDigParams__s.html#747e7ebb47436345cde2ea2f1d2acd5b">00029</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structpgpDigParams__s.html#747e7ebb47436345cde2ea2f1d2acd5b">params</a>[4];
<a name="l00030"></a><a class="code" href="structpgpDigParams__s.html#7b0a54cc7f3a51c316bbe390649543b0">00030</a>     <a class="code" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> <a class="code" href="structpgpDigParams__s.html#7b0a54cc7f3a51c316bbe390649543b0">tag</a>;
<a name="l00031"></a>00031 
<a name="l00032"></a><a class="code" href="structpgpDigParams__s.html#9e27897366b81022dea600c4dbc69fd1">00032</a>     <a class="code" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> <a class="code" href="structpgpDigParams__s.html#9e27897366b81022dea600c4dbc69fd1">version</a>;               
<a name="l00033"></a><a class="code" href="structpgpDigParams__s.html#1e80e26f9a831772851a5103a56b7b47">00033</a>     <a class="code" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> <a class="code" href="structpgpDigParams__s.html#1e80e26f9a831772851a5103a56b7b47">time</a>[4];               
<a name="l00034"></a><a class="code" href="structpgpDigParams__s.html#91db52d3177e0980b2feb221f8437cae">00034</a>     <a class="code" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> <a class="code" href="structpgpDigParams__s.html#91db52d3177e0980b2feb221f8437cae">pubkey_algo</a>;           
<a name="l00036"></a><a class="code" href="structpgpDigParams__s.html#845361657400bd6ae9c792664bc43569">00036</a>     <a class="code" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> <a class="code" href="structpgpDigParams__s.html#845361657400bd6ae9c792664bc43569">hash_algo</a>;
<a name="l00037"></a><a class="code" href="structpgpDigParams__s.html#ec2d8f110e1ad01bc9d034435bb0ec30">00037</a>     <a class="code" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> <a class="code" href="structpgpDigParams__s.html#ec2d8f110e1ad01bc9d034435bb0ec30">sigtype</a>;
<a name="l00038"></a><a class="code" href="structpgpDigParams__s.html#6a4f426c2eb187370e0141bb2a24e5fa">00038</a>     <a class="code" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> <a class="code" href="structpgpDigParams__s.html#6a4f426c2eb187370e0141bb2a24e5fa">hashlen</a>;
<a name="l00039"></a><a class="code" href="structpgpDigParams__s.html#103f364f47fa02bc535326e6e4d3d666">00039</a>     <a class="code" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> <a class="code" href="structpgpDigParams__s.html#103f364f47fa02bc535326e6e4d3d666">signhash16</a>[2];
<a name="l00040"></a><a class="code" href="structpgpDigParams__s.html#0fb7d8a42809a08967465ed01875c731">00040</a>     <a class="code" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> <a class="code" href="structpgpDigParams__s.html#0fb7d8a42809a08967465ed01875c731">signid</a>[8];
<a name="l00041"></a><a class="code" href="structpgpDigParams__s.html#d3e7a6f11bde842f8e6fbde3a14ff0a8">00041</a>     <a class="code" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> <a class="code" href="structpgpDigParams__s.html#d3e7a6f11bde842f8e6fbde3a14ff0a8">saved</a>;
<a name="l00042"></a><a class="code" href="rpmio__internal_8h.html#9f6d207d5207ffb205192eb6cb2b9e1e">00042</a> <span class="preprocessor">#define PGPDIG_SAVED_TIME       (1 &lt;&lt; 0)</span>
<a name="l00043"></a><a class="code" href="rpmio__internal_8h.html#d9c08d5799bcf9e5c331efe886f0cc48">00043</a> <span class="preprocessor"></span><span class="preprocessor">#define PGPDIG_SAVED_ID         (1 &lt;&lt; 1)</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span>
<a name="l00045"></a>00045 };
<a name="l00046"></a>00046 
<a name="l00050"></a><a class="code" href="structpgpDig__s.html">00050</a> <span class="keyword">struct </span><a class="code" href="structpgpDig__s.html">pgpDig_s</a> {
<a name="l00051"></a><a class="code" href="structpgpDig__s.html#28ff551e61329f6f14d87bbabd44d716">00051</a>     <span class="keyword">struct </span><a class="code" href="structpgpDigParams__s.html">pgpDigParams_s</a> <a class="code" href="structpgpDig__s.html#28ff551e61329f6f14d87bbabd44d716">signature</a>;
<a name="l00052"></a><a class="code" href="structpgpDig__s.html#4aa8411e0e43389e0fbfb64560783759">00052</a>     <span class="keyword">struct </span><a class="code" href="structpgpDigParams__s.html">pgpDigParams_s</a> <a class="code" href="structpgpDig__s.html#4aa8411e0e43389e0fbfb64560783759">pubkey</a>;
<a name="l00053"></a>00053 
<a name="l00054"></a><a class="code" href="structpgpDig__s.html#477c62388c8c4033391b464cce80e7ab">00054</a>     size_t <a class="code" href="structpgpDig__s.html#477c62388c8c4033391b464cce80e7ab">nbytes</a>;              
<a name="l00056"></a>00056 <span class="comment">/*@only@*/</span> <span class="comment">/*@null@*/</span>
<a name="l00057"></a><a class="code" href="structpgpDig__s.html#cbed880f589f34347221e0d95aa17683">00057</a>     <a class="code" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> <a class="code" href="structpgpDig__s.html#cbed880f589f34347221e0d95aa17683">sha1ctx</a>;         
<a name="l00058"></a>00058 <span class="comment">/*@only@*/</span> <span class="comment">/*@null@*/</span>
<a name="l00059"></a><a class="code" href="structpgpDig__s.html#ca4c6a75da58d4a4a437f1be969a72f4">00059</a>     <a class="code" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> <a class="code" href="structpgpDig__s.html#ca4c6a75da58d4a4a437f1be969a72f4">hdrsha1ctx</a>;      
<a name="l00060"></a>00060 <span class="comment">/*@only@*/</span> <span class="comment">/*@null@*/</span>
<a name="l00061"></a><a class="code" href="structpgpDig__s.html#b06b79572a0b8bca891d2ceb98095923">00061</a>     <span class="keywordtype">void</span> * <a class="code" href="structpgpDig__s.html#b06b79572a0b8bca891d2ceb98095923">sha1</a>;                
<a name="l00062"></a><a class="code" href="structpgpDig__s.html#49c29bb94e65f8bd1faf82d9f206cf70">00062</a>     size_t <a class="code" href="structpgpDig__s.html#49c29bb94e65f8bd1faf82d9f206cf70">sha1len</a>;             
<a name="l00064"></a>00064 <span class="comment">/*@only@*/</span> <span class="comment">/*@null@*/</span>
<a name="l00065"></a><a class="code" href="structpgpDig__s.html#304c8b883f9feb95856a37d5e0665225">00065</a>     <a class="code" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> <a class="code" href="structpgpDig__s.html#304c8b883f9feb95856a37d5e0665225">md5ctx</a>;          
<a name="l00066"></a>00066 <span class="comment">/*@only@*/</span> <span class="comment">/*@null@*/</span>
<a name="l00067"></a><a class="code" href="structpgpDig__s.html#38aebd646b5be4c6ccab406d7789e429">00067</a>     <a class="code" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> <a class="code" href="structpgpDig__s.html#38aebd646b5be4c6ccab406d7789e429">hdrmd5ctx</a>;       
<a name="l00068"></a>00068 <span class="comment">/*@only@*/</span> <span class="comment">/*@null@*/</span>
<a name="l00069"></a><a class="code" href="structpgpDig__s.html#18b5a4d55f8e7d388994f305633e8a47">00069</a>     <span class="keywordtype">void</span> * <a class="code" href="structpgpDig__s.html#18b5a4d55f8e7d388994f305633e8a47">md5</a>;                 
<a name="l00070"></a><a class="code" href="structpgpDig__s.html#c631fbf8c0446901199c41e5110c55f8">00070</a>     size_t <a class="code" href="structpgpDig__s.html#c631fbf8c0446901199c41e5110c55f8">md5len</a>;              
<a name="l00072"></a>00072     <span class="comment">/* DSA parameters */</span>
<a name="l00073"></a><a class="code" href="structpgpDig__s.html#bb93454a7c4725110bdf5375d42042eb">00073</a>     SECKEYPublicKey *<a class="code" href="structpgpDig__s.html#bb93454a7c4725110bdf5375d42042eb">dsa</a>;
<a name="l00074"></a><a class="code" href="structpgpDig__s.html#af40c3987529d6eb8bf4ab26a58ba5bf">00074</a>     SECItem *<a class="code" href="structpgpDig__s.html#af40c3987529d6eb8bf4ab26a58ba5bf">dsasig</a>;
<a name="l00075"></a>00075 
<a name="l00076"></a>00076     <span class="comment">/* RSA parameters */</span>
<a name="l00077"></a><a class="code" href="structpgpDig__s.html#957b43d567ee6a9ce899cd761cf3c3d2">00077</a>     SECKEYPublicKey *<a class="code" href="structpgpDig__s.html#957b43d567ee6a9ce899cd761cf3c3d2">rsa</a>;
<a name="l00078"></a><a class="code" href="structpgpDig__s.html#55b9b13d4560190ac6ac35f6a62e03dc">00078</a>     SECItem *<a class="code" href="structpgpDig__s.html#55b9b13d4560190ac6ac35f6a62e03dc">rsasig</a>;
<a name="l00079"></a>00079 };
<a name="l00080"></a>00080 
<a name="l00083"></a><a class="code" href="struct__FDSTACK__s.html">00083</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__FDSTACK__s.html">_FDSTACK_s</a> {
<a name="l00084"></a>00084 <span class="comment">/*@exposed@*/</span>
<a name="l00085"></a><a class="code" href="struct__FDSTACK__s.html#3fd9ef986bd0ec66c592db3364764f40">00085</a>     <a class="code" href="structFDIO__s.html">FDIO_t</a>              <a class="code" href="struct__FDSTACK__s.html#3fd9ef986bd0ec66c592db3364764f40">io</a>;
<a name="l00086"></a>00086 <span class="comment">/*@dependent@*/</span>
<a name="l00087"></a><a class="code" href="struct__FDSTACK__s.html#313ebfa6f397f0b45ca4e9c7b67ca4d0">00087</a>     <span class="keywordtype">void</span> *              <a class="code" href="struct__FDSTACK__s.html#313ebfa6f397f0b45ca4e9c7b67ca4d0">fp</a>;
<a name="l00088"></a><a class="code" href="struct__FDSTACK__s.html#179b6c8e533a7c0db5d0ef372445ad87">00088</a>     <span class="keywordtype">int</span>                 <a class="code" href="struct__FDSTACK__s.html#179b6c8e533a7c0db5d0ef372445ad87">fdno</a>;
<a name="l00089"></a>00089 } <a class="code" href="struct__FDSTACK__s.html">FDSTACK_t</a>;
<a name="l00090"></a>00090 
<a name="l00094"></a><a class="code" href="group__rpmio.html#g3f29a6d794c5c4d3283466f388021181">00094</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="group__rpmio.html#g3f29a6d794c5c4d3283466f388021181">fdOpX_e</a> {
<a name="l00095"></a>00095     <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f38802118184d3d23af13a1d2041439b1fbb993f17">FDSTAT_READ</a>         = 0,    
<a name="l00096"></a>00096     <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f3880211819593c6dfbeef1a48cd73037fccd950c3">FDSTAT_WRITE</a>        = 1,    
<a name="l00097"></a>00097     <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f3880211817cf4151892b60e1cd9cfdafb13e7aa16">FDSTAT_SEEK</a>         = 2,    
<a name="l00098"></a>00098     <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181d51ed17b1e1a7a8d9156a3305a80ab9d">FDSTAT_CLOSE</a>        = 3,    
<a name="l00099"></a>00099     <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181f418a78e4290c0f2e2b0ab16abd2db4b">FDSTAT_DIGEST</a>       = 4,    
<a name="l00100"></a>00100     <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181d7618268f22e5f6c64ff883be9ec5bbd">FDSTAT_MAX</a>          = 5
<a name="l00101"></a>00101 } <a class="code" href="group__rpmio.html#g5d436f6099e3276accca4ff9fdcf1ce6">fdOpX</a>;
<a name="l00102"></a>00102 
<a name="l00106"></a>00106 <span class="keyword">typedef</span> <span class="comment">/*@abstract@*/</span> <span class="keyword">struct </span>{
<a name="l00107"></a><a class="code" href="rpmio__internal_8h.html#0db1fac298fd8c2f115ae01184e50148">00107</a>     <span class="keyword">struct </span><a class="code" href="structrpmop__s.html">rpmop_s</a>      <a class="code" href="rpmio__internal_8h.html#0db1fac298fd8c2f115ae01184e50148">ops</a>[<a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181d7618268f22e5f6c64ff883be9ec5bbd">FDSTAT_MAX</a>];        
<a name="l00108"></a>00108 } * <a class="code" href="group__rpmio.html#g52bd574f1b1454d6185ee381864aa7cf">FDSTAT_t</a>;
<a name="l00109"></a>00109 
<a name="l00112"></a><a class="code" href="struct__FDDIGEST__s.html">00112</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__FDDIGEST__s.html">_FDDIGEST_s</a> {
<a name="l00113"></a><a class="code" href="struct__FDDIGEST__s.html#bfe60a00adf6881eec4fab62f133b647">00113</a>     <a class="code" href="rpmpgp_8h.html#7dfcf98c6e163d995601e76dc0797ca1">pgpHashAlgo</a>         <a class="code" href="struct__FDDIGEST__s.html#bfe60a00adf6881eec4fab62f133b647">hashalgo</a>;
<a name="l00114"></a><a class="code" href="struct__FDDIGEST__s.html#81f09f3b5f1441c3d0c2daa4f6ab007e">00114</a>     <a class="code" href="structDIGEST__CTX__s.html">DIGEST_CTX</a>          <a class="code" href="struct__FDDIGEST__s.html#81f09f3b5f1441c3d0c2daa4f6ab007e">hashctx</a>;
<a name="l00115"></a>00115 } * <a class="code" href="struct__FDDIGEST__s.html">FDDIGEST_t</a>;
<a name="l00116"></a>00116 
<a name="l00120"></a><a class="code" href="struct__FD__s.html">00120</a> <span class="keyword">struct </span><a class="code" href="struct__FD__s.html">_FD_s</a> {
<a name="l00121"></a>00121 <span class="comment">/*@refs@*/</span>
<a name="l00122"></a><a class="code" href="struct__FD__s.html#c9d9bcf30a1ee2e9eaeed1441c070134">00122</a>     <span class="keywordtype">int</span>         <a class="code" href="struct__FD__s.html#c9d9bcf30a1ee2e9eaeed1441c070134">nrefs</a>;
<a name="l00123"></a><a class="code" href="struct__FD__s.html#173b01b0d166a42841ef1778c22251a3">00123</a>     <span class="keywordtype">int</span>         <a class="code" href="struct__FD__s.html#173b01b0d166a42841ef1778c22251a3">flags</a>;
<a name="l00124"></a><a class="code" href="rpmio__internal_8h.html#dc21595dc545bb17b21ae0eb4149d7fd">00124</a> <span class="preprocessor">#define RPMIO_DEBUG_IO          0x40000000</span>
<a name="l00125"></a><a class="code" href="rpmio__internal_8h.html#3ef020d0e4be24d0f1c286410ff58879">00125</a> <span class="preprocessor"></span><span class="preprocessor">#define RPMIO_DEBUG_REFS        0x20000000</span>
<a name="l00126"></a><a class="code" href="struct__FD__s.html#5e3c053cf03c29a12ac8186aa7046a75">00126</a> <span class="preprocessor"></span>    <span class="keywordtype">int</span>         <a class="code" href="structmagic.html">magic</a>;
<a name="l00127"></a><a class="code" href="rpmio__internal_8h.html#795eddd5f3f7a94d449fe42c7c1a670c">00127</a> <span class="preprocessor">#define FDMAGIC                 0x04463138</span>
<a name="l00128"></a><a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">00128</a> <span class="preprocessor"></span>    <span class="keywordtype">int</span>         <a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a>;
<a name="l00129"></a><a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">00129</a>     <a class="code" href="struct__FDSTACK__s.html">FDSTACK_t</a>   <a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">fps</a>[8];
<a name="l00130"></a><a class="code" href="struct__FD__s.html#f32bfa9e7e9368c371914b670f5619b4">00130</a>     <span class="keywordtype">int</span>         <a class="code" href="struct__FD__s.html#f32bfa9e7e9368c371914b670f5619b4">urlType</a>;        <span class="comment">/* ufdio: */</span>
<a name="l00131"></a>00131 
<a name="l00132"></a>00132 <span class="comment">/*@dependent@*/</span>
<a name="l00133"></a><a class="code" href="struct__FD__s.html#2e58fdcacd8b929ce0ef037e2cc56927">00133</a>     <span class="keywordtype">void</span> *      <a class="code" href="struct__FD__s.html#2e58fdcacd8b929ce0ef037e2cc56927">url</a>;            <span class="comment">/* ufdio: URL info */</span>
<a name="l00134"></a>00134 <span class="comment">/*@relnull@*/</span>
<a name="l00135"></a><a class="code" href="struct__FD__s.html#fbed4973f8b4fe015440b2c9e9b809a8">00135</a>     <span class="keywordtype">void</span> *      <a class="code" href="struct__FD__s.html#fbed4973f8b4fe015440b2c9e9b809a8">req</a>;            <span class="comment">/* ufdio: HTTP request */</span>
<a name="l00136"></a>00136 
<a name="l00137"></a><a class="code" href="struct__FD__s.html#a9fc4e91de3c38e8301a30d62bf39a64">00137</a>     <span class="keywordtype">int</span>         <a class="code" href="struct__FD__s.html#a9fc4e91de3c38e8301a30d62bf39a64">rd_timeoutsecs</a>; <span class="comment">/* ufdRead: per FD_t timer */</span>
<a name="l00138"></a><a class="code" href="struct__FD__s.html#00120de779f3e4932f8fc67c01fa12b0">00138</a>     ssize_t     <a class="code" href="struct__FD__s.html#00120de779f3e4932f8fc67c01fa12b0">bytesRemain</a>;    <span class="comment">/* ufdio: */</span>
<a name="l00139"></a><a class="code" href="struct__FD__s.html#b027167cccece801b248f15cfa98bc52">00139</a>     ssize_t     <a class="code" href="struct__FD__s.html#b027167cccece801b248f15cfa98bc52">contentLength</a>;  <span class="comment">/* ufdio: */</span>
<a name="l00140"></a><a class="code" href="struct__FD__s.html#d8c2eda0948f9b2907fd1e9a20a059ec">00140</a>     <span class="keywordtype">int</span>         <a class="code" href="struct__FD__s.html#d8c2eda0948f9b2907fd1e9a20a059ec">persist</a>;        <span class="comment">/* ufdio: */</span>
<a name="l00141"></a><a class="code" href="struct__FD__s.html#83c86795708cd4d1bf31a9fb7d0415b2">00141</a>     <span class="keywordtype">int</span>         <a class="code" href="struct__FD__s.html#83c86795708cd4d1bf31a9fb7d0415b2">wr_chunked</a>;     <span class="comment">/* ufdio: */</span>
<a name="l00142"></a>00142 
<a name="l00143"></a><a class="code" href="struct__FD__s.html#c94379a6e519d7bd5f5fd2ea6cd51b47">00143</a>     <span class="keywordtype">int</span>         <a class="code" href="struct__FD__s.html#c94379a6e519d7bd5f5fd2ea6cd51b47">syserrno</a>;       <span class="comment">/* last system errno encountered */</span>
<a name="l00144"></a>00144 <span class="comment">/*@observer@*/</span>
<a name="l00145"></a><a class="code" href="struct__FD__s.html#a9a73f23161b39f98474f2ff886cf7dd">00145</a>     <span class="keyword">const</span> <span class="keywordtype">void</span> *<a class="code" href="struct__FD__s.html#a9a73f23161b39f98474f2ff886cf7dd">errcookie</a>;      <span class="comment">/* gzdio/bzdio/ufdio: */</span>
<a name="l00146"></a>00146 
<a name="l00147"></a><a class="code" href="struct__FD__s.html#1b441882c671017a78221a34826cc9c6">00147</a>     <a class="code" href="group__rpmio.html#g52bd574f1b1454d6185ee381864aa7cf">FDSTAT_t</a>    <a class="code" href="struct__FD__s.html#1b441882c671017a78221a34826cc9c6">stats</a>;          <span class="comment">/* I/O statistics */</span>
<a name="l00148"></a>00148 
<a name="l00149"></a><a class="code" href="struct__FD__s.html#81d2c347434442ee84b301a33c4c62d0">00149</a>     <span class="keywordtype">int</span>         <a class="code" href="struct__FD__s.html#81d2c347434442ee84b301a33c4c62d0">ndigests</a>;
<a name="l00150"></a><a class="code" href="rpmio__internal_8h.html#62ce4a3e4292776d860a40e22faebe5d">00150</a> <span class="preprocessor">#define FDDIGEST_MAX    4</span>
<a name="l00151"></a><a class="code" href="struct__FD__s.html#65c7ff91dfa0611472445c72ac1a430a">00151</a> <span class="preprocessor"></span>    <span class="keyword">struct </span><a class="code" href="struct__FDDIGEST__s.html">_FDDIGEST_s</a>  <a class="code" href="struct__FD__s.html#65c7ff91dfa0611472445c72ac1a430a">digests</a>[<a class="code" href="rpmio__internal_8h.html#62ce4a3e4292776d860a40e22faebe5d">FDDIGEST_MAX</a>];
<a name="l00152"></a>00152 
<a name="l00153"></a><a class="code" href="struct__FD__s.html#bd58ab36ba69f34cdc1df2c0329b7d12">00153</a>     <span class="keywordtype">int</span>         <a class="code" href="struct__FD__s.html#bd58ab36ba69f34cdc1df2c0329b7d12">ftpFileDoneNeeded</a>; <span class="comment">/* ufdio: (FTP) */</span>
<a name="l00154"></a><a class="code" href="struct__FD__s.html#734b49d5579d377cb39384510a7a44a6">00154</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="struct__FD__s.html#734b49d5579d377cb39384510a7a44a6">firstFree</a>;     <span class="comment">/* fadio: */</span>
<a name="l00155"></a><a class="code" href="struct__FD__s.html#96455f10175b4df795fa82e67fd7739e">00155</a>     <span class="keywordtype">long</span> <span class="keywordtype">int</span>    <a class="code" href="struct__FD__s.html#96455f10175b4df795fa82e67fd7739e">fileSize</a>;       <span class="comment">/* fadio: */</span>
<a name="l00156"></a><a class="code" href="struct__FD__s.html#e3e1ecb49b2f9e8fa3bae561a6edf062">00156</a>     <span class="keywordtype">long</span> <span class="keywordtype">int</span>    <a class="code" href="struct__FD__s.html#e3e1ecb49b2f9e8fa3bae561a6edf062">fd_cpioPos</a>;     <span class="comment">/* cpio: */</span>
<a name="l00157"></a>00157 };
<a name="l00158"></a>00158 <span class="comment">/*@access FD_t@*/</span>
<a name="l00159"></a>00159 
<a name="l00160"></a><a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">00160</a> <span class="preprocessor">#define FDSANE(fd)      assert(fd &amp;&amp; fd-&gt;magic == FDMAGIC)</span>
<a name="l00161"></a>00161 <span class="preprocessor"></span>
<a name="l00162"></a>00162 <span class="comment">/*@-redecl@*/</span>
<a name="l00163"></a>00163 <span class="comment">/*@unchecked@*/</span>
<a name="l00164"></a>00164 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="poptALL_8c.html#e65e452cc653e9826fa01652d9a26102">_rpmio_debug</a>;
<a name="l00165"></a>00165 <span class="comment">/*@=redecl@*/</span>
<a name="l00166"></a>00166 
<a name="l00167"></a>00167 <span class="comment">/*@-redecl@*/</span>
<a name="l00168"></a>00168 <span class="comment">/*@unchecked@*/</span>
<a name="l00169"></a>00169 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="poptALL_8c.html#eafa60fff5391a85608f3753c90a963e">_av_debug</a>;
<a name="l00170"></a>00170 <span class="comment">/*@=redecl@*/</span>
<a name="l00171"></a>00171 
<a name="l00172"></a>00172 <span class="comment">/*@-redecl@*/</span>
<a name="l00173"></a>00173 <span class="comment">/*@unchecked@*/</span>
<a name="l00174"></a>00174 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="poptALL_8c.html#ab87395ef3a9640980f39a65cd124516">_ftp_debug</a>;
<a name="l00175"></a>00175 <span class="comment">/*@=redecl@*/</span>
<a name="l00176"></a>00176 
<a name="l00177"></a>00177 <span class="comment">/*@-redecl@*/</span>
<a name="l00178"></a>00178 <span class="comment">/*@unchecked@*/</span>
<a name="l00179"></a>00179 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="poptALL_8c.html#08b2b12b5b4b4433702c63ba0442354e">_dav_debug</a>;
<a name="l00180"></a>00180 <span class="comment">/*@=redecl@*/</span>
<a name="l00181"></a>00181 
<a name="l00182"></a><a class="code" href="rpmio__internal_8h.html#0b1a050db542c73dc9240fd892ed77ab">00182</a> <span class="preprocessor">#define DBG(_f, _m, _x) \</span>
<a name="l00183"></a>00183 <span class="preprocessor">    </span><span class="comment">/*@-modfilesys@*/</span> \
<a name="l00184"></a>00184     if ((_rpmio_debug | ((_f) ? ((FD_t)(_f))-&gt;flags : 0)) &amp; (_m)) fprintf _x \
<a name="l00185"></a>00185     <span class="comment">/*@=modfilesys@*/</span>
<a name="l00186"></a>00186 
<a name="l00187"></a>00187 <span class="preprocessor">#if defined(__LCLINT__XXX)</span>
<a name="l00188"></a>00188 <span class="preprocessor"></span><span class="preprocessor">#define DBGIO(_f, _x)</span>
<a name="l00189"></a>00189 <span class="preprocessor"></span><span class="preprocessor">#define DBGREFS(_f, _x)</span>
<a name="l00190"></a>00190 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00191"></a><a class="code" href="rpmio__internal_8h.html#6a5260e846c5d3926ec1610944704621">00191</a> <span class="preprocessor"></span><span class="preprocessor">#define DBGIO(_f, _x)   DBG((_f), RPMIO_DEBUG_IO, _x)</span>
<a name="l00192"></a><a class="code" href="rpmio__internal_8h.html#1964459f53424f2c5b8e0b109f2d575c">00192</a> <span class="preprocessor"></span><span class="preprocessor">#define DBGREFS(_f, _x) DBG((_f), RPMIO_DEBUG_REFS, _x)</span>
<a name="l00193"></a>00193 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00194"></a>00194 <span class="preprocessor"></span>
<a name="l00195"></a>00195 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00196"></a>00196 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
<a name="l00197"></a>00197 <span class="preprocessor">#endif</span>
<a name="l00198"></a>00198 <span class="preprocessor"></span>
<a name="l00201"></a>00201 <span class="keywordtype">int</span> <a class="code" href="group__rpmio.html#g67b9a013e70d8c63ee3d4e4a01274e89">fdFgets</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd, <span class="keywordtype">char</span> * buf, size_t len)
<a name="l00202"></a>00202         <span class="comment">/*@globals errno, fileSystem @*/</span>
<a name="l00203"></a>00203         <span class="comment">/*@modifies *buf, fd, errno, fileSystem @*/</span>;
<a name="l00204"></a>00204 
<a name="l00207"></a>00207 <span class="comment">/*@null@*/</span> <a class="code" href="struct__FD__s.html">FD_t</a> <a class="code" href="group__rpmio.html#g3046ed2ee54ed6863cb08bd99526a63e">ftpOpen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *url, <span class="comment">/*@unused@*/</span> <span class="keywordtype">int</span> flags,
<a name="l00208"></a>00208                 <span class="comment">/*@unused@*/</span> mode_t mode, <span class="comment">/*@out@*/</span> <a class="code" href="structurlinfo__s.html">urlinfo</a> *uret)
<a name="l00209"></a>00209         <span class="comment">/*@globals h_errno, fileSystem, internalState @*/</span>
<a name="l00210"></a>00210         <span class="comment">/*@modifies *uret, fileSystem, internalState @*/</span>;
<a name="l00211"></a>00211 
<a name="l00214"></a>00214 <span class="keywordtype">int</span> <a class="code" href="group__rpmio.html#g720543f2200cdc4ce042d03cb2993deb">ftpReq</a>(<a class="code" href="struct__FD__s.html">FD_t</a> data, <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__rpmio.html#gb3280924254c78ab14bc4bf36c7d66ba">ftpCmd</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> * ftpArg)
<a name="l00215"></a>00215         <span class="comment">/*@globals fileSystem, internalState @*/</span>
<a name="l00216"></a>00216         <span class="comment">/*@modifies data, fileSystem, internalState @*/</span>;
<a name="l00217"></a>00217 
<a name="l00220"></a>00220 <span class="keywordtype">int</span> <a class="code" href="group__rpmio.html#gb3280924254c78ab14bc4bf36c7d66ba">ftpCmd</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * cmd, <span class="keyword">const</span> <span class="keywordtype">char</span> * url, <span class="keyword">const</span> <span class="keywordtype">char</span> * arg2)
<a name="l00221"></a>00221         <span class="comment">/*@globals h_errno, fileSystem, internalState @*/</span>
<a name="l00222"></a>00222         <span class="comment">/*@modifies fileSystem, internalState @*/</span>;
<a name="l00223"></a>00223 
<a name="l00226"></a>00226 <span class="keywordtype">int</span> <a class="code" href="group__rpmio.html#g18fd5ca055b6ab953560487f454bf76a">ufdClose</a>( <span class="comment">/*@only@*/</span> <span class="keywordtype">void</span> * cookie)
<a name="l00227"></a>00227         <span class="comment">/*@globals fileSystem, internalState @*/</span>
<a name="l00228"></a>00228         <span class="comment">/*@modifies cookie, fileSystem, internalState @*/</span>;
<a name="l00229"></a>00229 
<a name="l00232"></a>00232 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00233"></a><a class="code" href="group__rpmio.html#ge5ff23c700a7a123768b9fb824c7a0c7">00233</a> <span class="comment">/*@null@*/</span> <a class="code" href="structFDIO__s.html">FDIO_t</a> <a class="code" href="group__rpmio.html#ge5ff23c700a7a123768b9fb824c7a0c7">fdGetIo</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd)
<a name="l00234"></a>00234         <span class="comment">/*@*/</span>
<a name="l00235"></a>00235 {
<a name="l00236"></a>00236     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00237"></a>00237 <span class="comment">/*@-boundsread@*/</span>
<a name="l00238"></a>00238     <span class="keywordflow">return</span> fd-&gt;<a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">fps</a>[fd-&gt;<a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a>].<a class="code" href="struct__FDSTACK__s.html#3fd9ef986bd0ec66c592db3364764f40">io</a>;
<a name="l00239"></a>00239 <span class="comment">/*@=boundsread@*/</span>
<a name="l00240"></a>00240 }
<a name="l00241"></a>00241 
<a name="l00244"></a>00244 <span class="comment">/*@-nullstate@*/</span> <span class="comment">/* FIX: io may be NULL */</span>
<a name="l00245"></a>00245 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00246"></a><a class="code" href="group__rpmio.html#ge571ef7c4830c81fa1d6612693ac0ef7">00246</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#ge571ef7c4830c81fa1d6612693ac0ef7">fdSetIo</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd, <span class="comment">/*@kept@*/</span> <span class="comment">/*@null@*/</span> <a class="code" href="structFDIO__s.html">FDIO_t</a> io)
<a name="l00247"></a>00247         <span class="comment">/*@modifies fd @*/</span>
<a name="l00248"></a>00248 {
<a name="l00249"></a>00249     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00250"></a>00250 <span class="comment">/*@-boundswrite@*/</span>
<a name="l00251"></a>00251     <span class="comment">/*@-assignexpose@*/</span>
<a name="l00252"></a>00252     fd-&gt;<a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">fps</a>[fd-&gt;<a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a>].<a class="code" href="struct__FDSTACK__s.html#3fd9ef986bd0ec66c592db3364764f40">io</a> = io;
<a name="l00253"></a>00253     <span class="comment">/*@=assignexpose@*/</span>
<a name="l00254"></a>00254 <span class="comment">/*@=boundswrite@*/</span>
<a name="l00255"></a>00255 }
<a name="l00256"></a>00256 <span class="comment">/*@=nullstate@*/</span>
<a name="l00257"></a>00257 
<a name="l00260"></a>00260 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00261"></a><a class="code" href="group__rpmio.html#gf48789d8e5b0ebf8b4a5ecf7c7c7d921">00261</a> <span class="comment">/*@exposed@*/</span> <span class="comment">/*@dependent@*/</span> <span class="comment">/*@null@*/</span> FILE * <a class="code" href="rpmio_8c.html#04af8bb4613f86342d434e478d76c98a">fdGetFILE</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd)
<a name="l00262"></a>00262         <span class="comment">/*@*/</span>
<a name="l00263"></a>00263 {
<a name="l00264"></a>00264     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00265"></a>00265 <span class="comment">/*@-boundsread@*/</span>
<a name="l00266"></a>00266     <span class="comment">/*@+voidabstract@*/</span>
<a name="l00267"></a>00267     <span class="keywordflow">return</span> ((FILE *)fd-&gt;<a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">fps</a>[fd-&gt;<a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a>].fp);
<a name="l00268"></a>00268     <span class="comment">/*@=voidabstract@*/</span>
<a name="l00269"></a>00269 <span class="comment">/*@=boundsread@*/</span>
<a name="l00270"></a>00270 }
<a name="l00271"></a>00271 
<a name="l00274"></a>00274 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00275"></a><a class="code" href="group__rpmio.html#g288a65735f82542ec02a0841f759d190">00275</a> <span class="comment">/*@exposed@*/</span> <span class="comment">/*@dependent@*/</span> <span class="comment">/*@null@*/</span> <span class="keywordtype">void</span> * <a class="code" href="group__rpmio.html#g288a65735f82542ec02a0841f759d190">fdGetFp</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd)
<a name="l00276"></a>00276         <span class="comment">/*@*/</span>
<a name="l00277"></a>00277 {
<a name="l00278"></a>00278     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00279"></a>00279 <span class="comment">/*@-boundsread@*/</span>
<a name="l00280"></a>00280     <span class="keywordflow">return</span> fd-&gt;<a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">fps</a>[fd-&gt;<a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a>].<a class="code" href="struct__FDSTACK__s.html#313ebfa6f397f0b45ca4e9c7b67ca4d0">fp</a>;
<a name="l00281"></a>00281 <span class="comment">/*@=boundsread@*/</span>
<a name="l00282"></a>00282 }
<a name="l00283"></a>00283 
<a name="l00286"></a>00286 <span class="comment">/*@-nullstate@*/</span> <span class="comment">/* FIX: fp may be NULL */</span>
<a name="l00287"></a>00287 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00288"></a><a class="code" href="group__rpmio.html#g024443d07edd588eb9f5b270c66b1ff4">00288</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#g024443d07edd588eb9f5b270c66b1ff4">fdSetFp</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd, <span class="comment">/*@kept@*/</span> <span class="comment">/*@null@*/</span> <span class="keywordtype">void</span> * fp)
<a name="l00289"></a>00289         <span class="comment">/*@modifies fd @*/</span>
<a name="l00290"></a>00290 {
<a name="l00291"></a>00291     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00292"></a>00292 <span class="comment">/*@-boundswrite@*/</span>
<a name="l00293"></a>00293     <span class="comment">/*@-assignexpose@*/</span>
<a name="l00294"></a>00294     fd-&gt;<a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">fps</a>[fd-&gt;<a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a>].<a class="code" href="struct__FDSTACK__s.html#313ebfa6f397f0b45ca4e9c7b67ca4d0">fp</a> = fp;
<a name="l00295"></a>00295     <span class="comment">/*@=assignexpose@*/</span>
<a name="l00296"></a>00296 <span class="comment">/*@=boundswrite@*/</span>
<a name="l00297"></a>00297 }
<a name="l00298"></a>00298 <span class="comment">/*@=nullstate@*/</span>
<a name="l00299"></a>00299 
<a name="l00302"></a>00302 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00303"></a><a class="code" href="group__rpmio.html#g216f9fa3055bd1f4c200dfbd70c222d2">00303</a> <span class="keywordtype">int</span> <a class="code" href="group__rpmio.html#g216f9fa3055bd1f4c200dfbd70c222d2">fdGetFdno</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd)
<a name="l00304"></a>00304         <span class="comment">/*@*/</span>
<a name="l00305"></a>00305 {
<a name="l00306"></a>00306     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00307"></a>00307 <span class="comment">/*@-boundsread@*/</span>
<a name="l00308"></a>00308     <span class="keywordflow">return</span> fd-&gt;<a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">fps</a>[fd-&gt;<a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a>].<a class="code" href="struct__FDSTACK__s.html#179b6c8e533a7c0db5d0ef372445ad87">fdno</a>;
<a name="l00309"></a>00309 <span class="comment">/*@=boundsread@*/</span>
<a name="l00310"></a>00310 }
<a name="l00311"></a>00311 
<a name="l00314"></a>00314 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00315"></a><a class="code" href="group__rpmio.html#g98420fadab5e760fc1cfbf777d9fedd0">00315</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#g98420fadab5e760fc1cfbf777d9fedd0">fdSetFdno</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd, <span class="keywordtype">int</span> fdno)
<a name="l00316"></a>00316         <span class="comment">/*@modifies fd @*/</span>
<a name="l00317"></a>00317 {
<a name="l00318"></a>00318     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00319"></a>00319 <span class="comment">/*@-boundswrite@*/</span>
<a name="l00320"></a>00320     fd-&gt;<a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">fps</a>[fd-&gt;<a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a>].<a class="code" href="struct__FDSTACK__s.html#179b6c8e533a7c0db5d0ef372445ad87">fdno</a> = fdno;
<a name="l00321"></a>00321 <span class="comment">/*@=boundswrite@*/</span>
<a name="l00322"></a>00322 }
<a name="l00323"></a>00323 
<a name="l00326"></a>00326 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00327"></a><a class="code" href="group__rpmio.html#gae53c82425887a5e4b225458490cd389">00327</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#gae53c82425887a5e4b225458490cd389">fdSetContentLength</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd, ssize_t contentLength)
<a name="l00328"></a>00328         <span class="comment">/*@modifies fd @*/</span>
<a name="l00329"></a>00329 {
<a name="l00330"></a>00330     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00331"></a>00331     fd-&gt;<a class="code" href="struct__FD__s.html#b027167cccece801b248f15cfa98bc52">contentLength</a> = fd-&gt;<a class="code" href="struct__FD__s.html#00120de779f3e4932f8fc67c01fa12b0">bytesRemain</a> = contentLength;
<a name="l00332"></a>00332 }
<a name="l00333"></a>00333 
<a name="l00336"></a>00336 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00337"></a><a class="code" href="group__rpmio.html#g9f9de0c20e0c5edb9ceafea13bac2d3d">00337</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#g9f9de0c20e0c5edb9ceafea13bac2d3d">fdPush</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd, <a class="code" href="structFDIO__s.html">FDIO_t</a> io, <span class="keywordtype">void</span> * fp, <span class="keywordtype">int</span> fdno)
<a name="l00338"></a>00338         <span class="comment">/*@modifies fd @*/</span>
<a name="l00339"></a>00339 {
<a name="l00340"></a>00340     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00341"></a>00341     <span class="keywordflow">if</span> (fd-&gt;<a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a> &gt;= (<span class="keyword">sizeof</span>(fd-&gt;<a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">fps</a>)/<span class="keyword">sizeof</span>(fd-&gt;<a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">fps</a>[0]) - 1))
<a name="l00342"></a>00342         <span class="keywordflow">return</span>;
<a name="l00343"></a>00343     fd-&gt;<a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a>++;
<a name="l00344"></a>00344     <a class="code" href="group__rpmio.html#ge571ef7c4830c81fa1d6612693ac0ef7">fdSetIo</a>(fd, io);
<a name="l00345"></a>00345     <a class="code" href="group__rpmio.html#g024443d07edd588eb9f5b270c66b1ff4">fdSetFp</a>(fd, fp);
<a name="l00346"></a>00346     <a class="code" href="group__rpmio.html#g98420fadab5e760fc1cfbf777d9fedd0">fdSetFdno</a>(fd, fdno);
<a name="l00347"></a>00347 }
<a name="l00348"></a>00348 
<a name="l00351"></a>00351 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00352"></a><a class="code" href="group__rpmio.html#g6923706ca828d8536b5b1e1e6a756e6d">00352</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#g6923706ca828d8536b5b1e1e6a756e6d">fdPop</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd)
<a name="l00353"></a>00353         <span class="comment">/*@modifies fd @*/</span>
<a name="l00354"></a>00354 {
<a name="l00355"></a>00355     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00356"></a>00356     <span class="keywordflow">if</span> (fd-&gt;<a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a> &lt; 0) <span class="keywordflow">return</span>;
<a name="l00357"></a>00357     <a class="code" href="group__rpmio.html#ge571ef7c4830c81fa1d6612693ac0ef7">fdSetIo</a>(fd, NULL);
<a name="l00358"></a>00358     <a class="code" href="group__rpmio.html#g024443d07edd588eb9f5b270c66b1ff4">fdSetFp</a>(fd, NULL);
<a name="l00359"></a>00359     <a class="code" href="group__rpmio.html#g98420fadab5e760fc1cfbf777d9fedd0">fdSetFdno</a>(fd, -1);
<a name="l00360"></a>00360     fd-&gt;<a class="code" href="struct__FD__s.html#9c7e01ed7954de1aa4a40da4ff713c2f">nfps</a>--;
<a name="l00361"></a>00361 }
<a name="l00362"></a>00362 
<a name="l00365"></a>00365 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="comment">/*@null@*/</span>
<a name="l00366"></a><a class="code" href="group__rpmio.html#gca91d991ee3b190bb32f0b1aed7fb796">00366</a> <a class="code" href="structrpmop__s.html">rpmop</a> <a class="code" href="group__rpmio.html#gca91d991ee3b190bb32f0b1aed7fb796">fdstat_op</a>(<span class="comment">/*@null@*/</span> <a class="code" href="struct__FD__s.html">FD_t</a> fd, <a class="code" href="group__rpmio.html#g5d436f6099e3276accca4ff9fdcf1ce6">fdOpX</a> opx)
<a name="l00367"></a>00367         <span class="comment">/*@*/</span>
<a name="l00368"></a>00368 {
<a name="l00369"></a>00369     <a class="code" href="structrpmop__s.html">rpmop</a> op = NULL;
<a name="l00370"></a>00370 
<a name="l00371"></a>00371 <span class="comment">/*@-boundsread@*/</span>
<a name="l00372"></a>00372     <span class="keywordflow">if</span> (fd != NULL &amp;&amp; fd-&gt;<a class="code" href="struct__FD__s.html#1b441882c671017a78221a34826cc9c6">stats</a> != NULL &amp;&amp; opx &gt;= 0 &amp;&amp; opx &lt; <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181d7618268f22e5f6c64ff883be9ec5bbd">FDSTAT_MAX</a>)
<a name="l00373"></a>00373         op = fd-&gt;<a class="code" href="struct__FD__s.html#1b441882c671017a78221a34826cc9c6">stats</a>-&gt;ops + opx;
<a name="l00374"></a>00374 <span class="comment">/*@=boundsread@*/</span>
<a name="l00375"></a>00375     <span class="keywordflow">return</span> op;
<a name="l00376"></a>00376 }
<a name="l00377"></a>00377 
<a name="l00380"></a>00380 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00381"></a><a class="code" href="group__rpmio.html#ga36740ff954b8f7dd3363760a3b30bce">00381</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#ga36740ff954b8f7dd3363760a3b30bce">fdstat_enter</a>(<span class="comment">/*@null@*/</span> <a class="code" href="struct__FD__s.html">FD_t</a> fd, <span class="keywordtype">int</span> opx)
<a name="l00382"></a>00382         <span class="comment">/*@globals internalState @*/</span>
<a name="l00383"></a>00383         <span class="comment">/*@modifies internalState @*/</span>
<a name="l00384"></a>00384 {
<a name="l00385"></a>00385     <span class="keywordflow">if</span> (fd == NULL) <span class="keywordflow">return</span>;
<a name="l00386"></a>00386     <span class="keywordflow">if</span> (fd-&gt;<a class="code" href="struct__FD__s.html#1b441882c671017a78221a34826cc9c6">stats</a> != NULL)
<a name="l00387"></a>00387         (void) <a class="code" href="group__rpmio.html#g7f69caae88f9572093fc8b0adf8ecf65">rpmswEnter</a>(<a class="code" href="group__rpmio.html#gca91d991ee3b190bb32f0b1aed7fb796">fdstat_op</a>(fd, opx), 0);
<a name="l00388"></a>00388 }
<a name="l00389"></a>00389 
<a name="l00392"></a>00392 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00393"></a><a class="code" href="group__rpmio.html#g9f827edcfec74eb327766ab8c56cb7d7">00393</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#g9f827edcfec74eb327766ab8c56cb7d7">fdstat_exit</a>(<span class="comment">/*@null@*/</span> <a class="code" href="struct__FD__s.html">FD_t</a> fd, <span class="keywordtype">int</span> opx, ssize_t rc)
<a name="l00394"></a>00394         <span class="comment">/*@globals internalState @*/</span>
<a name="l00395"></a>00395         <span class="comment">/*@modifies fd, internalState @*/</span>
<a name="l00396"></a>00396 {
<a name="l00397"></a>00397     <span class="keywordflow">if</span> (fd == NULL) <span class="keywordflow">return</span>;
<a name="l00398"></a>00398     <span class="keywordflow">if</span> (rc == -1)
<a name="l00399"></a>00399         fd-&gt;<a class="code" href="struct__FD__s.html#c94379a6e519d7bd5f5fd2ea6cd51b47">syserrno</a> = <a class="code" href="system_8h.html#d65a8842cc674e3ddf69355898c0ecbf">errno</a>;
<a name="l00400"></a>00400     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rc &gt; 0 &amp;&amp; fd-&gt;<a class="code" href="struct__FD__s.html#00120de779f3e4932f8fc67c01fa12b0">bytesRemain</a> &gt; 0)
<a name="l00401"></a>00401         <span class="keywordflow">switch</span> (opx) {
<a name="l00402"></a>00402         <span class="keywordflow">case</span> <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f38802118184d3d23af13a1d2041439b1fbb993f17">FDSTAT_READ</a>:
<a name="l00403"></a>00403         <span class="keywordflow">case</span> <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f3880211819593c6dfbeef1a48cd73037fccd950c3">FDSTAT_WRITE</a>:
<a name="l00404"></a>00404         fd-&gt;<a class="code" href="struct__FD__s.html#00120de779f3e4932f8fc67c01fa12b0">bytesRemain</a> -= rc;
<a name="l00405"></a>00405             <span class="keywordflow">break</span>;
<a name="l00406"></a>00406         <span class="keywordflow">default</span>:
<a name="l00407"></a>00407             <span class="keywordflow">break</span>;
<a name="l00408"></a>00408         }
<a name="l00409"></a>00409     <span class="keywordflow">if</span> (fd-&gt;<a class="code" href="struct__FD__s.html#1b441882c671017a78221a34826cc9c6">stats</a> != NULL)
<a name="l00410"></a>00410         (void) <a class="code" href="group__rpmio.html#g59c7d4152875cee4e893b5a27ce6b02a">rpmswExit</a>(<a class="code" href="group__rpmio.html#gca91d991ee3b190bb32f0b1aed7fb796">fdstat_op</a>(fd, opx), rc);
<a name="l00411"></a>00411 }
<a name="l00412"></a>00412 
<a name="l00415"></a>00415 <span class="comment">/*@-boundsread@*/</span>
<a name="l00416"></a>00416 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00417"></a><a class="code" href="group__rpmio.html#g3b99ff481d974f03c8169ccca70bee25">00417</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#g3b99ff481d974f03c8169ccca70bee25">fdstat_print</a>(<span class="comment">/*@null@*/</span> <a class="code" href="struct__FD__s.html">FD_t</a> fd, <span class="keyword">const</span> <span class="keywordtype">char</span> * msg, FILE * fp)
<a name="l00418"></a>00418         <span class="comment">/*@globals fileSystem @*/</span>
<a name="l00419"></a>00419         <span class="comment">/*@modifies *fp, fileSystem @*/</span>
<a name="l00420"></a>00420 {
<a name="l00421"></a>00421     <span class="keyword">static</span> <span class="keywordtype">int</span> usec_scale = (1000*1000);
<a name="l00422"></a>00422     <span class="keywordtype">int</span> opx;
<a name="l00423"></a>00423 
<a name="l00424"></a>00424     <span class="keywordflow">if</span> (fd == NULL || fd-&gt;<a class="code" href="struct__FD__s.html#1b441882c671017a78221a34826cc9c6">stats</a> == NULL) <span class="keywordflow">return</span>;
<a name="l00425"></a>00425     <span class="keywordflow">for</span> (opx = 0; opx &lt; 4; opx++) {
<a name="l00426"></a>00426         <a class="code" href="structrpmop__s.html">rpmop</a> op = &amp;fd-&gt;<a class="code" href="struct__FD__s.html#1b441882c671017a78221a34826cc9c6">stats</a>-&gt;ops[opx];
<a name="l00427"></a>00427         if (op-&gt;count &lt;= 0) <span class="keywordflow">continue</span>;
<a name="l00428"></a>00428         switch (opx) {
<a name="l00429"></a>00429         <span class="keywordflow">case</span> <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f38802118184d3d23af13a1d2041439b1fbb993f17">FDSTAT_READ</a>:
<a name="l00430"></a>00430             <span class="keywordflow">if</span> (msg) fprintf(fp, <span class="stringliteral">"%s:"</span>, msg);
<a name="l00431"></a>00431             fprintf(fp, <span class="stringliteral">"%8d reads, %8ld total bytes in %d.%06d secs\n"</span>,
<a name="l00432"></a>00432                 op-&gt;count, (<span class="keywordtype">long</span>)op-&gt;bytes,
<a name="l00433"></a>00433                 (<span class="keywordtype">int</span>)(op-&gt;usecs/usec_scale), (<span class="keywordtype">int</span>)(op-&gt;usecs%usec_scale));
<a name="l00434"></a>00434             <span class="comment">/*@switchbreak@*/</span> <span class="keywordflow">break</span>;
<a name="l00435"></a>00435         <span class="keywordflow">case</span> <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f3880211819593c6dfbeef1a48cd73037fccd950c3">FDSTAT_WRITE</a>:
<a name="l00436"></a>00436             <span class="keywordflow">if</span> (msg) fprintf(fp, <span class="stringliteral">"%s:"</span>, msg);
<a name="l00437"></a>00437             fprintf(fp, <span class="stringliteral">"%8d writes, %8ld total bytes in %d.%06d secs\n"</span>,
<a name="l00438"></a>00438                 op-&gt;count, (<span class="keywordtype">long</span>)op-&gt;bytes,
<a name="l00439"></a>00439                 (<span class="keywordtype">int</span>)(op-&gt;usecs/usec_scale), (<span class="keywordtype">int</span>)(op-&gt;usecs%usec_scale));
<a name="l00440"></a>00440             <span class="comment">/*@switchbreak@*/</span> <span class="keywordflow">break</span>;
<a name="l00441"></a>00441         <span class="keywordflow">case</span> <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f3880211817cf4151892b60e1cd9cfdafb13e7aa16">FDSTAT_SEEK</a>:
<a name="l00442"></a>00442             <span class="comment">/*@switchbreak@*/</span> <span class="keywordflow">break</span>;
<a name="l00443"></a>00443         <span class="keywordflow">case</span> <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181d51ed17b1e1a7a8d9156a3305a80ab9d">FDSTAT_CLOSE</a>:
<a name="l00444"></a>00444             <span class="comment">/*@switchbreak@*/</span> <span class="keywordflow">break</span>;
<a name="l00445"></a>00445         }
<a name="l00446"></a>00446     }
<a name="l00447"></a>00447 }
<a name="l00448"></a>00448 <span class="comment">/*@=boundsread@*/</span>
<a name="l00449"></a>00449 
<a name="l00452"></a>00452 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00453"></a><a class="code" href="group__rpmio.html#g6f73997a34e433ea421918cc937f5f71">00453</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#g6f73997a34e433ea421918cc937f5f71">fdSetSyserrno</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd, <span class="keywordtype">int</span> syserrno, <span class="comment">/*@kept@*/</span> <span class="keyword">const</span> <span class="keywordtype">void</span> * errcookie)
<a name="l00454"></a>00454         <span class="comment">/*@modifies fd @*/</span>
<a name="l00455"></a>00455 {
<a name="l00456"></a>00456     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00457"></a>00457     fd-&gt;<a class="code" href="struct__FD__s.html#c94379a6e519d7bd5f5fd2ea6cd51b47">syserrno</a> = syserrno;
<a name="l00458"></a>00458     <span class="comment">/*@-assignexpose@*/</span>
<a name="l00459"></a>00459     fd-&gt;<a class="code" href="struct__FD__s.html#a9a73f23161b39f98474f2ff886cf7dd">errcookie</a> = errcookie;
<a name="l00460"></a>00460     <span class="comment">/*@=assignexpose@*/</span>
<a name="l00461"></a>00461 }
<a name="l00462"></a>00462 
<a name="l00465"></a>00465 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00466"></a><a class="code" href="group__rpmio.html#gad5b0519127db18d951eafbf34382e6c">00466</a> <span class="keywordtype">int</span> <a class="code" href="group__rpmio.html#gad5b0519127db18d951eafbf34382e6c">fdGetRdTimeoutSecs</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd)
<a name="l00467"></a>00467         <span class="comment">/*@*/</span>
<a name="l00468"></a>00468 {
<a name="l00469"></a>00469     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00470"></a>00470     <span class="keywordflow">return</span> fd-&gt;<a class="code" href="struct__FD__s.html#a9fc4e91de3c38e8301a30d62bf39a64">rd_timeoutsecs</a>;
<a name="l00471"></a>00471 }
<a name="l00472"></a>00472 
<a name="l00475"></a>00475 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00476"></a><a class="code" href="group__rpmio.html#g940d85097d2c65fbcf6c7ef4426bbb6d">00476</a> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="group__rpmio.html#g940d85097d2c65fbcf6c7ef4426bbb6d">fdGetCpioPos</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd)
<a name="l00477"></a>00477         <span class="comment">/*@*/</span>
<a name="l00478"></a>00478 {
<a name="l00479"></a>00479     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00480"></a>00480     <span class="keywordflow">return</span> fd-&gt;<a class="code" href="struct__FD__s.html#e3e1ecb49b2f9e8fa3bae561a6edf062">fd_cpioPos</a>;
<a name="l00481"></a>00481 }
<a name="l00482"></a>00482 
<a name="l00485"></a>00485 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00486"></a><a class="code" href="group__rpmio.html#g0e285724c7c920e460d9197f9396c69f">00486</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#g0e285724c7c920e460d9197f9396c69f">fdSetCpioPos</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd, <span class="keywordtype">long</span> <span class="keywordtype">int</span> cpioPos)
<a name="l00487"></a>00487         <span class="comment">/*@modifies fd @*/</span>
<a name="l00488"></a>00488 {
<a name="l00489"></a>00489     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00490"></a>00490     fd-&gt;<a class="code" href="struct__FD__s.html#e3e1ecb49b2f9e8fa3bae561a6edf062">fd_cpioPos</a> = cpioPos;
<a name="l00491"></a>00491 }
<a name="l00492"></a>00492 
<a name="l00495"></a>00495 <span class="comment">/*@mayexit@*/</span> <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00496"></a><a class="code" href="group__rpmio.html#g3fc5888f34cadcccaaa690d1bb4032f2">00496</a> <a class="code" href="struct__FD__s.html">FD_t</a> <a class="code" href="group__rpmio.html#g3fc5888f34cadcccaaa690d1bb4032f2">c2f</a>(<span class="comment">/*@null@*/</span> <span class="keywordtype">void</span> * cookie)
<a name="l00497"></a>00497         <span class="comment">/*@*/</span>
<a name="l00498"></a>00498 {
<a name="l00499"></a>00499     <span class="comment">/*@-castexpose@*/</span>
<a name="l00500"></a>00500     <a class="code" href="struct__FD__s.html">FD_t</a> fd = (<a class="code" href="struct__FD__s.html">FD_t</a>) cookie;
<a name="l00501"></a>00501     <span class="comment">/*@=castexpose@*/</span>
<a name="l00502"></a>00502     <a class="code" href="rpmio__internal_8h.html#afffee7c1c962012329a2354a47255e5">FDSANE</a>(fd);
<a name="l00503"></a>00503     <span class="comment">/*@-refcounttrans -retalias@*/</span> <span class="keywordflow">return</span> fd; <span class="comment">/*@=refcounttrans =retalias@*/</span>
<a name="l00504"></a>00504 }
<a name="l00505"></a>00505 
<a name="l00509"></a>00509 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00510"></a><a class="code" href="group__rpmio.html#g878d57d802b1361c491a415c1e0dcad1">00510</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#g878d57d802b1361c491a415c1e0dcad1">fdInitDigest</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd, <a class="code" href="rpmpgp_8h.html#7dfcf98c6e163d995601e76dc0797ca1">pgpHashAlgo</a> <a class="code" href="struct__FDDIGEST__s.html#bfe60a00adf6881eec4fab62f133b647">hashalgo</a>, <span class="keywordtype">int</span> flags)
<a name="l00511"></a>00511         <span class="comment">/*@globals internalState @*/</span>
<a name="l00512"></a>00512         <span class="comment">/*@modifies fd, internalState @*/</span>
<a name="l00513"></a>00513 {
<a name="l00514"></a>00514     <a class="code" href="struct__FDDIGEST__s.html">FDDIGEST_t</a> fddig = fd-&gt;<a class="code" href="struct__FD__s.html#65c7ff91dfa0611472445c72ac1a430a">digests</a> + fd-&gt;<a class="code" href="struct__FD__s.html#81d2c347434442ee84b301a33c4c62d0">ndigests</a>;
<a name="l00515"></a>00515     <span class="keywordflow">if</span> (fddig != (fd-&gt;<a class="code" href="struct__FD__s.html#65c7ff91dfa0611472445c72ac1a430a">digests</a> + <a class="code" href="rpmio__internal_8h.html#62ce4a3e4292776d860a40e22faebe5d">FDDIGEST_MAX</a>)) {
<a name="l00516"></a>00516         fd-&gt;<a class="code" href="struct__FD__s.html#81d2c347434442ee84b301a33c4c62d0">ndigests</a>++;
<a name="l00517"></a>00517         fddig-&gt;<a class="code" href="struct__FDDIGEST__s.html#bfe60a00adf6881eec4fab62f133b647">hashalgo</a> = hashalgo;
<a name="l00518"></a>00518         <a class="code" href="group__rpmio.html#ga36740ff954b8f7dd3363760a3b30bce">fdstat_enter</a>(fd, <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181f418a78e4290c0f2e2b0ab16abd2db4b">FDSTAT_DIGEST</a>);
<a name="l00519"></a>00519         fddig-&gt;<a class="code" href="struct__FDDIGEST__s.html#81f09f3b5f1441c3d0c2daa4f6ab007e">hashctx</a> = <a class="code" href="group__rpmio.html#g38d1f7f076276f053da5f5b8e3c16b8e">rpmDigestInit</a>(hashalgo, flags);
<a name="l00520"></a>00520         <a class="code" href="group__rpmio.html#g9f827edcfec74eb327766ab8c56cb7d7">fdstat_exit</a>(fd, <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181f418a78e4290c0f2e2b0ab16abd2db4b">FDSTAT_DIGEST</a>, 0);
<a name="l00521"></a>00521     }
<a name="l00522"></a>00522 }
<a name="l00523"></a>00523 
<a name="l00527"></a>00527 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00528"></a><a class="code" href="group__rpmio.html#g34f8d2da569d183f9f2d4fb363c0b19e">00528</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#g34f8d2da569d183f9f2d4fb363c0b19e">fdUpdateDigests</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> * buf, ssize_t buflen)
<a name="l00529"></a>00529         <span class="comment">/*@globals internalState @*/</span>
<a name="l00530"></a>00530         <span class="comment">/*@modifies fd, internalState @*/</span>
<a name="l00531"></a>00531 {
<a name="l00532"></a>00532     <span class="keywordtype">int</span> i;
<a name="l00533"></a>00533 
<a name="l00534"></a>00534     <span class="keywordflow">if</span> (buf != NULL &amp;&amp; buflen &gt; 0)
<a name="l00535"></a>00535     <span class="keywordflow">for</span> (i = fd-&gt;<a class="code" href="struct__FD__s.html#81d2c347434442ee84b301a33c4c62d0">ndigests</a> - 1; i &gt;= 0; i--) {
<a name="l00536"></a>00536         <a class="code" href="struct__FDDIGEST__s.html">FDDIGEST_t</a> fddig = fd-&gt;<a class="code" href="struct__FD__s.html#65c7ff91dfa0611472445c72ac1a430a">digests</a> + i;
<a name="l00537"></a>00537         <span class="keywordflow">if</span> (fddig-&gt;<a class="code" href="struct__FDDIGEST__s.html#81f09f3b5f1441c3d0c2daa4f6ab007e">hashctx</a> == NULL)
<a name="l00538"></a>00538             <span class="keywordflow">continue</span>;
<a name="l00539"></a>00539         <a class="code" href="group__rpmio.html#ga36740ff954b8f7dd3363760a3b30bce">fdstat_enter</a>(fd, <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181f418a78e4290c0f2e2b0ab16abd2db4b">FDSTAT_DIGEST</a>);
<a name="l00540"></a>00540         (void) <a class="code" href="group__rpmio.html#gc9ca49fa22e116d5b481c666c82c579e">rpmDigestUpdate</a>(fddig-&gt;<a class="code" href="struct__FDDIGEST__s.html#81f09f3b5f1441c3d0c2daa4f6ab007e">hashctx</a>, buf, buflen);
<a name="l00541"></a>00541         <a class="code" href="group__rpmio.html#g9f827edcfec74eb327766ab8c56cb7d7">fdstat_exit</a>(fd, <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181f418a78e4290c0f2e2b0ab16abd2db4b">FDSTAT_DIGEST</a>, buflen);
<a name="l00542"></a>00542     }
<a name="l00543"></a>00543 }
<a name="l00544"></a>00544 
<a name="l00547"></a>00547 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00548"></a><a class="code" href="group__rpmio.html#g8d5709df4f16a8765b457613e3093e1e">00548</a> <span class="keywordtype">void</span> <a class="code" href="group__rpmio.html#g8d5709df4f16a8765b457613e3093e1e">fdFiniDigest</a>(<a class="code" href="struct__FD__s.html">FD_t</a> fd, <a class="code" href="rpmpgp_8h.html#7dfcf98c6e163d995601e76dc0797ca1">pgpHashAlgo</a> <a class="code" href="struct__FDDIGEST__s.html#bfe60a00adf6881eec4fab62f133b647">hashalgo</a>,
<a name="l00549"></a>00549                 <span class="comment">/*@null@*/</span> <span class="comment">/*@out@*/</span> <span class="keywordtype">void</span> ** datap,
<a name="l00550"></a>00550                 <span class="comment">/*@null@*/</span> <span class="comment">/*@out@*/</span> size_t * lenp,
<a name="l00551"></a>00551                 <span class="keywordtype">int</span> asAscii)
<a name="l00552"></a>00552         <span class="comment">/*@globals internalState @*/</span>
<a name="l00553"></a>00553         <span class="comment">/*@modifies fd, *datap, *lenp, internalState @*/</span>
<a name="l00554"></a>00554 {
<a name="l00555"></a>00555     <span class="keywordtype">int</span> imax = -1;
<a name="l00556"></a>00556     <span class="keywordtype">int</span> i;
<a name="l00557"></a>00557 
<a name="l00558"></a>00558     <span class="keywordflow">for</span> (i = fd-&gt;<a class="code" href="struct__FD__s.html#81d2c347434442ee84b301a33c4c62d0">ndigests</a> - 1; i &gt;= 0; i--) {
<a name="l00559"></a>00559         <a class="code" href="struct__FDDIGEST__s.html">FDDIGEST_t</a> fddig = fd-&gt;<a class="code" href="struct__FD__s.html#65c7ff91dfa0611472445c72ac1a430a">digests</a> + i;
<a name="l00560"></a>00560         <span class="keywordflow">if</span> (fddig-&gt;<a class="code" href="struct__FDDIGEST__s.html#81f09f3b5f1441c3d0c2daa4f6ab007e">hashctx</a> == NULL)
<a name="l00561"></a>00561             <span class="keywordflow">continue</span>;
<a name="l00562"></a>00562         <span class="keywordflow">if</span> (i &gt; imax) imax = i;
<a name="l00563"></a>00563         <span class="keywordflow">if</span> (fddig-&gt;<a class="code" href="struct__FDDIGEST__s.html#bfe60a00adf6881eec4fab62f133b647">hashalgo</a> != hashalgo)
<a name="l00564"></a>00564             <span class="keywordflow">continue</span>;
<a name="l00565"></a>00565         <a class="code" href="group__rpmio.html#ga36740ff954b8f7dd3363760a3b30bce">fdstat_enter</a>(fd, <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181f418a78e4290c0f2e2b0ab16abd2db4b">FDSTAT_DIGEST</a>);
<a name="l00566"></a>00566         (void) <a class="code" href="group__rpmio.html#g54e20bdf025588cd2f2bb640b7978de9">rpmDigestFinal</a>(fddig-&gt;<a class="code" href="struct__FDDIGEST__s.html#81f09f3b5f1441c3d0c2daa4f6ab007e">hashctx</a>, datap, lenp, asAscii);
<a name="l00567"></a>00567         <a class="code" href="group__rpmio.html#g9f827edcfec74eb327766ab8c56cb7d7">fdstat_exit</a>(fd, <a class="code" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f388021181f418a78e4290c0f2e2b0ab16abd2db4b">FDSTAT_DIGEST</a>, 0);
<a name="l00568"></a>00568         fddig-&gt;<a class="code" href="struct__FDDIGEST__s.html#81f09f3b5f1441c3d0c2daa4f6ab007e">hashctx</a> = NULL;
<a name="l00569"></a>00569         <span class="keywordflow">break</span>;
<a name="l00570"></a>00570     }
<a name="l00571"></a>00571 <span class="comment">/*@-boundswrite@*/</span>
<a name="l00572"></a>00572     <span class="keywordflow">if</span> (i &lt; 0) {
<a name="l00573"></a>00573         <span class="keywordflow">if</span> (datap) *datap = NULL;
<a name="l00574"></a>00574         <span class="keywordflow">if</span> (lenp) *lenp = 0;
<a name="l00575"></a>00575     }
<a name="l00576"></a>00576 <span class="comment">/*@=boundswrite@*/</span>
<a name="l00577"></a>00577 
<a name="l00578"></a>00578     fd-&gt;<a class="code" href="struct__FD__s.html#81d2c347434442ee84b301a33c4c62d0">ndigests</a> = imax;
<a name="l00579"></a>00579     <span class="keywordflow">if</span> (i &lt; imax)
<a name="l00580"></a>00580         fd-&gt;<a class="code" href="struct__FD__s.html#81d2c347434442ee84b301a33c4c62d0">ndigests</a>++;         <span class="comment">/* convert index to count */</span>
<a name="l00581"></a>00581 }
<a name="l00582"></a>00582 
<a name="l00583"></a>00583 <span class="comment">/*@-shadow@*/</span>
<a name="l00586"></a>00586 <span class="comment">/*@unused@*/</span> <span class="keyword">static</span> <span class="keyword">inline</span>
<a name="l00587"></a><a class="code" href="group__rpmio.html#g40ece7227675f02500fdd603d11efd69">00587</a> <span class="keywordtype">int</span> <a class="code" href="rpmio_8h.html#81b5b3487e88cd09f895bce6fb7014f2">fdFileno</a>(<span class="comment">/*@null@*/</span> <span class="keywordtype">void</span> * cookie)
<a name="l00588"></a>00588         <span class="comment">/*@*/</span>
<a name="l00589"></a>00589 {
<a name="l00590"></a>00590     <a class="code" href="struct__FD__s.html">FD_t</a> fd;
<a name="l00591"></a>00591     <span class="keywordflow">if</span> (cookie == NULL) <span class="keywordflow">return</span> -2;
<a name="l00592"></a>00592     fd = <a class="code" href="group__rpmio.html#g3fc5888f34cadcccaaa690d1bb4032f2">c2f</a>(cookie);
<a name="l00593"></a>00593 <span class="comment">/*@-boundsread@*/</span>
<a name="l00594"></a>00594     <span class="keywordflow">return</span> fd-&gt;<a class="code" href="struct__FD__s.html#f0be1fc0ce8b06ec51dd20b38d9d9bd0">fps</a>[0].<a class="code" href="struct__FDSTACK__s.html#179b6c8e533a7c0db5d0ef372445ad87">fdno</a>;
<a name="l00595"></a>00595 <span class="comment">/*@=boundsread@*/</span>
<a name="l00596"></a>00596 }
<a name="l00597"></a>00597 <span class="comment">/*@=shadow@*/</span>
<a name="l00598"></a>00598 
<a name="l00606"></a>00606 <span class="keywordtype">int</span> <a class="code" href="rpmio_8c.html#fe4cad0c5a03f19d4759cc3e758addad">rpmioSlurp</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * fn,
<a name="l00607"></a>00607                 <span class="comment">/*@out@*/</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ** bp, <span class="comment">/*@out@*/</span> ssize_t * blenp)
<a name="l00608"></a>00608         <span class="comment">/*@globals h_errno, fileSystem, internalState @*/</span>
<a name="l00609"></a>00609         <span class="comment">/*@modifies *bp, *blenp, fileSystem, internalState @*/</span>;
<a name="l00610"></a>00610 
<a name="l00611"></a>00611 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00612"></a>00612 <span class="preprocessor"></span>}
<a name="l00613"></a>00613 <span class="preprocessor">#endif</span>
<a name="l00614"></a>00614 <span class="preprocessor"></span>
<a name="l00615"></a>00615 <span class="preprocessor">#endif  </span><span class="comment">/* H_RPMIO_INTERNAL */</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on 1 Oct 2013 for rpm by&nbsp;
<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>