Why do we call the constructor function of a new device? I can't see where we ever set it. Thanks, Myles
From device/device.c:
memset(dev, 0, sizeof(*dev)); dev->path = *path; dev->id = *devid;
/* Initialize the back pointers in the link fields. */ for (link = 0; link < MAX_LINKS; link++) { dev->link[link].dev = dev; dev->link[link].link = link; }
/* By default devices are enabled. */ dev->enabled = 1;
/* Add the new device to the list of children of the bus. */ dev->bus = parent; if (child) { child->sibling = dev; } else { parent->children = dev; }
/* Append a new device to the global device list. * The list is used to find devices once everything is set up. */ *last_dev_p = dev; last_dev_p = &dev->next;
/* Give the device a name. */ sprintf(dev->dtsname, "dynamic %s", dev_path(dev));
/* Run the device specific constructor as last part of the chain * so it gets the chance to overwrite the "inherited" values above */
constructor(dev);