rpm  5.4.10
rpmxar.h
Go to the documentation of this file.
1 #ifndef H_RPMXAR
2 #define H_RPMXAR
3 
9 #include <rpmiotypes.h>
10 
11 /*@unchecked@*/
12 extern int _xar_debug;
13 
14 typedef /*@abstract@*/ /*@refcounted@*/ struct rpmxar_s * rpmxar;
15 
16 #ifdef _RPMXAR_INTERNAL
17 #include "yarn.h"
18 struct rpmxar_s {
19  struct rpmioItem_s _item;
20 /*@relnull@*/
21  const void * x;
22 /*@relnull@*/
23  const void * f;
24 /*@relnull@*/
25  const void * i;
26 /*@null@*/
27  const char * member;
28 /*@null@*/
29  unsigned char * b;
30  size_t bsize;
31  size_t bx;
32  int first;
33 #if defined(__LCLINT__)
34 /*@refs@*/
35  int nrefs;
36 #endif
37 };
38 #endif
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
50 /*@unused@*/ /*@null@*/
51 rpmxar rpmxarUnlink (/*@killref@*/ /*@only@*/ /*@null@*/ rpmxar xar,
52  /*@null@*/ const char * msg)
53  /*@modifies xar @*/;
54 #define rpmxarUnlink(_xar, _msg) \
55  ((rpmxar)rpmioUnlinkPoolItem((rpmioItem)(_xar), _msg, __FILE__, __LINE__))
56 
63 /*@unused@*/ /*@newref@*/ /*@null@*/
64 rpmxar rpmxarLink (/*@null@*/ rpmxar xar, /*@null@*/ const char * msg)
65  /*@modifies xar @*/;
66 #define rpmxarLink(_xar, _msg) \
67  ((rpmxar)rpmioLinkPoolItem((rpmioItem)(_xar), _msg, __FILE__, __LINE__))
68 
75 /*@unused@*/ /*@null@*/
76 rpmxar rpmxarFree(/*@killref@*/ /*@only@*/ rpmxar xar,
77  /*@null@*/ const char * msg)
78  /*@modifies xar @*/;
79 #define rpmxarFree(_xar, _msg) \
80  ((rpmxar)rpmioFreePoolItem((rpmioItem)(_xar), _msg, __FILE__, __LINE__))
81 
88 /*@-globuse@*/
89 /*@relnull@*/
90 rpmxar rpmxarNew(const char * fn, const char * fmode)
91  /*@globals fileSystem @*/
92  /*@modifies fileSystem @*/;
93 /*@=globuse@*/
94 
100 int rpmxarNext(rpmxar xar)
101  /*@globals fileSystem @*/
102  /*@modifies xar, fileSystem @*/;
103 
104 int rpmxarPush(rpmxar xar, const char * fn, unsigned char * b, size_t bsize)
105  /*@globals fileSystem @*/
106  /*@modifies xar, fileSystem @*/;
107 
108 int rpmxarPull(rpmxar xar, /*@null@*/ const char * fn)
109  /*@globals fileSystem @*/
110  /*@modifies xar, fileSystem @*/;
111 
112 int rpmxarSwapBuf(rpmxar xar, /*@null@*/ unsigned char * b, size_t bsize,
113  /*@null@*/ unsigned char ** obp, /*@null@*/ size_t * obsizep)
114  /*@globals fileSystem @*/
115  /*@modifies xar, *obp, *obsizep, fileSystem @*/;
116 
117 /*@-incondefs@*/
118 ssize_t xarRead(void * cookie, /*@out@*/ char * buf, size_t count)
119  /*@globals fileSystem, internalState @*/
120  /*@modifies buf, fileSystem, internalState @*/
121  /*@requires maxSet(buf) >= (count - 1) @*/;
122 /*@=incondefs@*/
123 
129 /*@null@*/
130 const char * rpmxarPath(rpmxar xar)
131  /*@globals fileSystem @*/
132  /*@modifies xar, fileSystem @*/;
133 
140 int rpmxarStat(rpmxar xar, struct stat * st)
141  /*@globals fileSystem @*/
142  /*@modifies xar, *st, fileSystem @*/;
143 
144 #ifdef __cplusplus
145 }
146 #endif
147 
148 #endif /* H_RPMXAR */