Don't need to include XDR headers in <guestfs.h>.
[libguestfs.git] / src / guestfs-internal.h
index 529aa7d..6dbbeec 100644 (file)
 #ifndef GUESTFS_INTERNAL_H_
 #define GUESTFS_INTERNAL_H_
 
+#include <rpc/types.h>
+#include <rpc/xdr.h>
+
+#ifdef HAVE_PCRE
+#include <pcre.h>
+#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;
@@ -167,6 +175,10 @@ enum inspect_os_distro {
   OS_DISTRO_RHEL,
   OS_DISTRO_WINDOWS,
   OS_DISTRO_PARDUS,
+  OS_DISTRO_ARCHLINUX,
+  OS_DISTRO_GENTOO,
+  OS_DISTRO_UBUNTU,
+  OS_DISTRO_MEEGO,
 };
 
 struct inspect_fs {
@@ -196,6 +208,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);
@@ -216,13 +230,28 @@ 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
 #define safe_realloc guestfs_safe_realloc
 #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_ */