staging: lustre: remove top level ccflags variable
[deliverable/linux.git] / drivers / staging / lustre / lustre / libcfs / libcfs_cpu.c
1 /*
2 * GPL HEADER START
3 *
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 only,
8 * as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License version 2 for more details (a copy is included
14 * in the LICENSE file that accompanied this code).
15 *
16 * You should have received a copy of the GNU General Public License
17 * version 2 along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA
20 *
21 * GPL HEADER END
22 */
23 /*
24 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
25 * Copyright (c) 2012, Intel Corporation.
26 */
27 /*
28 * This file is part of Lustre, http://www.lustre.org/
29 * Lustre is a trademark of Sun Microsystems, Inc.
30 *
31 * Please see comments in libcfs/include/libcfs/libcfs_cpu.h for introduction
32 *
33 * Author: liang@whamcloud.com
34 */
35
36 #define DEBUG_SUBSYSTEM S_LNET
37
38 #include "../../include/linux/libcfs/libcfs.h"
39
40 /** Global CPU partition table */
41 struct cfs_cpt_table *cfs_cpt_table __read_mostly = NULL;
42 EXPORT_SYMBOL(cfs_cpt_table);
43
44 #ifndef HAVE_LIBCFS_CPT
45
46 #define CFS_CPU_VERSION_MAGIC 0xbabecafe
47
48 struct cfs_cpt_table *
49 cfs_cpt_table_alloc(unsigned int ncpt)
50 {
51 struct cfs_cpt_table *cptab;
52
53 if (ncpt != 1) {
54 CERROR("Can't support cpu partition number %d\n", ncpt);
55 return NULL;
56 }
57
58 LIBCFS_ALLOC(cptab, sizeof(*cptab));
59 if (cptab != NULL) {
60 cptab->ctb_version = CFS_CPU_VERSION_MAGIC;
61 cptab->ctb_nparts = ncpt;
62 }
63
64 return cptab;
65 }
66 EXPORT_SYMBOL(cfs_cpt_table_alloc);
67
68 void
69 cfs_cpt_table_free(struct cfs_cpt_table *cptab)
70 {
71 LASSERT(cptab->ctb_version == CFS_CPU_VERSION_MAGIC);
72
73 LIBCFS_FREE(cptab, sizeof(*cptab));
74 }
75 EXPORT_SYMBOL(cfs_cpt_table_free);
76
77 #ifdef CONFIG_SMP
78 int
79 cfs_cpt_table_print(struct cfs_cpt_table *cptab, char *buf, int len)
80 {
81 int rc = 0;
82
83 rc = snprintf(buf, len, "%d\t: %d\n", 0, 0);
84 len -= rc;
85 if (len <= 0)
86 return -EFBIG;
87
88 return rc;
89 }
90 EXPORT_SYMBOL(cfs_cpt_table_print);
91 #endif /* CONFIG_SMP */
92
93 int
94 cfs_cpt_number(struct cfs_cpt_table *cptab)
95 {
96 return 1;
97 }
98 EXPORT_SYMBOL(cfs_cpt_number);
99
100 int
101 cfs_cpt_weight(struct cfs_cpt_table *cptab, int cpt)
102 {
103 return 1;
104 }
105 EXPORT_SYMBOL(cfs_cpt_weight);
106
107 int
108 cfs_cpt_online(struct cfs_cpt_table *cptab, int cpt)
109 {
110 return 1;
111 }
112 EXPORT_SYMBOL(cfs_cpt_online);
113
114 int
115 cfs_cpt_set_cpu(struct cfs_cpt_table *cptab, int cpt, int cpu)
116 {
117 return 1;
118 }
119 EXPORT_SYMBOL(cfs_cpt_set_cpu);
120
121 void
122 cfs_cpt_unset_cpu(struct cfs_cpt_table *cptab, int cpt, int cpu)
123 {
124 }
125 EXPORT_SYMBOL(cfs_cpt_unset_cpu);
126
127 int
128 cfs_cpt_set_cpumask(struct cfs_cpt_table *cptab, int cpt, cpumask_t *mask)
129 {
130 return 1;
131 }
132 EXPORT_SYMBOL(cfs_cpt_set_cpumask);
133
134 void
135 cfs_cpt_unset_cpumask(struct cfs_cpt_table *cptab, int cpt, cpumask_t *mask)
136 {
137 }
138 EXPORT_SYMBOL(cfs_cpt_unset_cpumask);
139
140 int
141 cfs_cpt_set_node(struct cfs_cpt_table *cptab, int cpt, int node)
142 {
143 return 1;
144 }
145 EXPORT_SYMBOL(cfs_cpt_set_node);
146
147 void
148 cfs_cpt_unset_node(struct cfs_cpt_table *cptab, int cpt, int node)
149 {
150 }
151 EXPORT_SYMBOL(cfs_cpt_unset_node);
152
153 int
154 cfs_cpt_set_nodemask(struct cfs_cpt_table *cptab, int cpt, nodemask_t *mask)
155 {
156 return 1;
157 }
158 EXPORT_SYMBOL(cfs_cpt_set_nodemask);
159
160 void
161 cfs_cpt_unset_nodemask(struct cfs_cpt_table *cptab, int cpt, nodemask_t *mask)
162 {
163 }
164 EXPORT_SYMBOL(cfs_cpt_unset_nodemask);
165
166 void
167 cfs_cpt_clear(struct cfs_cpt_table *cptab, int cpt)
168 {
169 }
170 EXPORT_SYMBOL(cfs_cpt_clear);
171
172 int
173 cfs_cpt_spread_node(struct cfs_cpt_table *cptab, int cpt)
174 {
175 return 0;
176 }
177 EXPORT_SYMBOL(cfs_cpt_spread_node);
178
179 int
180 cfs_cpu_ht_nsiblings(int cpu)
181 {
182 return 1;
183 }
184 EXPORT_SYMBOL(cfs_cpu_ht_nsiblings);
185
186 int
187 cfs_cpt_current(struct cfs_cpt_table *cptab, int remap)
188 {
189 return 0;
190 }
191 EXPORT_SYMBOL(cfs_cpt_current);
192
193 int
194 cfs_cpt_of_cpu(struct cfs_cpt_table *cptab, int cpu)
195 {
196 return 0;
197 }
198 EXPORT_SYMBOL(cfs_cpt_of_cpu);
199
200 int
201 cfs_cpt_bind(struct cfs_cpt_table *cptab, int cpt)
202 {
203 return 0;
204 }
205 EXPORT_SYMBOL(cfs_cpt_bind);
206
207 void
208 cfs_cpu_fini(void)
209 {
210 if (cfs_cpt_table != NULL) {
211 cfs_cpt_table_free(cfs_cpt_table);
212 cfs_cpt_table = NULL;
213 }
214 }
215
216 int
217 cfs_cpu_init(void)
218 {
219 cfs_cpt_table = cfs_cpt_table_alloc(1);
220
221 return cfs_cpt_table != NULL ? 0 : -1;
222 }
223
224 #endif /* HAVE_LIBCFS_CPT */
This page took 0.03753 seconds and 5 git commands to generate.