Add macro %isu_package to generate ISU Package
[platform/upstream/rpm.git] / rpmio / rpmio.h
1 #ifndef H_RPMIO
2 #define H_RPMIO
3
4 /** \ingroup rpmio
5  * \file rpmio/rpmio.h
6  *
7  */
8
9 #include <sys/types.h>
10 #include <sys/stat.h>
11 #include <stdio.h>
12 #include <stdlib.h>
13 #include <unistd.h>
14
15 #include <rpm/rpmtypes.h>
16 #include <rpm/rpmsw.h>
17
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21
22 /** \ingroup rpmio
23  */
24 typedef const struct FDIO_s * FDIO_t;
25
26
27 /** \ingroup rpmio
28  * \name RPMIO Interface.
29  */
30
31 /** \ingroup rpmio
32  * strerror(3) clone.
33  */
34 const char * Fstrerror(FD_t fd);
35
36 /** \ingroup rpmio
37  * fread(3) clone.
38  */
39 ssize_t Fread(void * buf, size_t size, size_t nmemb, FD_t fd);
40
41 /** \ingroup rpmio
42  * fwrite(3) clone.
43  */
44 ssize_t Fwrite(const void * buf, size_t size, size_t nmemb, FD_t fd);
45
46 /** \ingroup rpmio
47  * fseek(3) clone.
48  */
49 int Fseek(FD_t fd, off_t offset, int whence);
50
51 /** \ingroup rpmio
52  * ftell(3) clone.
53  */
54 off_t Ftell(FD_t fd);
55
56 /** \ingroup rpmio
57  * fclose(3) clone.
58  */
59 int Fclose( FD_t fd);
60
61 /** \ingroup rpmio
62  */
63 FD_t    Fdopen(FD_t ofd, const char * fmode);
64
65 /** \ingroup rpmio
66  * fopen(3) clone.
67  */
68 FD_t    Fopen(const char * path,
69                         const char * fmode);
70
71
72 /** \ingroup rpmio
73  * fflush(3) clone.
74  */
75 int Fflush(FD_t fd);
76
77 /** \ingroup rpmio
78  * ferror(3) clone.
79  */
80 int Ferror(FD_t fd);
81
82 /** \ingroup rpmio
83  * fileno(3) clone.
84  */
85 int Fileno(FD_t fd);
86
87 /** \ingroup rpmio
88  * fcntl(2) clone.
89  */
90 int Fcntl(FD_t fd, int op, void *lip);
91
92 /** \ingroup rpmio
93  * Get informative description (eg file name) from fd for diagnostic output.
94  */
95 const char * Fdescr(FD_t fd);
96
97 /** \ingroup rpmio
98  * \name RPMIO Utilities.
99  */
100
101 /** \ingroup rpmio
102  */
103 off_t   fdSize(FD_t fd);
104
105 /** \ingroup rpmio
106  */
107 FD_t fdDup(int fdno);
108
109 /** \ingroup rpmio
110  */
111 FD_t fdLink(FD_t fd);
112
113 /** \ingroup rpmio
114  */
115 FD_t fdFree(FD_t fd);
116
117 /**
118  */
119 off_t ufdCopy(FD_t sfd, FD_t tfd);
120
121 /** \ingroup rpmio
122  * Identify per-desciptor I/O operation statistics.
123  */
124 typedef enum fdOpX_e {
125     FDSTAT_READ         = 0,    /*!< Read statistics index. */
126     FDSTAT_WRITE        = 1,    /*!< Write statistics index. */
127     FDSTAT_SEEK         = 2,    /*!< Seek statistics index. */
128     FDSTAT_CLOSE        = 3,    /*!< Close statistics index */
129     FDSTAT_DIGEST       = 4,    /*!< Digest statistics index. */
130     FDSTAT_MAX          = 5
131 } fdOpX;
132
133 /** \ingroup rpmio
134  *
135  */
136 rpmop fdOp(FD_t fd, fdOpX opx);
137
138 #ifdef __cplusplus
139 }
140 #endif
141
142 #endif  /* H_RPMIO */