1 #ifndef _DEVICE_HANDLER_H
2 #define _DEVICE_HANDLER_H
9 struct discover_device;
10 struct discover_server;
17 struct discover_device {
18 struct device *device;
27 const char *device_path;
34 struct list boot_options;
38 struct discover_boot_option {
39 struct parser *source;
40 struct discover_device *device;
41 struct boot_option *option;
42 struct list_item list;
44 struct resource *boot_image;
45 struct resource *initrd;
47 struct resource *icon;
51 struct discover_context {
52 struct parser *parser;
54 struct discover_device *device;
55 struct list boot_options;
56 struct pb_url *conf_url;
60 struct device_handler *device_handler_init(struct discover_server *server,
61 struct waitset *waitset, int dry_run);
63 void device_handler_destroy(struct device_handler *devices);
65 int device_handler_get_device_count(const struct device_handler *handler);
66 const struct discover_device *device_handler_get_device(
67 const struct device_handler *handler, unsigned int index);
69 struct discover_device *discover_device_create(struct device_handler *handler,
71 void device_handler_add_device(struct device_handler *handler,
72 struct discover_device *device);
73 int device_handler_discover(struct device_handler *handler,
74 struct discover_device *dev);
75 int device_handler_dhcp(struct device_handler *handler,
76 struct discover_device *dev, struct event *event);
77 int device_handler_conf(struct device_handler *handler,
78 struct discover_device *dev, struct pb_url *url);
79 void device_handler_remove(struct device_handler *handler,
80 struct discover_device *device);
82 struct discover_context *device_handler_discover_context_create(
83 struct device_handler *handler,
84 struct discover_device *device);
85 void device_handler_discover_context_commit(struct device_handler *handler,
86 struct discover_context *ctx);
88 struct discover_boot_option *discover_boot_option_create(
89 struct discover_context *ctx,
90 struct discover_device *dev);
91 void discover_context_add_boot_option(struct discover_context *ctx,
92 struct discover_boot_option *opt);
94 int device_handler_user_event(struct device_handler *handler,
97 struct discover_device *device_lookup_by_name(struct device_handler *handler,
99 struct discover_device *device_lookup_by_uuid(struct device_handler *handler,
101 struct discover_device *device_lookup_by_label(struct device_handler *handler,
103 struct discover_device *device_lookup_by_id(struct device_handler *handler,
105 struct discover_device *device_lookup_by_serial(
106 struct device_handler *device_handler,
109 void discover_device_set_param(struct discover_device *device,
110 const char *name, const char *value);
111 const char *discover_device_get_param(struct discover_device *device,
114 void device_handler_boot(struct device_handler *handler,
115 struct boot_command *cmd);
116 void device_handler_cancel_default(struct device_handler *handler);
118 int device_request_write(struct discover_device *dev, bool *release);
119 void device_release_write(struct discover_device *dev, bool release);
121 #endif /* _DEVICE_HANDLER_H */