X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fdaemon.h;h=7ba75990b1e25df721e1c07dddcbcf0433b1cc93;hb=a9519654032d2f09e76870d5d04dae2dff752c5b;hp=ac6847927116bb3c89f5f28411b4fe1810b5dd68;hpb=3e70b34eed5a48640e20fbf6dcba774aaace1f3c;p=libguestfs.git diff --git a/daemon/daemon.h b/daemon/daemon.h index ac68479..7ba7599 100644 --- a/daemon/daemon.h +++ b/daemon/daemon.h @@ -19,6 +19,7 @@ #ifndef GUESTFSD_DAEMON_H #define GUESTFSD_DAEMON_H +#include #include #include #include @@ -104,6 +105,13 @@ extern guestfs_int_lvm_lv_list *parse_command_line_lvs (void); /*-- in proto.c --*/ extern void main_loop (int sock) __attribute__((noreturn)); +/*-- in optgroups.c (auto-generated) --*/ +struct optgroup { + const char *group; /* Name of the optional group. */ + int (*available) (void); /* Function to test availability. */ +}; +extern struct optgroup optgroups[]; + /* ordinary daemon functions use these to indicate errors */ extern void reply_with_error (const char *fs, ...) __attribute__((format (printf,1,2))); @@ -224,6 +232,16 @@ extern void reply (xdrproc_t xdrp, char *ret); } \ while (0) +/* Marks functions which are not available. + * NB. Cannot be used for FileIn functions. + */ +#define NOT_AVAILABLE(errcode) \ + do { \ + reply_with_error ("%s: function not available", __func__); \ + return (errcode); \ + } \ + while (0) + #ifndef __attribute__ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) # define __attribute__(x) /* empty */