Blame view
include/linux/dca.h
2.62 KB
e2fc4d192 dca: add missing ... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/* * Copyright(c) 2007 - 2009 Intel Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * The full GNU General Public License is included in this distribution in the * file called COPYING. */ |
7589670f3 DCA: Add Direct C... |
21 22 |
#ifndef DCA_H #define DCA_H |
1a5aeeecd dca: registering ... |
23 24 |
#include <linux/pci.h> |
7589670f3 DCA: Add Direct C... |
25 26 27 28 29 30 31 32 33 34 |
/* DCA Provider API */ /* DCA Notifier Interface */ void dca_register_notify(struct notifier_block *nb); void dca_unregister_notify(struct notifier_block *nb); #define DCA_PROVIDER_ADD 0x0001 #define DCA_PROVIDER_REMOVE 0x0002 struct dca_provider { |
7f1b358a2 I/OAT: I/OAT vers... |
35 |
struct list_head node; |
7589670f3 DCA: Add Direct C... |
36 |
struct dca_ops *ops; |
765cdb6ce DCA: convert stru... |
37 |
struct device *cd; |
7589670f3 DCA: Add Direct C... |
38 39 |
int id; }; |
1a5aeeecd dca: registering ... |
40 41 42 43 44 |
struct dca_domain { struct list_head node; struct list_head dca_providers; struct pci_bus *pci_rc; }; |
7589670f3 DCA: Add Direct C... |
45 46 47 |
struct dca_ops { int (*add_requester) (struct dca_provider *, struct device *); int (*remove_requester) (struct dca_provider *, struct device *); |
7f1b358a2 I/OAT: I/OAT vers... |
48 49 50 |
u8 (*get_tag) (struct dca_provider *, struct device *, int cpu); int (*dev_managed) (struct dca_provider *, struct device *); |
7589670f3 DCA: Add Direct C... |
51 52 53 54 55 |
}; struct dca_provider *alloc_dca_provider(struct dca_ops *ops, int priv_size); void free_dca_provider(struct dca_provider *dca); int register_dca_provider(struct dca_provider *dca, struct device *dev); |
1a5aeeecd dca: registering ... |
56 |
void unregister_dca_provider(struct dca_provider *dca, struct device *dev); |
7589670f3 DCA: Add Direct C... |
57 58 59 60 61 62 63 |
static inline void *dca_priv(struct dca_provider *dca) { return (void *)dca + sizeof(struct dca_provider); } /* Requester API */ |
7f1b358a2 I/OAT: I/OAT vers... |
64 |
#define DCA_GET_TAG_TWO_ARGS |
7589670f3 DCA: Add Direct C... |
65 66 67 |
int dca_add_requester(struct device *dev); int dca_remove_requester(struct device *dev); u8 dca_get_tag(int cpu); |
7f1b358a2 I/OAT: I/OAT vers... |
68 |
u8 dca3_get_tag(struct device *dev, int cpu); |
7589670f3 DCA: Add Direct C... |
69 70 71 72 73 74 75 76 77 78 |
/* internal stuff */ int __init dca_sysfs_init(void); void __exit dca_sysfs_exit(void); int dca_sysfs_add_provider(struct dca_provider *dca, struct device *dev); void dca_sysfs_remove_provider(struct dca_provider *dca); int dca_sysfs_add_req(struct dca_provider *dca, struct device *dev, int slot); void dca_sysfs_remove_req(struct dca_provider *dca, int slot); #endif /* DCA_H */ |