X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=src%2Fguestfs-internal.h;h=65ca4f2008bab6fbd749ac0cfcac25d22e37c9c1;hp=ffd8cf156076f2c4b69e10e77f9091aa5e1feeb2;hb=cd96cca38cea638a6db76afceeed76babc9e763c;hpb=6b8d05438cc0309f762fabf2f3cc7ae4bf5521c1 diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h index ffd8cf1..65ca4f2 100644 --- a/src/guestfs-internal.h +++ b/src/guestfs-internal.h @@ -19,6 +19,13 @@ #ifndef GUESTFS_INTERNAL_H_ #define GUESTFS_INTERNAL_H_ +#include +#include + +#ifdef HAVE_PCRE +#include +#endif + #define STREQ(a,b) (strcmp((a),(b)) == 0) #define STRCASEEQ(a,b) (strcasecmp((a),(b)) == 0) #define STRNEQ(a,b) (strcmp((a),(b)) != 0) @@ -114,6 +121,7 @@ struct guestfs_h int selinux; /* selinux enabled? */ char *last_error; + int last_errnum; /* errno, or 0 if there was no errno */ /* Callbacks. */ guestfs_abort_cb abort_cb; @@ -173,6 +181,25 @@ enum inspect_os_distro { OS_DISTRO_MEEGO, }; +enum inspect_os_package_format { + OS_PACKAGE_FORMAT_UNKNOWN = 0, + OS_PACKAGE_FORMAT_RPM, + OS_PACKAGE_FORMAT_DEB, + OS_PACKAGE_FORMAT_PACMAN, + OS_PACKAGE_FORMAT_EBUILD, + OS_PACKAGE_FORMAT_PISI +}; + +enum inspect_os_package_management { + OS_PACKAGE_MANAGEMENT_UNKNOWN = 0, + OS_PACKAGE_MANAGEMENT_YUM, + OS_PACKAGE_MANAGEMENT_UP2DATE, + OS_PACKAGE_MANAGEMENT_APT, + OS_PACKAGE_MANAGEMENT_PACMAN, + OS_PACKAGE_MANAGEMENT_PORTAGE, + OS_PACKAGE_MANAGEMENT_PISI, +}; + struct inspect_fs { int is_root; char *device; @@ -181,6 +208,8 @@ struct inspect_fs { enum inspect_fs_content content; enum inspect_os_type type; enum inspect_os_distro distro; + enum inspect_os_package_format package_format; + enum inspect_os_package_management package_management; char *product_name; int major_version; int minor_version; @@ -200,6 +229,8 @@ struct guestfs_message_error; extern void guestfs_error (guestfs_h *g, const char *fs, ...) __attribute__((format (printf,2,3))); +extern void guestfs_error_errno (guestfs_h *g, int errnum, const char *fs, ...) + __attribute__((format (printf,3,4))); extern void guestfs_perrorf (guestfs_h *g, const char *fs, ...) __attribute__((format (printf,2,3))); extern void *guestfs_safe_realloc (guestfs_h *g, void *ptr, int nbytes); @@ -220,8 +251,17 @@ extern int guestfs___recv_from_daemon (guestfs_h *g, uint32_t *size_rtn, void ** extern int guestfs___accept_from_daemon (guestfs_h *g); extern int guestfs___build_appliance (guestfs_h *g, char **kernel, char **initrd, char **appliance); extern void guestfs___print_BufferIn (FILE *out, const char *buf, size_t buf_size); +#ifdef HAVE_PCRE +extern int guestfs___match (guestfs_h *g, const char *str, const pcre *re); +extern char *guestfs___match1 (guestfs_h *g, const char *str, const pcre *re); +extern int guestfs___match2 (guestfs_h *g, const char *str, const pcre *re, char **ret1, char **ret2); +#endif +extern int guestfs___feature_available (guestfs_h *g, const char *feature); +extern void guestfs___free_string_list (char **); +extern int guestfs___checkpoint_cmdline (guestfs_h *g); +extern void guestfs___rollback_cmdline (guestfs_h *g, int pos); -#define error guestfs_error +#define error(g,...) guestfs_error_errno((g),0,__VA_ARGS__) #define perrorf guestfs_perrorf #define safe_calloc guestfs_safe_calloc #define safe_malloc guestfs_safe_malloc @@ -229,5 +269,10 @@ extern void guestfs___print_BufferIn (FILE *out, const char *buf, size_t buf_siz #define safe_strdup guestfs_safe_strdup #define safe_strndup guestfs_safe_strndup #define safe_memdup guestfs_safe_memdup +#ifdef HAVE_PCRE +#define match guestfs___match +#define match1 guestfs___match1 +#define match2 guestfs___match2 +#endif #endif /* GUESTFS_INTERNAL_H_ */