#include <stdbool.h>
#include <list/list.h>
+#include <types/types.h>
struct device_handler;
struct discover_device;
const char *label;
char *mount_path;
+ char *root_path;
const char *device_path;
+ struct ramdisk_device *ramdisk;
bool mounted;
bool mounted_rw;
bool unmount;
struct discover_device *device;
struct list boot_options;
struct pb_url *conf_url;
+ struct network *network;
void *test_data;
};
+struct ramdisk_device {
+ const char *path;
+ char *snapshot;
+ char *origin;
+ char *base;
+ uint64_t sectors;
+};
+
struct device_handler *device_handler_init(struct discover_server *server,
struct waitset *waitset, int dry_run);
const char *id);
void device_handler_add_device(struct device_handler *handler,
struct discover_device *device);
+void device_handler_add_ramdisk(struct device_handler *handler,
+ const char *path);
+struct ramdisk_device *device_handler_get_ramdisk(
+ struct device_handler *handler);
+void device_handler_release_ramdisk(struct discover_device *device);
int device_handler_discover(struct device_handler *handler,
struct discover_device *dev);
int device_handler_dhcp(struct device_handler *handler,
void device_handler_remove(struct device_handler *handler,
struct discover_device *device);
+void device_handler_boot_status(void *arg, struct boot_status *status);
+
struct discover_context *device_handler_discover_context_create(
struct device_handler *handler,
struct discover_device *device);
void device_handler_update_config(struct device_handler *handler,
struct config *config);
void device_handler_process_url(struct device_handler *handler,
- const char *url);
+ const char *url, const char *mac, const char *ip);
void device_handler_reinit(struct device_handler *handler);
int device_request_write(struct discover_device *dev, bool *release);