1 /* febootstrap-supermin-helper reimplementation in C.
2 * Copyright (C) 2009-2010 Red Hat Inc.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 #ifndef FEBOOTSTRAP_SUPERMIN_HELPER_H
20 #define FEBOOTSTRAP_SUPERMIN_HELPER_H
26 /* Start a new appliance, finish one off. */
27 void (*wr_start) (const char *appliance);
28 void (*wr_end) (void);
30 /* Append the named host file to the appliance being built. The
31 * wr_file_stat form is used where we have already stat'd this file,
32 * to avoid having to stat it a second time. The wr_fts_entry form
33 * is used where the caller has an FTSENT.
35 void (*wr_file) (const char *filename);
36 void (*wr_file_stat) (const char *filename, const struct stat *);
37 void (*wr_fts_entry) (FTSENT *entry);
39 /* Append the contents of cpio file to the appliance being built. */
40 void (*wr_cpio_file) (const char *cpio_file);
44 extern struct timeval start_t;
48 extern void create_appliance (char **inputs, int nr_inputs, const char *whitelist, const char *modpath, const char *appliance, struct writer *writer);
51 extern struct writer cpio_writer;
54 extern const char *create_kernel (const char *hostcpu, const char *kernel);
57 extern void print_timestamped_message (const char *fs, ...);
58 extern int64_t timeval_diff (const struct timeval *x, const struct timeval *y);
59 extern int reverse_filevercmp (const void *p1, const void *p2);
60 extern void add_string (char ***argv, size_t *n_used, size_t *n_alloc, const char *str);
61 extern size_t count_strings (char *const *argv);
62 extern char **read_dir (const char *name);
63 extern char **filter (char **strings, int (*)(const char *));
64 extern char **filter_fnmatch (char **strings, const char *patt, int flags);
65 extern char **filter_notmatching_substring (char **strings, const char *sub);
66 extern void sort (char **strings, int (*compare) (const void *, const void *));
67 extern int isdir (const char *path);
68 extern char **load_file (const char *filename);
70 #endif /* FEBOOTSTRAP_SUPERMIN_HELPER_H */