struct device_driver {
  char *name;
  struct bus_type *bus;

  struct completion unloaded;
  struct kobject kobj;
  struct list_head devices;

  struct module *owner;

  int (*probe) (struct device *dev);
  int (*remove) (struct device *dev);
  void (*shutdown) (struct device *dev);
  int (*suspend) (struct device *dev, pm_message_t state, u32 level);
  int (*resume) (struct device *dev, u32 level);
};