1 #ifndef _H_RPMLEAD
2 #define _H_RPMLEAD
3 
4 /** \ingroup lead
5  * \file lib/rpmlead.h
6  * Routines to read and write an rpm lead structure for a a package.
7  */
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 #define RPMLEAD_BINARY 0
13 #define RPMLEAD_SOURCE 1
14 
15 #define RPMLEAD_MAGIC0 0xed
16 #define RPMLEAD_MAGIC1 0xab
17 #define RPMLEAD_MAGIC2 0xee
18 #define RPMLEAD_MAGIC3 0xdb
19 
20 #define RPMLEAD_SIZE 96         /*!< Don't rely on sizeof(struct) */
21 
22 /** \ingroup lead
23  * Write lead to file handle.
24  * @param fd		file handle
25  * @param h		package header
26  * @return		RPMRC_OK on success, RPMRC_FAIL on error
27  */
28 rpmRC rpmLeadWrite(FD_t fd, Header h);
29 
30 /** \ingroup lead
31  * Read lead from file handle.
32  * @param fd		file handle
33  * @retval emsg		failure message on error (malloced)
34  * @return		RPMRC_OK on success, RPMRC_FAIL/RPMRC_NOTFOUND on error
35  */
36 rpmRC rpmLeadRead(FD_t fd, char **emsg);
37 
38 #ifdef __cplusplus
39 }
40 #endif
41 
42 #endif	/* _H_RPMLEAD */
43