linux/include/linux/dca.h
<<
>>
Prefs
   1#ifndef DCA_H
   2#define DCA_H
   3/* DCA Provider API */
   4
   5/* DCA Notifier Interface */
   6void dca_register_notify(struct notifier_block *nb);
   7void dca_unregister_notify(struct notifier_block *nb);
   8
   9#define DCA_PROVIDER_ADD     0x0001
  10#define DCA_PROVIDER_REMOVE  0x0002
  11
  12struct dca_provider {
  13        struct dca_ops          *ops;
  14        struct class_device     *cd;
  15        int                      id;
  16};
  17
  18struct dca_ops {
  19        int     (*add_requester)    (struct dca_provider *, struct device *);
  20        int     (*remove_requester) (struct dca_provider *, struct device *);
  21        u8      (*get_tag)          (struct dca_provider *, int cpu);
  22};
  23
  24struct dca_provider *alloc_dca_provider(struct dca_ops *ops, int priv_size);
  25void free_dca_provider(struct dca_provider *dca);
  26int register_dca_provider(struct dca_provider *dca, struct device *dev);
  27void unregister_dca_provider(struct dca_provider *dca);
  28
  29static inline void *dca_priv(struct dca_provider *dca)
  30{
  31        return (void *)dca + sizeof(struct dca_provider);
  32}
  33
  34/* Requester API */
  35int dca_add_requester(struct device *dev);
  36int dca_remove_requester(struct device *dev);
  37u8 dca_get_tag(int cpu);
  38
  39/* internal stuff */
  40int __init dca_sysfs_init(void);
  41void __exit dca_sysfs_exit(void);
  42int dca_sysfs_add_provider(struct dca_provider *dca, struct device *dev);
  43void dca_sysfs_remove_provider(struct dca_provider *dca);
  44int dca_sysfs_add_req(struct dca_provider *dca, struct device *dev, int slot);
  45void dca_sysfs_remove_req(struct dca_provider *dca, int slot);
  46
  47#endif /* DCA_H */
  48