rpm 5.3.7
|
00001 #ifndef H_RPMXAR 00002 #define H_RPMXAR 00003 00009 #include <rpmiotypes.h> 00010 00011 /*@unchecked@*/ 00012 extern int _xar_debug; 00013 00014 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmxar_s * rpmxar; 00015 00016 #ifdef _RPMXAR_INTERNAL 00017 #include "yarn.h" 00018 struct rpmxar_s { 00019 struct rpmioItem_s _item; 00020 /*@relnull@*/ 00021 const void * x; 00022 /*@relnull@*/ 00023 const void * f; 00024 /*@relnull@*/ 00025 const void * i; 00026 /*@null@*/ 00027 const char * member; 00028 /*@null@*/ 00029 unsigned char * b; 00030 size_t bsize; 00031 size_t bx; 00032 int first; 00033 #if defined(__LCLINT__) 00034 /*@refs@*/ 00035 int nrefs; 00036 #endif 00037 }; 00038 #endif 00039 00040 #ifdef __cplusplus 00041 extern "C" { 00042 #endif 00043 00050 /*@unused@*/ /*@null@*/ 00051 rpmxar rpmxarUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmxar xar, 00052 /*@null@*/ const char * msg) 00053 /*@modifies xar @*/; 00054 #define rpmxarUnlink(_xar, _msg) \ 00055 ((rpmxar)rpmioUnlinkPoolItem((rpmioItem)(_xar), _msg, __FILE__, __LINE__)) 00056 00063 /*@unused@*/ /*@newref@*/ /*@null@*/ 00064 rpmxar rpmxarLink (/*@null@*/ rpmxar xar, /*@null@*/ const char * msg) 00065 /*@modifies xar @*/; 00066 #define rpmxarLink(_xar, _msg) \ 00067 ((rpmxar)rpmioLinkPoolItem((rpmioItem)(_xar), _msg, __FILE__, __LINE__)) 00068 00075 /*@unused@*/ /*@null@*/ 00076 rpmxar rpmxarFree(/*@killref@*/ /*@only@*/ rpmxar xar, 00077 /*@null@*/ const char * msg) 00078 /*@modifies xar @*/; 00079 #define rpmxarFree(_xar, _msg) \ 00080 ((rpmxar)rpmioFreePoolItem((rpmioItem)(_xar), _msg, __FILE__, __LINE__)) 00081 00088 /*@-globuse@*/ 00089 /*@relnull@*/ 00090 rpmxar rpmxarNew(const char * fn, const char * fmode) 00091 /*@globals fileSystem @*/ 00092 /*@modifies fileSystem @*/; 00093 /*@=globuse@*/ 00094 00100 int rpmxarNext(rpmxar xar) 00101 /*@globals fileSystem @*/ 00102 /*@modifies xar, fileSystem @*/; 00103 00104 int rpmxarPush(rpmxar xar, const char * fn, unsigned char * b, size_t bsize) 00105 /*@globals fileSystem @*/ 00106 /*@modifies xar, fileSystem @*/; 00107 00108 int rpmxarPull(rpmxar xar, /*@null@*/ const char * fn) 00109 /*@globals fileSystem @*/ 00110 /*@modifies xar, fileSystem @*/; 00111 00112 int rpmxarSwapBuf(rpmxar xar, /*@null@*/ unsigned char * b, size_t bsize, 00113 /*@null@*/ unsigned char ** obp, /*@null@*/ size_t * obsizep) 00114 /*@globals fileSystem @*/ 00115 /*@modifies xar, *obp, *obsizep, fileSystem @*/; 00116 00117 /*@-incondefs@*/ 00118 ssize_t xarRead(void * cookie, /*@out@*/ char * buf, size_t count) 00119 /*@globals fileSystem, internalState @*/ 00120 /*@modifies buf, fileSystem, internalState @*/ 00121 /*@requires maxSet(buf) >= (count - 1) @*/; 00122 /*@=incondefs@*/ 00123 00129 /*@null@*/ 00130 const char * rpmxarPath(rpmxar xar) 00131 /*@globals fileSystem @*/ 00132 /*@modifies xar, fileSystem @*/; 00133 00140 int rpmxarStat(rpmxar xar, struct stat * st) 00141 /*@globals fileSystem @*/ 00142 /*@modifies xar, *st, fileSystem @*/; 00143 00144 #ifdef __cplusplus 00145 } 00146 #endif 00147 00148 #endif /* H_RPMXAR */