Since the device handler provides the status message functions, we need
a pointer to it for device discovery (which we use a struct
discover_context for).
This change adds a 'handler' member to struct discover_context, to allow
status reporting. Since we now have a handler, there's no need for the
network pointer, so provide an accessor function instead.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
return handler->devices[index];
}
return handler->devices[index];
}
+struct network *device_handler_get_network(
+ const struct device_handler *handler)
+{
+ return handler->network;
+}
+
struct discover_boot_option *discover_boot_option_create(
struct discover_context *ctx,
struct discover_device *device)
struct discover_boot_option *discover_boot_option_create(
struct discover_context *ctx,
struct discover_device *device)
struct discover_context *ctx;
ctx = talloc_zero(handler, struct discover_context);
struct discover_context *ctx;
ctx = talloc_zero(handler, struct discover_context);
+ ctx->handler = handler;
- ctx->network = handler->network;
list_init(&ctx->boot_options);
return ctx;
list_init(&ctx->boot_options);
return ctx;
struct discover_context {
struct discover_context {
+ struct device_handler *handler;
struct parser *parser;
struct event *event;
struct discover_device *device;
struct list boot_options;
struct pb_url *conf_url;
struct parser *parser;
struct event *event;
struct discover_device *device;
struct list boot_options;
struct pb_url *conf_url;
- struct network *network;
int device_handler_get_device_count(const struct device_handler *handler);
const struct discover_device *device_handler_get_device(
const struct device_handler *handler, unsigned int index);
int device_handler_get_device_count(const struct device_handler *handler);
const struct discover_device *device_handler_get_device(
const struct device_handler *handler, unsigned int index);
+struct network *device_handler_get_network(
+ const struct device_handler *handler);
struct discover_device *discover_device_create(struct device_handler *handler,
const char *uuid, const char *id);
struct discover_device *discover_device_create(struct device_handler *handler,
const char *uuid, const char *id);
#include <file/file.h>
#include <i18n/i18n.h>
#include <file/file.h>
#include <i18n/i18n.h>
+#include "device-handler.h"
#include "parser.h"
#include "parser-conf.h"
#include "parser-utils.h"
#include "parser.h"
#include "parser-conf.h"
#include "parser-utils.h"
- uint8_t *mac = find_mac_by_name(ctx, ctx->network,
- event->device);
+ uint8_t *mac = find_mac_by_name(ctx,
+ device_handler_get_network(ctx->handler),
+ event->device);
str = pxe_sysappend_mac(ctx, mac);
if (str) {
pxe_append_string(opt, str);
str = pxe_sysappend_mac(ctx, mac);
if (str) {
pxe_append_string(opt, str);
list_init(&ctx->boot_options);
ctx->device = test_create_device_simple(test);
ctx->test_data = test;
list_init(&ctx->boot_options);
ctx->device = test_create_device_simple(test);
ctx->test_data = test;
+ ctx->handler = test->handler;
device_handler_add_device(test->handler, ctx->device);
return ctx;
device_handler_add_device(test->handler, ctx->device);
return ctx;