No change, just tidy up the header file.
---
daemon/daemon.h | 283 ++++++++++++++++++++++++++------------------------------
1 file changed, 130 insertions(+), 153 deletions(-)
diff --git a/daemon/daemon.h b/daemon/daemon.h
index be7a3bedc..50ce41306 100644
--- a/daemon/daemon.h
+++ b/daemon/daemon.h
@@ -38,7 +38,11 @@
#include "structs-cleanups.h"
#include "command.h"
-/* Mountables */
+struct stringsbuf {
+ char **argv;
+ size_t size;
+ size_t alloc;
+};
typedef struct {
mountable_type_t type;
@@ -46,40 +50,52 @@ typedef struct {
char *volume;
} mountable_t;
-extern void cleanup_free_mountable (mountable_t *mountable);
-
-#ifdef HAVE_ATTRIBUTE_CLEANUP
-#define CLEANUP_FREE_MOUNTABLE __attribute__((cleanup(cleanup_free_mountable)))
-#else
-#define CLEANUP_FREE_MOUNTABLE
-#endif
-
-/*-- in guestfsd.c --*/
+/* guestfsd.c */
extern int verbose;
-
extern int enable_network;
-
extern int autosync_umount;
-
extern int test_mode;
-
extern const char *sysroot;
extern size_t sysroot_len;
extern char *sysroot_path (const char *path);
extern char *sysroot_realpath (const char *path);
-
extern int is_root_device (const char *device);
-
extern int xwrite (int sock, const void *buf, size_t len)
__attribute__((__warn_unused_result__));
extern int xread (int sock, void *buf, size_t len)
__attribute__((__warn_unused_result__));
+extern void sort_strings (char **argv, size_t len);
+extern void free_stringslen (char **argv, size_t len);
+extern void sort_device_names (char **argv, size_t len);
+extern int compare_device_names (const char *a, const char *b);
+extern char **take_stringsbuf (struct stringsbuf *sb);
+extern void free_stringsbuf (struct stringsbuf *sb);
+extern struct stringsbuf split_lines_sb (char *str);
+extern char **split_lines (char *str);
+extern char **empty_list (void);
+extern int is_power_of_2 (unsigned long v);
+extern void trim (char *str);
+extern int parse_btrfsvol (const char *desc, mountable_t *mountable);
+extern int prog_exists (const char *prog);
+extern void udev_settle_file (const char *file);
+extern void udev_settle (void);
+extern int random_name (char *template);
+extern char *get_random_uuid (void);
+extern char *make_exclude_from_file (const char *function, char *const *excludes);
+extern int asprintf_nowarn (char **strp, const char *fmt, ...);
+/* mountable functions (in guestfsd.c) */
extern char *mountable_to_string (const mountable_t *mountable);
+extern void cleanup_free_mountable (mountable_t *mountable);
-/*-- in cleanups.c --*/
+#ifdef HAVE_ATTRIBUTE_CLEANUP
+#define CLEANUP_FREE_MOUNTABLE __attribute__((cleanup(cleanup_free_mountable)))
+#else
+#define CLEANUP_FREE_MOUNTABLE
+#endif
+/* cleanups.c */
/* These functions are used internally by the CLEANUP_* macros.
* Don't call them directly.
*/
@@ -94,18 +110,14 @@ extern void cleanup_free_stringsbuf (void *ptr);
#define CLEANUP_FREE_STRINGSBUF
#endif
-/*-- in mount.c --*/
-
+/* mount.c */
extern int mount_vfs_nochroot (const char *options, const char *vfstype,
const mountable_t *mountable,
const char *mp, const char *user_mp);
+extern int is_root_mounted (void);
+extern int is_device_mounted (const char *device);
-/* Growable strings buffer. */
-struct stringsbuf {
- char **argv;
- size_t size;
- size_t alloc;
-};
+/* stringsbuf.c: growable strings buffer. */
#define DECLARE_STRINGSBUF(v) \
struct stringsbuf (v) = { .argv = NULL, .size = 0, .alloc = 0 }
@@ -124,101 +136,130 @@ extern int add_string (struct stringsbuf *sb, const char *str);
extern int add_sprintf (struct stringsbuf *sb, const char *fs, ...)
__attribute__((format (printf,2,3)));
extern int end_stringsbuf (struct stringsbuf *sb);
-extern char **take_stringsbuf (struct stringsbuf *sb);
-extern void free_stringsbuf (struct stringsbuf *sb);
-extern void sort_strings (char **argv, size_t len);
-extern void free_stringslen (char **argv, size_t len);
-extern void sort_device_names (char **argv, size_t len);
-extern int compare_device_names (const char *a, const char *b);
-
-extern struct stringsbuf split_lines_sb (char *str);
-extern char **split_lines (char *str);
-
-extern char **empty_list (void);
-
-#define __external_command __attribute__((__section__(".guestfsd_ext_cmds")))
-#define GUESTFSD_EXT_CMD(___ext_cmd_var, ___ext_cmd_str) static const char
___ext_cmd_var[] __external_command = #___ext_cmd_str
-
-extern int is_power_of_2 (unsigned long v);
-
-extern void trim (char *str);
-
-extern int parse_btrfsvol (const char *desc, mountable_t *mountable);
-
-extern int prog_exists (const char *prog);
-
-extern void udev_settle_file (const char *file);
-
-extern void udev_settle (void);
-
-extern int random_name (char *template);
-
-extern char *get_random_uuid (void);
-
-extern char *make_exclude_from_file (const char *function, char *const *excludes);
-
-extern int asprintf_nowarn (char **strp, const char *fmt, ...);
-
-/*-- in names.c (auto-generated) --*/
+/* names.c (auto-generated) */
extern const char *function_names[];
-/*-- in proto.c --*/
+/* proto.c */
extern int proc_nr;
extern int serial;
extern uint64_t progress_hint;
extern uint64_t optargs_bitmask;
-/*-- in mount.c --*/
-extern int is_root_mounted (void);
-extern int is_device_mounted (const char *device);
+extern void main_loop (int sock) __attribute__((noreturn));
-/*-- in device-name-translation.c --*/
+/* Ordinary daemon functions use these to indicate errors.
+ * NB: you don't need to prefix the string with the current command,
+ * it is added automatically by the client-side RPC stubs.
+ */
+extern void reply_with_error_errno (int err, const char *fs, ...)
+ __attribute__((format (printf,2,3)));
+extern void reply_with_perror_errno (int err, const char *fs, ...)
+ __attribute__((format (printf,2,3)));
+#define reply_with_error(...) reply_with_error_errno(0, __VA_ARGS__)
+#define reply_with_perror(...) reply_with_perror_errno(errno, __VA_ARGS__)
+#define reply_with_unavailable_feature(feature) \
+ reply_with_error_errno (ENOTSUP, \
+ "feature '%s' is not available in this\n" \
+ "build of libguestfs. Read 'AVAILABILITY' in the guestfs(3) man page
for\n" \
+ "how to check for the availability of features.", \
+ feature)
+
+/* Daemon functions that receive files (FileIn) should call
+ * receive_file for each FileIn parameter.
+ */
+typedef int (*receive_cb) (void *opaque, const void *buf, size_t len);
+extern int receive_file (receive_cb cb, void *opaque);
+
+/* Daemon functions that receive files (FileIn) can call this
+ * to cancel incoming transfers (eg. if there is a local error).
+ */
+extern int cancel_receive (void);
+
+/* Daemon functions that return files (FileOut) should call
+ * reply, then send_file_* for each FileOut parameter.
+ * Note max write size if GUESTFS_MAX_CHUNK_SIZE.
+ */
+extern int send_file_write (const void *buf, size_t len);
+extern int send_file_end (int cancel);
+
+/* Only call this if there is a FileOut parameter. */
+extern void reply (xdrproc_t xdrp, char *ret);
+
+/* Notify progress to caller. This function is self-rate-limiting so
+ * you can call it as often as necessary. Actions which call this
+ * should add 'Progress' note in generator.
+ */
+extern void notify_progress (uint64_t position, uint64_t total);
+
+/* Pulse mode progress messages.
+ *
+ * Call pulse_mode_start to start sending progress messages.
+ *
+ * Call pulse_mode_end along the ordinary exit path (ie. before a
+ * reply message is sent).
+ *
+ * Call pulse_mode_cancel along all error paths *before* any reply is
+ * sent. pulse_mode_cancel does not modify errno, so it is safe to
+ * call it before reply_with_perror.
+ *
+ * Pulse mode and ordinary notify_progress must not be mixed.
+ */
+extern void pulse_mode_start (void);
+extern void pulse_mode_end (void);
+extern void pulse_mode_cancel (void);
+
+/* Send a progress message without rate-limiting. This is just
+ * for debugging - DON'T use it in regular code!
+ */
+extern void notify_progress_no_ratelimit (uint64_t position, uint64_t total, const struct
timeval *now);
+
+/* device-name-translation.c */
extern char *device_name_translation (const char *device);
extern char *reverse_device_name_translation (const char *device);
-/*-- in stubs.c (auto-generated) --*/
+/* stubs.c (auto-generated) */
extern void dispatch_incoming_message (XDR *);
extern guestfs_int_lvm_pv_list *parse_command_line_pvs (void);
extern guestfs_int_lvm_vg_list *parse_command_line_vgs (void);
extern guestfs_int_lvm_lv_list *parse_command_line_lvs (void);
-/*-- in optgroups.c (auto-generated) --*/
+/* 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[];
-/*-- in available.c --*/
+/* available.c */
extern int filesystem_available (const char *filesystem);
-/*-- in sync.c --*/
+/* sync.c */
/* Use this as a replacement for sync(2). */
extern int sync_disks (void);
-/*-- in ext2.c --*/
+/* ext2.c */
/* Confirmed this is true up to ext4 from the Linux sources. */
#define EXT2_LABEL_MAX 16
extern int fstype_is_extfs (const char *fstype);
extern int ext_set_uuid_random (const char *device);
extern int64_t ext_minimum_size (const char *device);
-/*-- in blkid.c --*/
+/* blkid.c */
extern char *get_blkid_tag (const char *device, const char *tag);
-/*-- in lvm.c --*/
+/* lvm.c */
extern int lv_canonical (const char *device, char **ret);
-/*-- in lvm-filter.c --*/
+/* lvm-filter.c */
extern void copy_lvm (void);
extern void start_lvmetad (void);
-/*-- in zero.c --*/
+/* zero.c */
extern void wipe_device_before_mkfs (const char *device);
-/*-- in augeas.c --*/
+/* augeas.c */
extern void aug_read_version (void);
extern void aug_finalize (void);
@@ -233,17 +274,16 @@ augeas_is_version (int major, int minor, int patch)
return augeas_version >= ((major << 16) | (minor << 8) | patch);
}
-/*-- hivex.c, journal.c --*/
+/* hivex.c */
extern void hivex_finalize (void);
+
+/* journal.c */
extern void journal_finalize (void);
-/*-- in proto.c --*/
-extern void main_loop (int sock) __attribute__((noreturn));
-
-/*-- in xattr.c --*/
+/* xattr.c */
extern int copy_xattrs (const char *src, const char *dest);
-/*-- in xfs.c --*/
+/* xfs.c */
/* Documented in xfs_admin(8). */
#define XFS_LABEL_MAX 12
extern int xfs_set_uuid (const char *device, const char *uuid);
@@ -251,96 +291,30 @@ extern int xfs_set_uuid_random (const char *device);
extern int xfs_set_label (const char *device, const char *label);
extern int64_t xfs_minimum_size (const char *path);
-/*-- debug-bmap.c --*/
+/* debug-bmap.c */
extern char *debug_bmap (const char *subcmd, size_t argc, char *const *const argv);
extern char *debug_bmap_file (const char *subcmd, size_t argc, char *const *const argv);
extern char *debug_bmap_device (const char *subcmd, size_t argc, char *const *const
argv);
-/*-- in btrfs.c --*/
+/* btrfs.c */
extern char *btrfs_get_label (const char *device);
extern int btrfs_set_label (const char *device, const char *label);
extern int btrfs_set_uuid (const char *device, const char *uuid);
extern int btrfs_set_uuid_random (const char *device);
extern int64_t btrfs_minimum_size (const char *path);
-/*-- in ntfs.c --*/
+/* ntfs.c */
extern char *ntfs_get_label (const char *device);
extern int ntfs_set_label (const char *device, const char *label);
extern int64_t ntfs_minimum_size (const char *device);
-/*-- in swap.c --*/
+/* swap.c */
extern int swap_set_uuid (const char *device, const char *uuid);
extern int swap_set_label (const char *device, const char *label);
-/*-- in upload.c --*/
+/* upload.c */
extern int upload_to_fd (int fd, const char *filename);
-/* ordinary daemon functions use these to indicate errors
- * NB: you don't need to prefix the string with the current command,
- * it is added automatically by the client-side RPC stubs.
- */
-extern void reply_with_error_errno (int err, const char *fs, ...)
- __attribute__((format (printf,2,3)));
-extern void reply_with_perror_errno (int err, const char *fs, ...)
- __attribute__((format (printf,2,3)));
-#define reply_with_error(...) reply_with_error_errno(0, __VA_ARGS__)
-#define reply_with_perror(...) reply_with_perror_errno(errno, __VA_ARGS__)
-#define reply_with_unavailable_feature(feature) \
- reply_with_error_errno (ENOTSUP, \
- "feature '%s' is not available in this\n" \
- "build of libguestfs. Read 'AVAILABILITY' in the guestfs(3) man page
for\n" \
- "how to check for the availability of features.", \
- feature)
-
-/* daemon functions that receive files (FileIn) should call
- * receive_file for each FileIn parameter.
- */
-typedef int (*receive_cb) (void *opaque, const void *buf, size_t len);
-extern int receive_file (receive_cb cb, void *opaque);
-
-/* daemon functions that receive files (FileIn) can call this
- * to cancel incoming transfers (eg. if there is a local error).
- */
-extern int cancel_receive (void);
-
-/* daemon functions that return files (FileOut) should call
- * reply, then send_file_* for each FileOut parameter.
- * Note max write size if GUESTFS_MAX_CHUNK_SIZE.
- */
-extern int send_file_write (const void *buf, size_t len);
-extern int send_file_end (int cancel);
-
-/* only call this if there is a FileOut parameter */
-extern void reply (xdrproc_t xdrp, char *ret);
-
-/* Notify progress to caller. This function is self-rate-limiting so
- * you can call it as often as necessary. Actions which call this
- * should add 'Progress' note in generator.
- */
-extern void notify_progress (uint64_t position, uint64_t total);
-
-/* Pulse mode progress messages.
- *
- * Call pulse_mode_start to start sending progress messages.
- *
- * Call pulse_mode_end along the ordinary exit path (ie. before a
- * reply message is sent).
- *
- * Call pulse_mode_cancel along all error paths *before* any reply is
- * sent. pulse_mode_cancel does not modify errno, so it is safe to
- * call it before reply_with_perror.
- *
- * Pulse mode and ordinary notify_progress must not be mixed.
- */
-extern void pulse_mode_start (void);
-extern void pulse_mode_end (void);
-extern void pulse_mode_cancel (void);
-
-/* Send a progress message without rate-limiting. This is just
- * for debugging - DON'T use it in regular code!
- */
-extern void notify_progress_no_ratelimit (uint64_t position, uint64_t total, const struct
timeval *now);
-
/* Helper for functions that need a root filesystem mounted. */
#define NEED_ROOT(is_filein,fail_stmt) \
do { \
@@ -423,4 +397,7 @@ extern void notify_progress_no_ratelimit (uint64_t position, uint64_t
total, con
} \
} while (0)
+#define __external_command __attribute__((__section__(".guestfsd_ext_cmds")))
+#define GUESTFSD_EXT_CMD(___ext_cmd_var, ___ext_cmd_str) static const char
___ext_cmd_var[] __external_command = #___ext_cmd_str
+
#endif /* GUESTFSD_DAEMON_H */
--
2.13.2