X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=src%2Fguestfs.h;h=0f4f9fde9786e217128e6b7fb7b5a9a0234cc833;hp=5e0ae4304c27407a1cc787d0685c67f26829c342;hb=7fc338690f385c2495b7ba5f98346a5c057991ea;hpb=1f56debfcfdc35d6b0e7fec469dba0598d7f1901 diff --git a/src/guestfs.h b/src/guestfs.h index 5e0ae43..0f4f9fd 100644 --- a/src/guestfs.h +++ b/src/guestfs.h @@ -16,60 +16,83 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef GUESTFS_H_ -#define GUESTFS_H_ - -/* IMPORTANT NOTE +/* IMPORTANT NOTE: * * All API documentation is in the manpage, 'guestfs(3)'. * To read it, type: * man 3 guestfs * Or read it online here: * http://libguestfs.org/guestfs.3.html + * * Go and read it now, I'll wait for you to come back. */ +#ifndef GUESTFS_H_ +#define GUESTFS_H_ + #ifdef __cplusplus extern "C" { #endif +#include +#include + typedef struct guestfs_h guestfs_h; -/* Connection management. */ +/*--- Connection management ---*/ extern guestfs_h *guestfs_create (void); extern void guestfs_close (guestfs_h *g); -/* Error handling. */ +/*--- Error handling ---*/ extern const char *guestfs_last_error (guestfs_h *g); +#define LIBGUESTFS_HAVE_LAST_ERRNO 1 +extern int guestfs_last_errno (guestfs_h *g); -typedef void (*guestfs_error_handler_cb) (guestfs_h *g, void *data, const char *msg); +typedef void (*guestfs_error_handler_cb) (guestfs_h *g, void *opaque, const char *msg); typedef void (*guestfs_abort_cb) (void) __attribute__((__noreturn__)); -extern void guestfs_set_error_handler (guestfs_h *g, guestfs_error_handler_cb cb, void *data); -extern guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g, void **data_rtn); +extern void guestfs_set_error_handler (guestfs_h *g, guestfs_error_handler_cb cb, void *opaque); +extern guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g, void **opaque_rtn); extern void guestfs_set_out_of_memory_handler (guestfs_h *g, guestfs_abort_cb); extern guestfs_abort_cb guestfs_get_out_of_memory_handler (guestfs_h *g); -/* Events. */ -typedef void (*guestfs_log_message_cb) (guestfs_h *g, void *data, char *buf, int len); -typedef void (*guestfs_subprocess_quit_cb) (guestfs_h *g, void *data); -typedef void (*guestfs_launch_done_cb) (guestfs_h *g, void *data); +/*--- Events ---*/ +typedef void (*guestfs_log_message_cb) (guestfs_h *g, void *opaque, char *buf, int len); +typedef void (*guestfs_subprocess_quit_cb) (guestfs_h *g, void *opaque); +typedef void (*guestfs_launch_done_cb) (guestfs_h *g, void *opaque); +typedef void (*guestfs_close_cb) (guestfs_h *g, void *opaque); +typedef void (*guestfs_progress_cb) (guestfs_h *g, void *opaque, int proc_nr, int serial, uint64_t position, uint64_t total); extern void guestfs_set_log_message_callback (guestfs_h *g, guestfs_log_message_cb cb, void *opaque); extern void guestfs_set_subprocess_quit_callback (guestfs_h *g, guestfs_subprocess_quit_cb cb, void *opaque); extern void guestfs_set_launch_done_callback (guestfs_h *g, guestfs_launch_done_cb cb, void *opaque); +#define LIBGUESTFS_HAVE_SET_CLOSE_CALLBACK 1 +extern void guestfs_set_close_callback (guestfs_h *g, guestfs_close_cb cb, void *opaque); +#define LIBGUESTFS_HAVE_SET_PROGRESS_CALLBACK 1 +extern void guestfs_set_progress_callback (guestfs_h *g, guestfs_progress_cb cb, void *opaque); +/*--- Private data area ---*/ +#define LIBGUESTFS_HAVE_SET_PRIVATE 1 +extern void guestfs_set_private (guestfs_h *g, const char *key, void *data); +#define LIBGUESTFS_HAVE_GET_PRIVATE 1 +extern void *guestfs_get_private (guestfs_h *g, const char *key); + +/*--- Structures and actions ---*/ +#include #include #include #include -/* PRIVATE: These are NOT part of the public, stable API, and can - * change at any time! We export them because they are used by some - * of the language bindings. +/*--- Private --- + * + * These are NOT part of the public, stable API, and can change at any + * time! We export them because they are used by some of the language + * bindings. */ extern void *guestfs_safe_malloc (guestfs_h *g, size_t nbytes); extern void *guestfs_safe_calloc (guestfs_h *g, size_t n, size_t s); +extern const char *guestfs_tmpdir (void); /* End of private functions. */ #ifdef __cplusplus