Fixed up base64_dump() users and interfaces to fix memory leaks
[jigit.git] / jte.h
1 typedef long long INT64;
2 typedef unsigned long long UINT64;
3 typedef unsigned long      UINT32;
4
5 #ifndef LLONG_MAX
6 #   define LLONG_MAX (INT64)INT_MAX * INT_MAX
7 #endif
8
9 #define BUF_SIZE 65536
10 #define MISSING -1
11
12 #ifndef MIN
13 #define MIN(x,y)        ( ((x) < (y)) ? (x) : (y))
14 #endif
15
16 #define JD void
17
18 typedef enum
19 {
20     CT_GZIP,
21     CT_BZIP2
22 } ctype_e;
23
24 /* Limited FS-like interface to an ISO image */
25 JD *jd_open(char *template_file);
26 int jd_read(JD *state, INT64 start_offset, INT64 length, unsigned char *buffer, INT64 *bytes_read);
27 int jd_md5(JD *state, unsigned char md5[16]);
28 int jd_size(JD *state, INT64 *size);
29 int jd_last_filename(JD *state, char **name);
30 int jd_close(JD *state);
31
32 typedef struct match_list_
33 {
34     struct match_list_ *next;
35     char *match;
36     char *mirror_path;
37 } match_list_t;
38
39 typedef struct md5_list_
40 {
41     struct md5_list_ *next;
42     INT64 file_size;
43     char *md5;
44     char *full_path;
45 } md5_list_t;
46
47 extern match_list_t *G_match_list_head;
48 extern match_list_t *G_match_list_tail;
49 extern md5_list_t *G_md5_list_head;
50 extern md5_list_t *G_md5_list_tail;
51 extern FILE *G_logfile;
52 extern FILE *G_missing_file;
53 extern char *G_missing_filename;
54 extern int G_verbose;
55 extern int G_quick;
56 extern UINT64 G_out_size;
57 extern long long G_start_offset;
58 extern long long G_end_offset;
59
60 /* Interface functions */
61 extern void display_progress(FILE *file, char *text);
62 extern void file_missing(char *missing, char *filename);
63
64 /* decompress.c */
65 int decompress_data_block(char *in_buf, INT64 in_len, char *out_buf,
66                           INT64 out_len, int compress_type);
67
68 /* parse_jigdo.c */
69 int parse_jigdo_file(char *filename);
70 int parse_md5_file(char *filename);
71 md5_list_t *find_file_in_md5_list(unsigned char *base64_md5);
72 INT64 get_file_size(char *filename);
73
74 /* parse_template.c */
75 int parse_template_file(char *filename, int sizeonly, char *missing,
76                         FILE *outfile, char *output_name, JIGDB *dbp);
77
78
79