struct event;
struct device;
struct waitset;
-
-enum conf_method {
- CONF_METHOD_LOCAL_FILE, /* discover by looking at local files on this
- block device */
-
- CONF_METHOD_DHCP, /* configuration from a DHCP response */
-
- CONF_METHOD_UNKNOWN = -1,
-};
-
+struct config;
struct discover_device {
struct device *device;
const char *uuid;
const char *label;
- const char *mount_path;
+ char *mount_path;
const char *device_path;
+ bool mounted;
+ bool mounted_rw;
+ bool unmount;
bool notified;
struct discover_device *device;
struct list boot_options;
struct pb_url *conf_url;
- enum conf_method method;
+ void *test_data;
};
struct device_handler *device_handler_init(struct discover_server *server,
void device_handler_add_device(struct device_handler *handler,
struct discover_device *device);
int device_handler_discover(struct device_handler *handler,
- struct discover_device *dev, enum conf_method method);
+ struct discover_device *dev);
+int device_handler_dhcp(struct device_handler *handler,
+ struct discover_device *dev, struct event *event);
int device_handler_conf(struct device_handler *handler,
- struct discover_device *dev, struct pb_url *url,
- enum conf_method method);
+ struct discover_device *dev, struct pb_url *url);
void device_handler_remove(struct device_handler *handler,
struct discover_device *device);
const char *label);
struct discover_device *device_lookup_by_id(struct device_handler *handler,
const char *id);
+struct discover_device *device_lookup_by_serial(
+ struct device_handler *device_handler,
+ const char *serial);
void discover_device_set_param(struct discover_device *device,
const char *name, const char *value);
void device_handler_boot(struct device_handler *handler,
struct boot_command *cmd);
void device_handler_cancel_default(struct device_handler *handler);
+void device_handler_update_config(struct device_handler *handler,
+ struct config *config);
+
+int device_request_write(struct discover_device *dev, bool *release);
+void device_release_write(struct discover_device *dev, bool release);
#endif /* _DEVICE_HANDLER_H */