1 |
commit: b414dcb4aeff8ee5d9e81560b4090dc185e72000 |
2 |
Author: Horea Christian <chr <AT> chymera <DOT> eu> |
3 |
AuthorDate: Fri Oct 9 10:40:53 2020 +0000 |
4 |
Commit: Horea Christian <horea.christ <AT> gmail <DOT> com> |
5 |
CommitDate: Fri Oct 9 10:40:53 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=b414dcb4 |
7 |
|
8 |
patchers: removed patches directory for packages distributed by ::gentoo |
9 |
|
10 |
Signed-off-by: Horea Christian <chr <AT> chymera.eu> |
11 |
|
12 |
...cfs-move-mdd-ofd-proc-handling-to-seq_fil.patch | 2082 -------------------- |
13 |
patches/07_doxygen.patch | 1804 ----------------- |
14 |
2 files changed, 3886 deletions(-) |
15 |
|
16 |
diff --git a/patches/0002-LU-3319-procfs-move-mdd-ofd-proc-handling-to-seq_fil.patch b/patches/0002-LU-3319-procfs-move-mdd-ofd-proc-handling-to-seq_fil.patch |
17 |
deleted file mode 100644 |
18 |
index 813446c38..000000000 |
19 |
--- a/patches/0002-LU-3319-procfs-move-mdd-ofd-proc-handling-to-seq_fil.patch |
20 |
+++ /dev/null |
21 |
@@ -1,2082 +0,0 @@ |
22 |
-From 9071634fd9db37a6121fdfbd817162f782661202 Mon Sep 17 00:00:00 2001 |
23 |
-From: James Simmons <uja.ornl@×××××.com> |
24 |
-Date: Mon, 5 May 2014 10:02:21 -0400 |
25 |
-Subject: [PATCH 2/3] LU-3319 procfs: move mdd/ofd proc handling to seq_files |
26 |
- |
27 |
-With 3.10 linux kernel and above proc handling now only |
28 |
-uses struct seq_files. This patch migrates the mdd/ofd |
29 |
-layer proc entries over to using seq_files. |
30 |
- |
31 |
-Signed-off-by: James Simmons <uja.ornl@×××××.com> |
32 |
-Change-Id: I61b7df6bfd5efd0f12e3ca1a1813b7b62d493168 |
33 |
---- |
34 |
- lustre/include/lustre_lfsck.h | 6 +- |
35 |
- lustre/lfsck/lfsck_internal.h | 9 +- |
36 |
- lustre/lfsck/lfsck_layout.c | 132 ++++------- |
37 |
- lustre/lfsck/lfsck_lib.c | 88 +++----- |
38 |
- lustre/lfsck/lfsck_namespace.c | 75 ++----- |
39 |
- lustre/mdd/mdd_device.c | 25 +-- |
40 |
- lustre/mdd/mdd_internal.h | 1 - |
41 |
- lustre/mdd/mdd_lproc.c | 302 ++++++++++++------------- |
42 |
- lustre/ofd/lproc_ofd.c | 490 +++++++++++++++++++++-------------------- |
43 |
- lustre/ofd/ofd_dev.c | 90 ++++---- |
44 |
- lustre/ofd/ofd_internal.h | 6 +- |
45 |
- 11 files changed, 543 insertions(+), 681 deletions(-) |
46 |
- |
47 |
-diff --git a/lustre/include/lustre_lfsck.h b/lustre/include/lustre_lfsck.h |
48 |
-index 0d6f666..5adbffe 100644 |
49 |
---- a/lustre/include/lustre_lfsck.h |
50 |
-+++ b/lustre/include/lustre_lfsck.h |
51 |
-@@ -148,12 +148,12 @@ int lfsck_in_notify(const struct lu_env *env, struct dt_device *key, |
52 |
- int lfsck_query(const struct lu_env *env, struct dt_device *key, |
53 |
- struct lfsck_request *lr); |
54 |
- |
55 |
--int lfsck_get_speed(struct dt_device *key, void *buf, int len); |
56 |
-+int lfsck_get_speed(struct seq_file *m, struct dt_device *key); |
57 |
- int lfsck_set_speed(struct dt_device *key, int val); |
58 |
--int lfsck_get_windows(struct dt_device *key, void *buf, int len); |
59 |
-+int lfsck_get_windows(struct seq_file *m, struct dt_device *key); |
60 |
- int lfsck_set_windows(struct dt_device *key, int val); |
61 |
- |
62 |
--int lfsck_dump(struct dt_device *key, void *buf, int len, enum lfsck_type type); |
63 |
-+int lfsck_dump(struct seq_file *m, struct dt_device *key, enum lfsck_type type); |
64 |
- |
65 |
- static inline void lfsck_pack_rfa(struct lfsck_request *lr, |
66 |
- const struct lu_fid *fid) |
67 |
-diff --git a/lustre/lfsck/lfsck_internal.h b/lustre/lfsck/lfsck_internal.h |
68 |
-index 24b84ae..203ad74 100644 |
69 |
---- a/lustre/lfsck/lfsck_internal.h |
70 |
-+++ b/lustre/lfsck/lfsck_internal.h |
71 |
-@@ -303,8 +303,7 @@ struct lfsck_operations { |
72 |
- |
73 |
- int (*lfsck_dump)(const struct lu_env *env, |
74 |
- struct lfsck_component *com, |
75 |
-- char *buf, |
76 |
-- int len); |
77 |
-+ struct seq_file *m); |
78 |
- |
79 |
- int (*lfsck_double_scan)(const struct lu_env *env, |
80 |
- struct lfsck_component *com); |
81 |
-@@ -590,10 +589,10 @@ void lfsck_component_cleanup(const struct lu_env *env, |
82 |
- struct lfsck_component *com); |
83 |
- void lfsck_instance_cleanup(const struct lu_env *env, |
84 |
- struct lfsck_instance *lfsck); |
85 |
--int lfsck_bits_dump(char **buf, int *len, int bits, const char *names[], |
86 |
-+int lfsck_bits_dump(struct seq_file *m, int bits, const char *names[], |
87 |
- const char *prefix); |
88 |
--int lfsck_time_dump(char **buf, int *len, __u64 time, const char *prefix); |
89 |
--int lfsck_pos_dump(char **buf, int *len, struct lfsck_position *pos, |
90 |
-+int lfsck_time_dump(struct seq_file *m, __u64 time, const char *prefix); |
91 |
-+int lfsck_pos_dump(struct seq_file *m, struct lfsck_position *pos, |
92 |
- const char *prefix); |
93 |
- void lfsck_pos_fill(const struct lu_env *env, struct lfsck_instance *lfsck, |
94 |
- struct lfsck_position *pos, bool init); |
95 |
-diff --git a/lustre/lfsck/lfsck_layout.c b/lustre/lfsck/lfsck_layout.c |
96 |
-index ced2e4d..e2df62d 100644 |
97 |
---- a/lustre/lfsck/lfsck_layout.c |
98 |
-+++ b/lustre/lfsck/lfsck_layout.c |
99 |
-@@ -492,7 +492,7 @@ static struct lfsck_rbtree_node *lfsck_rbtree_new(const struct lu_env *env, |
100 |
- return ERR_PTR(-ENOMEM); |
101 |
- } |
102 |
- |
103 |
-- rb_init_node(&lrn->lrn_node); |
104 |
-+ RB_CLEAR_NODE(&lrn->lrn_node); |
105 |
- lrn->lrn_seq = fid_seq(fid); |
106 |
- lrn->lrn_first_oid = fid_oid(fid) & ~LFSCK_RBTREE_BITMAP_MASK; |
107 |
- atomic_set(&lrn->lrn_known_count, 0); |
108 |
-@@ -4873,69 +4873,53 @@ static int lfsck_layout_slave_post(const struct lu_env *env, |
109 |
- } |
110 |
- |
111 |
- static int lfsck_layout_dump(const struct lu_env *env, |
112 |
-- struct lfsck_component *com, char *buf, int len) |
113 |
-+ struct lfsck_component *com, struct seq_file *m) |
114 |
- { |
115 |
- struct lfsck_instance *lfsck = com->lc_lfsck; |
116 |
- struct lfsck_bookmark *bk = &lfsck->li_bookmark_ram; |
117 |
- struct lfsck_layout *lo = com->lc_file_ram; |
118 |
-- int save = len; |
119 |
-- int ret = -ENOSPC; |
120 |
- int rc; |
121 |
- |
122 |
- down_read(&com->lc_sem); |
123 |
-- rc = snprintf(buf, len, |
124 |
-- "name: lfsck_layout\n" |
125 |
-+ seq_printf(m, "name: lfsck_layout\n" |
126 |
- "magic: %#x\n" |
127 |
- "version: %d\n" |
128 |
- "status: %s\n", |
129 |
- lo->ll_magic, |
130 |
- bk->lb_version, |
131 |
- lfsck_status2names(lo->ll_status)); |
132 |
-- if (rc <= 0) |
133 |
-- goto out; |
134 |
- |
135 |
-- buf += rc; |
136 |
-- len -= rc; |
137 |
-- rc = lfsck_bits_dump(&buf, &len, lo->ll_flags, lfsck_flags_names, |
138 |
-- "flags"); |
139 |
-+ rc = lfsck_bits_dump(m, lo->ll_flags, lfsck_flags_names, "flags"); |
140 |
- if (rc < 0) |
141 |
- goto out; |
142 |
- |
143 |
-- rc = lfsck_bits_dump(&buf, &len, bk->lb_param, lfsck_param_names, |
144 |
-- "param"); |
145 |
-+ rc = lfsck_bits_dump(m, bk->lb_param, lfsck_param_names, "param"); |
146 |
- if (rc < 0) |
147 |
- goto out; |
148 |
- |
149 |
-- rc = lfsck_time_dump(&buf, &len, lo->ll_time_last_complete, |
150 |
-+ rc = lfsck_time_dump(m, lo->ll_time_last_complete, |
151 |
- "time_since_last_completed"); |
152 |
- if (rc < 0) |
153 |
- goto out; |
154 |
- |
155 |
-- rc = lfsck_time_dump(&buf, &len, lo->ll_time_latest_start, |
156 |
-+ rc = lfsck_time_dump(m, lo->ll_time_latest_start, |
157 |
- "time_since_latest_start"); |
158 |
- if (rc < 0) |
159 |
- goto out; |
160 |
- |
161 |
-- rc = lfsck_time_dump(&buf, &len, lo->ll_time_last_checkpoint, |
162 |
-+ rc = lfsck_time_dump(m, lo->ll_time_last_checkpoint, |
163 |
- "time_since_last_checkpoint"); |
164 |
- if (rc < 0) |
165 |
- goto out; |
166 |
- |
167 |
-- rc = snprintf(buf, len, |
168 |
-- "latest_start_position: "LPU64"\n" |
169 |
-+ seq_printf(m, "latest_start_position: "LPU64"\n" |
170 |
- "last_checkpoint_position: "LPU64"\n" |
171 |
- "first_failure_position: "LPU64"\n", |
172 |
- lo->ll_pos_latest_start, |
173 |
- lo->ll_pos_last_checkpoint, |
174 |
- lo->ll_pos_first_inconsistent); |
175 |
-- if (rc <= 0) |
176 |
-- goto out; |
177 |
- |
178 |
-- buf += rc; |
179 |
-- len -= rc; |
180 |
-- |
181 |
-- rc = snprintf(buf, len, |
182 |
-- "success_count: %u\n" |
183 |
-+ seq_printf(m, "success_count: %u\n" |
184 |
- "repaired_dangling: "LPU64"\n" |
185 |
- "repaired_unmatched_pair: "LPU64"\n" |
186 |
- "repaired_multiple_referenced: "LPU64"\n" |
187 |
-@@ -4955,11 +4939,6 @@ static int lfsck_layout_dump(const struct lu_env *env, |
188 |
- lo->ll_objs_skipped, |
189 |
- lo->ll_objs_failed_phase1, |
190 |
- lo->ll_objs_failed_phase2); |
191 |
-- if (rc <= 0) |
192 |
-- goto out; |
193 |
-- |
194 |
-- buf += rc; |
195 |
-- len -= rc; |
196 |
- |
197 |
- if (lo->ll_status == LS_SCANNING_PHASE1) { |
198 |
- __u64 pos; |
199 |
-@@ -4977,8 +4956,7 @@ static int lfsck_layout_dump(const struct lu_env *env, |
200 |
- do_div(new_checked, duration); |
201 |
- if (rtime != 0) |
202 |
- do_div(speed, rtime); |
203 |
-- rc = snprintf(buf, len, |
204 |
-- "checked_phase1: "LPU64"\n" |
205 |
-+ seq_printf(m, "checked_phase1: "LPU64"\n" |
206 |
- "checked_phase2: "LPU64"\n" |
207 |
- "run_time_phase1: %u seconds\n" |
208 |
- "run_time_phase2: %u seconds\n" |
209 |
-@@ -4992,11 +4970,6 @@ static int lfsck_layout_dump(const struct lu_env *env, |
210 |
- lo->ll_run_time_phase2, |
211 |
- speed, |
212 |
- new_checked); |
213 |
-- if (rc <= 0) |
214 |
-- goto out; |
215 |
-- |
216 |
-- buf += rc; |
217 |
-- len -= rc; |
218 |
- |
219 |
- LASSERT(lfsck->li_di_oit != NULL); |
220 |
- |
221 |
-@@ -5009,12 +4982,8 @@ static int lfsck_layout_dump(const struct lu_env *env, |
222 |
- pos = iops->store(env, lfsck->li_di_oit); |
223 |
- if (!lfsck->li_current_oit_processed) |
224 |
- pos--; |
225 |
-- rc = snprintf(buf, len, "current_position: "LPU64"\n", pos); |
226 |
-- if (rc <= 0) |
227 |
-- goto out; |
228 |
-+ seq_printf(m, "current_position: "LPU64"\n", pos); |
229 |
- |
230 |
-- buf += rc; |
231 |
-- len -= rc; |
232 |
- } else if (lo->ll_status == LS_SCANNING_PHASE2) { |
233 |
- cfs_duration_t duration = cfs_time_current() - |
234 |
- lfsck->li_time_last_checkpoint; |
235 |
-@@ -5032,29 +5001,26 @@ static int lfsck_layout_dump(const struct lu_env *env, |
236 |
- do_div(speed1, lo->ll_run_time_phase1); |
237 |
- if (rtime != 0) |
238 |
- do_div(speed2, rtime); |
239 |
-- rc = snprintf(buf, len, |
240 |
-- "checked_phase1: "LPU64"\n" |
241 |
-- "checked_phase2: "LPU64"\n" |
242 |
-- "run_time_phase1: %u seconds\n" |
243 |
-- "run_time_phase2: %u seconds\n" |
244 |
-- "average_speed_phase1: "LPU64" items/sec\n" |
245 |
-- "average_speed_phase2: "LPU64" items/sec\n" |
246 |
-- "real-time_speed_phase1: N/A\n" |
247 |
-- "real-time_speed_phase2: "LPU64" items/sec\n" |
248 |
-- "current_position: "DFID"\n", |
249 |
-- lo->ll_objs_checked_phase1, |
250 |
-- checked, |
251 |
-- lo->ll_run_time_phase1, |
252 |
-- rtime, |
253 |
-- speed1, |
254 |
-- speed2, |
255 |
-- new_checked, |
256 |
-- PFID(&com->lc_fid_latest_scanned_phase2)); |
257 |
-+ rc = seq_printf(m, "checked_phase1: "LPU64"\n" |
258 |
-+ "checked_phase2: "LPU64"\n" |
259 |
-+ "run_time_phase1: %u seconds\n" |
260 |
-+ "run_time_phase2: %u seconds\n" |
261 |
-+ "average_speed_phase1: "LPU64" items/sec\n" |
262 |
-+ "average_speed_phase2: "LPU64" items/sec\n" |
263 |
-+ "real-time_speed_phase1: N/A\n" |
264 |
-+ "real-time_speed_phase2: "LPU64" items/sec\n" |
265 |
-+ "current_position: "DFID"\n", |
266 |
-+ lo->ll_objs_checked_phase1, |
267 |
-+ checked, |
268 |
-+ lo->ll_run_time_phase1, |
269 |
-+ rtime, |
270 |
-+ speed1, |
271 |
-+ speed2, |
272 |
-+ new_checked, |
273 |
-+ PFID(&com->lc_fid_latest_scanned_phase2)); |
274 |
- if (rc <= 0) |
275 |
- goto out; |
276 |
- |
277 |
-- buf += rc; |
278 |
-- len -= rc; |
279 |
- } else { |
280 |
- __u64 speed1 = lo->ll_objs_checked_phase1; |
281 |
- __u64 speed2 = lo->ll_objs_checked_phase2; |
282 |
-@@ -5063,34 +5029,26 @@ static int lfsck_layout_dump(const struct lu_env *env, |
283 |
- do_div(speed1, lo->ll_run_time_phase1); |
284 |
- if (lo->ll_run_time_phase2 != 0) |
285 |
- do_div(speed2, lo->ll_run_time_phase2); |
286 |
-- rc = snprintf(buf, len, |
287 |
-- "checked_phase1: "LPU64"\n" |
288 |
-- "checked_phase2: "LPU64"\n" |
289 |
-- "run_time_phase1: %u seconds\n" |
290 |
-- "run_time_phase2: %u seconds\n" |
291 |
-- "average_speed_phase1: "LPU64" items/sec\n" |
292 |
-- "average_speed_phase2: "LPU64" objs/sec\n" |
293 |
-- "real-time_speed_phase1: N/A\n" |
294 |
-- "real-time_speed_phase2: N/A\n" |
295 |
-- "current_position: N/A\n", |
296 |
-- lo->ll_objs_checked_phase1, |
297 |
-- lo->ll_objs_checked_phase2, |
298 |
-- lo->ll_run_time_phase1, |
299 |
-- lo->ll_run_time_phase2, |
300 |
-- speed1, |
301 |
-- speed2); |
302 |
-- if (rc <= 0) |
303 |
-- goto out; |
304 |
-- |
305 |
-- buf += rc; |
306 |
-- len -= rc; |
307 |
-+ seq_printf(m, "checked_phase1: "LPU64"\n" |
308 |
-+ "checked_phase2: "LPU64"\n" |
309 |
-+ "run_time_phase1: %u seconds\n" |
310 |
-+ "run_time_phase2: %u seconds\n" |
311 |
-+ "average_speed_phase1: "LPU64" items/sec\n" |
312 |
-+ "average_speed_phase2: "LPU64" objs/sec\n" |
313 |
-+ "real-time_speed_phase1: N/A\n" |
314 |
-+ "real-time_speed_phase2: N/A\n" |
315 |
-+ "current_position: N/A\n", |
316 |
-+ lo->ll_objs_checked_phase1, |
317 |
-+ lo->ll_objs_checked_phase2, |
318 |
-+ lo->ll_run_time_phase1, |
319 |
-+ lo->ll_run_time_phase2, |
320 |
-+ speed1, |
321 |
-+ speed2); |
322 |
- } |
323 |
-- ret = save - len; |
324 |
-- |
325 |
- out: |
326 |
- up_read(&com->lc_sem); |
327 |
- |
328 |
-- return ret; |
329 |
-+ return rc; |
330 |
- } |
331 |
- |
332 |
- static int lfsck_layout_master_double_scan(const struct lu_env *env, |
333 |
-diff --git a/lustre/lfsck/lfsck_lib.c b/lustre/lfsck/lfsck_lib.c |
334 |
-index db73616..f6f1cce 100644 |
335 |
---- a/lustre/lfsck/lfsck_lib.c |
336 |
-+++ b/lustre/lfsck/lfsck_lib.c |
337 |
-@@ -900,21 +900,15 @@ static inline int lfsck_instance_add(struct lfsck_instance *lfsck) |
338 |
- return 0; |
339 |
- } |
340 |
- |
341 |
--int lfsck_bits_dump(char **buf, int *len, int bits, const char *names[], |
342 |
-+int lfsck_bits_dump(struct seq_file *m, int bits, const char *names[], |
343 |
- const char *prefix) |
344 |
- { |
345 |
-- int save = *len; |
346 |
- int flag; |
347 |
-- int rc; |
348 |
- int i; |
349 |
- bool newline = (bits != 0 ? false : true); |
350 |
- |
351 |
-- rc = snprintf(*buf, *len, "%s:%c", prefix, newline ? '\n' : ' '); |
352 |
-- if (rc <= 0) |
353 |
-- return -ENOSPC; |
354 |
-+ seq_printf(m, "%s:%c", prefix, bits != 0 ? ' ' : '\n'); |
355 |
- |
356 |
-- *buf += rc; |
357 |
-- *len -= rc; |
358 |
- for (i = 0, flag = 1; bits != 0; i++, flag = 1 << i) { |
359 |
- if (flag & bits) { |
360 |
- bits &= ~flag; |
361 |
-@@ -922,69 +916,43 @@ int lfsck_bits_dump(char **buf, int *len, int bits, const char *names[], |
362 |
- if (bits == 0) |
363 |
- newline = true; |
364 |
- |
365 |
-- rc = snprintf(*buf, *len, "%s%c", names[i], |
366 |
-- newline ? '\n' : ','); |
367 |
-- if (rc <= 0) |
368 |
-- return -ENOSPC; |
369 |
-- |
370 |
-- *buf += rc; |
371 |
-- *len -= rc; |
372 |
-+ seq_printf(m, "%s%c", names[i], |
373 |
-+ newline ? '\n' : ','); |
374 |
- } |
375 |
- } |
376 |
- } |
377 |
- |
378 |
-- if (!newline) { |
379 |
-- rc = snprintf(*buf, *len, "\n"); |
380 |
-- if (rc <= 0) |
381 |
-- return -ENOSPC; |
382 |
-- |
383 |
-- *buf += rc; |
384 |
-- *len -= rc; |
385 |
-- } |
386 |
-- |
387 |
-- return save - *len; |
388 |
-+ if (!newline) |
389 |
-+ seq_printf(m, "\n"); |
390 |
-+ return 0; |
391 |
- } |
392 |
- |
393 |
--int lfsck_time_dump(char **buf, int *len, __u64 time, const char *prefix) |
394 |
-+int lfsck_time_dump(struct seq_file *m, __u64 time, const char *prefix) |
395 |
- { |
396 |
-- int rc; |
397 |
-- |
398 |
- if (time != 0) |
399 |
-- rc = snprintf(*buf, *len, "%s: "LPU64" seconds\n", prefix, |
400 |
-- cfs_time_current_sec() - time); |
401 |
-+ seq_printf(m, "%s: "LPU64" seconds\n", prefix, |
402 |
-+ cfs_time_current_sec() - time); |
403 |
- else |
404 |
-- rc = snprintf(*buf, *len, "%s: N/A\n", prefix); |
405 |
-- if (rc <= 0) |
406 |
-- return -ENOSPC; |
407 |
-- |
408 |
-- *buf += rc; |
409 |
-- *len -= rc; |
410 |
-- return rc; |
411 |
-+ seq_printf(m, "%s: N/A\n", prefix); |
412 |
-+ return 0; |
413 |
- } |
414 |
- |
415 |
--int lfsck_pos_dump(char **buf, int *len, struct lfsck_position *pos, |
416 |
-+int lfsck_pos_dump(struct seq_file *m, struct lfsck_position *pos, |
417 |
- const char *prefix) |
418 |
- { |
419 |
-- int rc; |
420 |
-- |
421 |
- if (fid_is_zero(&pos->lp_dir_parent)) { |
422 |
- if (pos->lp_oit_cookie == 0) |
423 |
-- rc = snprintf(*buf, *len, "%s: N/A, N/A, N/A\n", |
424 |
-- prefix); |
425 |
-+ seq_printf(m, "%s: N/A, N/A, N/A\n", |
426 |
-+ prefix); |
427 |
- else |
428 |
-- rc = snprintf(*buf, *len, "%s: "LPU64", N/A, N/A\n", |
429 |
-- prefix, pos->lp_oit_cookie); |
430 |
-+ seq_printf(m, "%s: "LPU64", N/A, N/A\n", |
431 |
-+ prefix, pos->lp_oit_cookie); |
432 |
- } else { |
433 |
-- rc = snprintf(*buf, *len, "%s: "LPU64", "DFID", "LPU64"\n", |
434 |
-- prefix, pos->lp_oit_cookie, |
435 |
-- PFID(&pos->lp_dir_parent), pos->lp_dir_cookie); |
436 |
-+ seq_printf(m, "%s: "LPU64", "DFID", "LPU64"\n", |
437 |
-+ prefix, pos->lp_oit_cookie, |
438 |
-+ PFID(&pos->lp_dir_parent), pos->lp_dir_cookie); |
439 |
- } |
440 |
-- if (rc <= 0) |
441 |
-- return -ENOSPC; |
442 |
-- |
443 |
-- *buf += rc; |
444 |
-- *len -= rc; |
445 |
-- return rc; |
446 |
-+ return 0; |
447 |
- } |
448 |
- |
449 |
- void lfsck_pos_fill(const struct lu_env *env, struct lfsck_instance *lfsck, |
450 |
-@@ -1670,7 +1638,7 @@ int lfsck_async_request(const struct lu_env *env, struct obd_export *exp, |
451 |
- |
452 |
- /* external interfaces */ |
453 |
- |
454 |
--int lfsck_get_speed(struct dt_device *key, void *buf, int len) |
455 |
-+int lfsck_get_speed(struct seq_file *m, struct dt_device *key) |
456 |
- { |
457 |
- struct lu_env env; |
458 |
- struct lfsck_instance *lfsck; |
459 |
-@@ -1683,8 +1651,7 @@ int lfsck_get_speed(struct dt_device *key, void *buf, int len) |
460 |
- |
461 |
- lfsck = lfsck_instance_find(key, true, false); |
462 |
- if (likely(lfsck != NULL)) { |
463 |
-- rc = snprintf(buf, len, "%u\n", |
464 |
-- lfsck->li_bookmark_ram.lb_speed_limit); |
465 |
-+ seq_printf(m, "%u\n", lfsck->li_bookmark_ram.lb_speed_limit); |
466 |
- lfsck_instance_put(&env, lfsck); |
467 |
- } else { |
468 |
- rc = -ENXIO; |
469 |
-@@ -1724,7 +1691,7 @@ int lfsck_set_speed(struct dt_device *key, int val) |
470 |
- } |
471 |
- EXPORT_SYMBOL(lfsck_set_speed); |
472 |
- |
473 |
--int lfsck_get_windows(struct dt_device *key, void *buf, int len) |
474 |
-+int lfsck_get_windows(struct seq_file *m, struct dt_device *key) |
475 |
- { |
476 |
- struct lu_env env; |
477 |
- struct lfsck_instance *lfsck; |
478 |
-@@ -1737,8 +1704,7 @@ int lfsck_get_windows(struct dt_device *key, void *buf, int len) |
479 |
- |
480 |
- lfsck = lfsck_instance_find(key, true, false); |
481 |
- if (likely(lfsck != NULL)) { |
482 |
-- rc = snprintf(buf, len, "%u\n", |
483 |
-- lfsck->li_bookmark_ram.lb_async_windows); |
484 |
-+ seq_printf(m, "%u\n", lfsck->li_bookmark_ram.lb_async_windows); |
485 |
- lfsck_instance_put(&env, lfsck); |
486 |
- } else { |
487 |
- rc = -ENXIO; |
488 |
-@@ -1788,7 +1754,7 @@ int lfsck_set_windows(struct dt_device *key, int val) |
489 |
- } |
490 |
- EXPORT_SYMBOL(lfsck_set_windows); |
491 |
- |
492 |
--int lfsck_dump(struct dt_device *key, void *buf, int len, enum lfsck_type type) |
493 |
-+int lfsck_dump(struct seq_file *m, struct dt_device *key, enum lfsck_type type) |
494 |
- { |
495 |
- struct lu_env env; |
496 |
- struct lfsck_instance *lfsck; |
497 |
-@@ -1804,7 +1770,7 @@ int lfsck_dump(struct dt_device *key, void *buf, int len, enum lfsck_type type) |
498 |
- if (likely(lfsck != NULL)) { |
499 |
- com = lfsck_component_find(lfsck, type); |
500 |
- if (likely(com != NULL)) { |
501 |
-- rc = com->lc_ops->lfsck_dump(&env, com, buf, len); |
502 |
-+ rc = com->lc_ops->lfsck_dump(&env, com, m); |
503 |
- lfsck_component_put(&env, com); |
504 |
- } else { |
505 |
- rc = -ENOTSUPP; |
506 |
-diff --git a/lustre/lfsck/lfsck_namespace.c b/lustre/lfsck/lfsck_namespace.c |
507 |
-index 4dccb70..fc9a0dc 100644 |
508 |
---- a/lustre/lfsck/lfsck_namespace.c |
509 |
-+++ b/lustre/lfsck/lfsck_namespace.c |
510 |
-@@ -1099,65 +1099,56 @@ static int lfsck_namespace_post(const struct lu_env *env, |
511 |
- |
512 |
- static int |
513 |
- lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, |
514 |
-- char *buf, int len) |
515 |
-+ struct seq_file *m) |
516 |
- { |
517 |
- struct lfsck_instance *lfsck = com->lc_lfsck; |
518 |
- struct lfsck_bookmark *bk = &lfsck->li_bookmark_ram; |
519 |
- struct lfsck_namespace *ns = com->lc_file_ram; |
520 |
-- int save = len; |
521 |
-- int ret = -ENOSPC; |
522 |
- int rc; |
523 |
- |
524 |
- down_read(&com->lc_sem); |
525 |
-- rc = snprintf(buf, len, |
526 |
-- "name: lfsck_namespace\n" |
527 |
-- "magic: %#x\n" |
528 |
-- "version: %d\n" |
529 |
-- "status: %s\n", |
530 |
-- ns->ln_magic, |
531 |
-- bk->lb_version, |
532 |
-- lfsck_status2names(ns->ln_status)); |
533 |
-- if (rc <= 0) |
534 |
-- goto out; |
535 |
-- |
536 |
-- buf += rc; |
537 |
-- len -= rc; |
538 |
-- rc = lfsck_bits_dump(&buf, &len, ns->ln_flags, lfsck_flags_names, |
539 |
-- "flags"); |
540 |
-+ seq_printf(m, "name: lfsck_namespace\n" |
541 |
-+ "magic: %#x\n" |
542 |
-+ "version: %d\n" |
543 |
-+ "status: %s\n", |
544 |
-+ ns->ln_magic, |
545 |
-+ bk->lb_version, |
546 |
-+ lfsck_status2names(ns->ln_status)); |
547 |
-+ |
548 |
-+ rc = lfsck_bits_dump(m, ns->ln_flags, lfsck_flags_names, "flags"); |
549 |
- if (rc < 0) |
550 |
- goto out; |
551 |
- |
552 |
-- rc = lfsck_bits_dump(&buf, &len, bk->lb_param, lfsck_param_names, |
553 |
-- "param"); |
554 |
-+ rc = lfsck_bits_dump(m, bk->lb_param, lfsck_param_names, "param"); |
555 |
- if (rc < 0) |
556 |
- goto out; |
557 |
- |
558 |
-- rc = lfsck_time_dump(&buf, &len, ns->ln_time_last_complete, |
559 |
-+ rc = lfsck_time_dump(m, ns->ln_time_last_complete, |
560 |
- "time_since_last_completed"); |
561 |
- if (rc < 0) |
562 |
- goto out; |
563 |
- |
564 |
-- rc = lfsck_time_dump(&buf, &len, ns->ln_time_latest_start, |
565 |
-+ rc = lfsck_time_dump(m, ns->ln_time_latest_start, |
566 |
- "time_since_latest_start"); |
567 |
- if (rc < 0) |
568 |
- goto out; |
569 |
- |
570 |
-- rc = lfsck_time_dump(&buf, &len, ns->ln_time_last_checkpoint, |
571 |
-+ rc = lfsck_time_dump(m, ns->ln_time_last_checkpoint, |
572 |
- "time_since_last_checkpoint"); |
573 |
- if (rc < 0) |
574 |
- goto out; |
575 |
- |
576 |
-- rc = lfsck_pos_dump(&buf, &len, &ns->ln_pos_latest_start, |
577 |
-+ rc = lfsck_pos_dump(m, &ns->ln_pos_latest_start, |
578 |
- "latest_start_position"); |
579 |
- if (rc < 0) |
580 |
- goto out; |
581 |
- |
582 |
-- rc = lfsck_pos_dump(&buf, &len, &ns->ln_pos_last_checkpoint, |
583 |
-+ rc = lfsck_pos_dump(m, &ns->ln_pos_last_checkpoint, |
584 |
- "last_checkpoint_position"); |
585 |
- if (rc < 0) |
586 |
- goto out; |
587 |
- |
588 |
-- rc = lfsck_pos_dump(&buf, &len, &ns->ln_pos_first_inconsistent, |
589 |
-+ rc = lfsck_pos_dump(m, &ns->ln_pos_first_inconsistent, |
590 |
- "first_failure_position"); |
591 |
- if (rc < 0) |
592 |
- goto out; |
593 |
-@@ -1177,8 +1168,7 @@ lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, |
594 |
- do_div(new_checked, duration); |
595 |
- if (rtime != 0) |
596 |
- do_div(speed, rtime); |
597 |
-- rc = snprintf(buf, len, |
598 |
-- "checked_phase1: "LPU64"\n" |
599 |
-+ seq_printf(m, "checked_phase1: "LPU64"\n" |
600 |
- "checked_phase2: "LPU64"\n" |
601 |
- "updated_phase1: "LPU64"\n" |
602 |
- "updated_phase2: "LPU64"\n" |
603 |
-@@ -1214,11 +1204,6 @@ lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, |
604 |
- ns->ln_run_time_phase2, |
605 |
- speed, |
606 |
- new_checked); |
607 |
-- if (rc <= 0) |
608 |
-- goto out; |
609 |
-- |
610 |
-- buf += rc; |
611 |
-- len -= rc; |
612 |
- |
613 |
- LASSERT(lfsck->li_di_oit != NULL); |
614 |
- |
615 |
-@@ -1247,9 +1232,7 @@ lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, |
616 |
- pos.lp_dir_cookie = 0; |
617 |
- } |
618 |
- spin_unlock(&lfsck->li_lock); |
619 |
-- rc = lfsck_pos_dump(&buf, &len, &pos, "current_position"); |
620 |
-- if (rc <= 0) |
621 |
-- goto out; |
622 |
-+ lfsck_pos_dump(m, &pos, "current_position"); |
623 |
- } else if (ns->ln_status == LS_SCANNING_PHASE2) { |
624 |
- cfs_duration_t duration = cfs_time_current() - |
625 |
- lfsck->li_time_last_checkpoint; |
626 |
-@@ -1267,8 +1250,7 @@ lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, |
627 |
- do_div(speed1, ns->ln_run_time_phase1); |
628 |
- if (rtime != 0) |
629 |
- do_div(speed2, rtime); |
630 |
-- rc = snprintf(buf, len, |
631 |
-- "checked_phase1: "LPU64"\n" |
632 |
-+ seq_printf(m, "checked_phase1: "LPU64"\n" |
633 |
- "checked_phase2: "LPU64"\n" |
634 |
- "updated_phase1: "LPU64"\n" |
635 |
- "updated_phase2: "LPU64"\n" |
636 |
-@@ -1307,11 +1289,6 @@ lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, |
637 |
- speed2, |
638 |
- new_checked, |
639 |
- PFID(&ns->ln_fid_latest_scanned_phase2)); |
640 |
-- if (rc <= 0) |
641 |
-- goto out; |
642 |
-- |
643 |
-- buf += rc; |
644 |
-- len -= rc; |
645 |
- } else { |
646 |
- __u64 speed1 = ns->ln_items_checked; |
647 |
- __u64 speed2 = ns->ln_objs_checked_phase2; |
648 |
-@@ -1320,8 +1297,7 @@ lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, |
649 |
- do_div(speed1, ns->ln_run_time_phase1); |
650 |
- if (ns->ln_run_time_phase2 != 0) |
651 |
- do_div(speed2, ns->ln_run_time_phase2); |
652 |
-- rc = snprintf(buf, len, |
653 |
-- "checked_phase1: "LPU64"\n" |
654 |
-+ seq_printf(m, "checked_phase1: "LPU64"\n" |
655 |
- "checked_phase2: "LPU64"\n" |
656 |
- "updated_phase1: "LPU64"\n" |
657 |
- "updated_phase2: "LPU64"\n" |
658 |
-@@ -1358,17 +1334,10 @@ lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, |
659 |
- ns->ln_run_time_phase2, |
660 |
- speed1, |
661 |
- speed2); |
662 |
-- if (rc <= 0) |
663 |
-- goto out; |
664 |
-- |
665 |
-- buf += rc; |
666 |
-- len -= rc; |
667 |
- } |
668 |
-- ret = save - len; |
669 |
-- |
670 |
- out: |
671 |
- up_read(&com->lc_sem); |
672 |
-- return ret; |
673 |
-+ return 0; |
674 |
- } |
675 |
- |
676 |
- static int lfsck_namespace_double_scan_main(void *args) |
677 |
-diff --git a/lustre/mdd/mdd_device.c b/lustre/mdd/mdd_device.c |
678 |
-index 4f0baa4..f6deaca 100644 |
679 |
---- a/lustre/mdd/mdd_device.c |
680 |
-+++ b/lustre/mdd/mdd_device.c |
681 |
-@@ -889,16 +889,16 @@ static int mdd_process_config(const struct lu_env *env, |
682 |
- ENTRY; |
683 |
- |
684 |
- switch (cfg->lcfg_command) { |
685 |
-- case LCFG_PARAM: { |
686 |
-- struct lprocfs_static_vars lvars; |
687 |
-- |
688 |
-- lprocfs_mdd_init_vars(&lvars); |
689 |
-- rc = class_process_proc_param(PARAM_MDD, lvars.obd_vars, cfg,m); |
690 |
-- if (rc > 0 || rc == -ENOSYS) |
691 |
-- /* we don't understand; pass it on */ |
692 |
-- rc = next->ld_ops->ldo_process_config(env, next, cfg); |
693 |
-- break; |
694 |
-- } |
695 |
-+ case LCFG_PARAM: { |
696 |
-+ struct obd_device *obd = mdd2obd_dev(m); |
697 |
-+ |
698 |
-+ rc = class_process_proc_seq_param(PARAM_MDD, obd->obd_vars, |
699 |
-+ cfg, m); |
700 |
-+ if (rc > 0 || rc == -ENOSYS) |
701 |
-+ /* we don't understand; pass it on */ |
702 |
-+ rc = next->ld_ops->ldo_process_config(env, next, cfg); |
703 |
-+ break; |
704 |
-+ } |
705 |
- case LCFG_SETUP: |
706 |
- rc = next->ld_ops->ldo_process_config(env, next, cfg); |
707 |
- if (rc) |
708 |
-@@ -1566,11 +1566,8 @@ LU_CONTEXT_KEY_DEFINE(mdd, LCT_MD_THREAD); |
709 |
- |
710 |
- static int __init mdd_mod_init(void) |
711 |
- { |
712 |
-- struct lprocfs_static_vars lvars; |
713 |
- int rc; |
714 |
- |
715 |
-- lprocfs_mdd_init_vars(&lvars); |
716 |
-- |
717 |
- rc = lu_kmem_init(mdd_caches); |
718 |
- if (rc) |
719 |
- return rc; |
720 |
-@@ -1586,7 +1583,7 @@ static int __init mdd_mod_init(void) |
721 |
- |
722 |
- rc = class_register_type(&mdd_obd_device_ops, NULL, true, NULL, |
723 |
- #ifndef HAVE_ONLY_PROCFS_SEQ |
724 |
-- lvars.module_vars, |
725 |
-+ NULL, |
726 |
- #endif |
727 |
- LUSTRE_MDD_NAME, &mdd_device_type); |
728 |
- if (rc) |
729 |
-diff --git a/lustre/mdd/mdd_internal.h b/lustre/mdd/mdd_internal.h |
730 |
-index 4411892..37698f8 100644 |
731 |
---- a/lustre/mdd/mdd_internal.h |
732 |
-+++ b/lustre/mdd/mdd_internal.h |
733 |
-@@ -248,7 +248,6 @@ int orph_declare_index_delete(const struct lu_env *, struct mdd_object *, |
734 |
- struct thandle *); |
735 |
- |
736 |
- /* mdd_lproc.c */ |
737 |
--void lprocfs_mdd_init_vars(struct lprocfs_static_vars *lvars); |
738 |
- int mdd_procfs_init(struct mdd_device *mdd, const char *name); |
739 |
- int mdd_procfs_fini(struct mdd_device *mdd); |
740 |
- |
741 |
-diff --git a/lustre/mdd/mdd_lproc.c b/lustre/mdd/mdd_lproc.c |
742 |
-index de379b3..7ac4afa 100644 |
743 |
---- a/lustre/mdd/mdd_lproc.c |
744 |
-+++ b/lustre/mdd/mdd_lproc.c |
745 |
-@@ -49,56 +49,14 @@ |
746 |
- #include <libcfs/libcfs_string.h> |
747 |
- #include "mdd_internal.h" |
748 |
- |
749 |
--int mdd_procfs_init(struct mdd_device *mdd, const char *name) |
750 |
--{ |
751 |
-- struct lprocfs_static_vars lvars; |
752 |
-- struct obd_type *type; |
753 |
-- int rc; |
754 |
-- ENTRY; |
755 |
-- |
756 |
-- /* at the moment there is no linkage between lu_type |
757 |
-- * and obd_type, so we lookup obd_type this way */ |
758 |
-- type = class_search_type(LUSTRE_MDD_NAME); |
759 |
-- |
760 |
-- LASSERT(name != NULL); |
761 |
-- LASSERT(type != NULL); |
762 |
-- |
763 |
-- /* Find the type procroot and add the proc entry for this device */ |
764 |
-- lprocfs_mdd_init_vars(&lvars); |
765 |
-- mdd->mdd_proc_entry = lprocfs_register(name, type->typ_procroot, |
766 |
-- lvars.obd_vars, mdd); |
767 |
-- if (IS_ERR(mdd->mdd_proc_entry)) { |
768 |
-- rc = PTR_ERR(mdd->mdd_proc_entry); |
769 |
-- CERROR("Error %d setting up lprocfs for %s\n", |
770 |
-- rc, name); |
771 |
-- mdd->mdd_proc_entry = NULL; |
772 |
-- GOTO(out, rc); |
773 |
-- } |
774 |
-- |
775 |
-- rc = 0; |
776 |
-- |
777 |
-- EXIT; |
778 |
--out: |
779 |
-- if (rc) |
780 |
-- mdd_procfs_fini(mdd); |
781 |
-- return rc; |
782 |
--} |
783 |
-- |
784 |
--int mdd_procfs_fini(struct mdd_device *mdd) |
785 |
--{ |
786 |
-- if (mdd->mdd_proc_entry) { |
787 |
-- lprocfs_remove(&mdd->mdd_proc_entry); |
788 |
-- mdd->mdd_proc_entry = NULL; |
789 |
-- } |
790 |
-- RETURN(0); |
791 |
--} |
792 |
-- |
793 |
--static int lprocfs_wr_atime_diff(struct file *file, const char *buffer, |
794 |
-- unsigned long count, void *data) |
795 |
-+static ssize_t |
796 |
-+mdd_atime_diff_seq_write(struct file *file, const char *buffer, |
797 |
-+ size_t count, loff_t *off) |
798 |
- { |
799 |
-- struct mdd_device *mdd = data; |
800 |
-- char kernbuf[20], *end; |
801 |
-- unsigned long diff = 0; |
802 |
-+ struct seq_file *m = file->private_data; |
803 |
-+ struct mdd_device *mdd = m->private; |
804 |
-+ char kernbuf[20], *end; |
805 |
-+ unsigned long diff = 0; |
806 |
- |
807 |
- if (count > (sizeof(kernbuf) - 1)) |
808 |
- return -EINVAL; |
809 |
-@@ -116,37 +74,35 @@ static int lprocfs_wr_atime_diff(struct file *file, const char *buffer, |
810 |
- return count; |
811 |
- } |
812 |
- |
813 |
--static int lprocfs_rd_atime_diff(char *page, char **start, off_t off, |
814 |
-- int count, int *eof, void *data) |
815 |
-+static int mdd_atime_diff_seq_show(struct seq_file *m, void *data) |
816 |
- { |
817 |
-- struct mdd_device *mdd = data; |
818 |
-+ struct mdd_device *mdd = m->private; |
819 |
- |
820 |
-- *eof = 1; |
821 |
-- return snprintf(page, count, "%lu\n", mdd->mdd_atime_diff); |
822 |
-+ return seq_printf(m, "%lu\n", mdd->mdd_atime_diff); |
823 |
- } |
824 |
-- |
825 |
-+LPROC_SEQ_FOPS(mdd_atime_diff); |
826 |
- |
827 |
- /**** changelogs ****/ |
828 |
--static int lprocfs_rd_changelog_mask(char *page, char **start, off_t off, |
829 |
-- int count, int *eof, void *data) |
830 |
-+static int mdd_changelog_mask_seq_show(struct seq_file *m, void *data) |
831 |
- { |
832 |
-- struct mdd_device *mdd = data; |
833 |
-- int i = 0, rc = 0; |
834 |
-- |
835 |
-- *eof = 1; |
836 |
-- while (i < CL_LAST) { |
837 |
-- if (mdd->mdd_cl.mc_mask & (1 << i)) |
838 |
-- rc += snprintf(page + rc, count - rc, "%s ", |
839 |
-- changelog_type2str(i)); |
840 |
-- i++; |
841 |
-- } |
842 |
-- return rc; |
843 |
-+ struct mdd_device *mdd = m->private; |
844 |
-+ int i = 0; |
845 |
-+ |
846 |
-+ while (i < CL_LAST) { |
847 |
-+ if (mdd->mdd_cl.mc_mask & (1 << i)) |
848 |
-+ seq_printf(m, "%s ", changelog_type2str(i)); |
849 |
-+ i++; |
850 |
-+ } |
851 |
-+ seq_printf(m, "\n"); |
852 |
-+ return 0; |
853 |
- } |
854 |
- |
855 |
--static int lprocfs_wr_changelog_mask(struct file *file, const char *buffer, |
856 |
-- unsigned long count, void *data) |
857 |
-+static ssize_t |
858 |
-+mdd_changelog_mask_seq_write(struct file *file, const char *buffer, |
859 |
-+ size_t count, loff_t *off) |
860 |
- { |
861 |
-- struct mdd_device *mdd = data; |
862 |
-+ struct seq_file *m = file->private_data; |
863 |
-+ struct mdd_device *mdd = m->private; |
864 |
- char *kernbuf; |
865 |
- int rc; |
866 |
- ENTRY; |
867 |
-@@ -168,45 +124,32 @@ out: |
868 |
- OBD_FREE(kernbuf, PAGE_CACHE_SIZE); |
869 |
- return rc; |
870 |
- } |
871 |
-- |
872 |
--struct cucb_data { |
873 |
-- char *page; |
874 |
-- int count; |
875 |
-- int idx; |
876 |
--}; |
877 |
-+LPROC_SEQ_FOPS(mdd_changelog_mask); |
878 |
- |
879 |
- static int lprocfs_changelog_users_cb(const struct lu_env *env, |
880 |
- struct llog_handle *llh, |
881 |
- struct llog_rec_hdr *hdr, void *data) |
882 |
- { |
883 |
-- struct llog_changelog_user_rec *rec; |
884 |
-- struct cucb_data *cucb = (struct cucb_data *)data; |
885 |
-+ struct llog_changelog_user_rec *rec; |
886 |
-+ struct seq_file *m = data; |
887 |
- |
888 |
-- LASSERT(llh->lgh_hdr->llh_flags & LLOG_F_IS_PLAIN); |
889 |
-+ LASSERT(llh->lgh_hdr->llh_flags & LLOG_F_IS_PLAIN); |
890 |
- |
891 |
-- rec = (struct llog_changelog_user_rec *)hdr; |
892 |
-+ rec = (struct llog_changelog_user_rec *)hdr; |
893 |
- |
894 |
-- cucb->idx += snprintf(cucb->page + cucb->idx, cucb->count - cucb->idx, |
895 |
-- CHANGELOG_USER_PREFIX"%-3d "LPU64"\n", |
896 |
-- rec->cur_id, rec->cur_endrec); |
897 |
-- if (cucb->idx >= cucb->count) |
898 |
-- return -ENOSPC; |
899 |
-- |
900 |
-- return 0; |
901 |
-+ seq_printf(m, CHANGELOG_USER_PREFIX"%-3d "LPU64"\n", |
902 |
-+ rec->cur_id, rec->cur_endrec); |
903 |
-+ return 0; |
904 |
- } |
905 |
- |
906 |
--static int lprocfs_rd_changelog_users(char *page, char **start, off_t off, |
907 |
-- int count, int *eof, void *data) |
908 |
-+static int mdd_changelog_users_seq_show(struct seq_file *m, void *data) |
909 |
- { |
910 |
- struct lu_env env; |
911 |
-- struct mdd_device *mdd = data; |
912 |
-+ struct mdd_device *mdd = m->private; |
913 |
- struct llog_ctxt *ctxt; |
914 |
-- struct cucb_data cucb; |
915 |
- __u64 cur; |
916 |
- int rc; |
917 |
- |
918 |
-- *eof = 1; |
919 |
-- |
920 |
- ctxt = llog_get_context(mdd2obd_dev(mdd), |
921 |
- LLOG_CHANGELOG_USER_ORIG_CTXT); |
922 |
- if (ctxt == NULL) |
923 |
-@@ -223,37 +166,32 @@ static int lprocfs_rd_changelog_users(char *page, char **start, off_t off, |
924 |
- cur = mdd->mdd_cl.mc_index; |
925 |
- spin_unlock(&mdd->mdd_cl.mc_lock); |
926 |
- |
927 |
-- cucb.count = count; |
928 |
-- cucb.page = page; |
929 |
-- cucb.idx = 0; |
930 |
-- |
931 |
-- cucb.idx += snprintf(cucb.page + cucb.idx, cucb.count - cucb.idx, |
932 |
-- "current index: "LPU64"\n", cur); |
933 |
-- |
934 |
-- cucb.idx += snprintf(cucb.page + cucb.idx, cucb.count - cucb.idx, |
935 |
-- "%-5s %s\n", "ID", "index"); |
936 |
-+ seq_printf(m, "current index: "LPU64"\n", cur); |
937 |
-+ seq_printf(m, "%-5s %s\n", "ID", "index"); |
938 |
- |
939 |
- llog_cat_process(&env, ctxt->loc_handle, lprocfs_changelog_users_cb, |
940 |
-- &cucb, 0, 0); |
941 |
-+ m, 0, 0); |
942 |
- |
943 |
- lu_env_fini(&env); |
944 |
- llog_ctxt_put(ctxt); |
945 |
-- return cucb.idx; |
946 |
-+ return 0; |
947 |
- } |
948 |
-+LPROC_SEQ_FOPS_RO(mdd_changelog_users); |
949 |
- |
950 |
--static int lprocfs_rd_sync_perm(char *page, char **start, off_t off, |
951 |
-- int count, int *eof, void *data) |
952 |
-+static int mdd_sync_perm_seq_show(struct seq_file *m, void *data) |
953 |
- { |
954 |
-- struct mdd_device *mdd = data; |
955 |
-+ struct mdd_device *mdd = m->private; |
956 |
- |
957 |
-- LASSERT(mdd != NULL); |
958 |
-- return snprintf(page, count, "%d\n", mdd->mdd_sync_permission); |
959 |
-+ LASSERT(mdd != NULL); |
960 |
-+ return seq_printf(m, "%d\n", mdd->mdd_sync_permission); |
961 |
- } |
962 |
- |
963 |
--static int lprocfs_wr_sync_perm(struct file *file, const char *buffer, |
964 |
-- unsigned long count, void *data) |
965 |
-+static ssize_t |
966 |
-+mdd_sync_perm_seq_write(struct file *file, const char *buffer, |
967 |
-+ size_t count, loff_t *off) |
968 |
- { |
969 |
-- struct mdd_device *mdd = data; |
970 |
-+ struct seq_file *m = file->private_data; |
971 |
-+ struct mdd_device *mdd = m->private; |
972 |
- int val, rc; |
973 |
- |
974 |
- LASSERT(mdd != NULL); |
975 |
-@@ -264,22 +202,22 @@ static int lprocfs_wr_sync_perm(struct file *file, const char *buffer, |
976 |
- mdd->mdd_sync_permission = !!val; |
977 |
- return count; |
978 |
- } |
979 |
-+LPROC_SEQ_FOPS(mdd_sync_perm); |
980 |
- |
981 |
--static int lprocfs_rd_lfsck_speed_limit(char *page, char **start, off_t off, |
982 |
-- int count, int *eof, void *data) |
983 |
-+static int mdd_lfsck_speed_limit_seq_show(struct seq_file *m, void *data) |
984 |
- { |
985 |
-- struct mdd_device *mdd = data; |
986 |
-+ struct mdd_device *mdd = m->private; |
987 |
- |
988 |
- LASSERT(mdd != NULL); |
989 |
-- *eof = 1; |
990 |
-- |
991 |
-- return lfsck_get_speed(mdd->mdd_bottom, page, count); |
992 |
-+ return lfsck_get_speed(m, mdd->mdd_bottom); |
993 |
- } |
994 |
- |
995 |
--static int lprocfs_wr_lfsck_speed_limit(struct file *file, const char *buffer, |
996 |
-- unsigned long count, void *data) |
997 |
-+static ssize_t |
998 |
-+mdd_lfsck_speed_limit_seq_write(struct file *file, const char *buffer, |
999 |
-+ size_t count, loff_t *off) |
1000 |
- { |
1001 |
-- struct mdd_device *mdd = data; |
1002 |
-+ struct seq_file *m = file->private_data; |
1003 |
-+ struct mdd_device *mdd = m->private; |
1004 |
- __u32 val; |
1005 |
- int rc; |
1006 |
- |
1007 |
-@@ -291,25 +229,22 @@ static int lprocfs_wr_lfsck_speed_limit(struct file *file, const char *buffer, |
1008 |
- rc = lfsck_set_speed(mdd->mdd_bottom, val); |
1009 |
- return rc != 0 ? rc : count; |
1010 |
- } |
1011 |
-+LPROC_SEQ_FOPS(mdd_lfsck_speed_limit); |
1012 |
- |
1013 |
--static int lprocfs_rd_lfsck_async_windows(char *page, char **start, off_t off, |
1014 |
-- int count, int *eof, void *data) |
1015 |
-+static int mdd_lfsck_async_windows_seq_show(struct seq_file *m, void *data) |
1016 |
- { |
1017 |
-- struct mdd_device *mdd = data; |
1018 |
-- int rc; |
1019 |
-+ struct mdd_device *mdd = m->private; |
1020 |
- |
1021 |
- LASSERT(mdd != NULL); |
1022 |
-- *eof = 1; |
1023 |
-- |
1024 |
-- rc = lfsck_get_windows(mdd->mdd_bottom, page, count); |
1025 |
-- |
1026 |
-- return rc != 0 ? rc : count; |
1027 |
-+ return lfsck_get_windows(m, mdd->mdd_bottom); |
1028 |
- } |
1029 |
- |
1030 |
--static int lprocfs_wr_lfsck_async_windows(struct file *file, const char *buffer, |
1031 |
-- unsigned long count, void *data) |
1032 |
-+static ssize_t |
1033 |
-+mdd_lfsck_async_windows_seq_write(struct file *file, const char *buffer, |
1034 |
-+ size_t count, loff_t *off) |
1035 |
- { |
1036 |
-- struct mdd_device *mdd = data; |
1037 |
-+ struct seq_file *m = file->private_data; |
1038 |
-+ struct mdd_device *mdd = m->private; |
1039 |
- __u32 val; |
1040 |
- int rc; |
1041 |
- |
1042 |
-@@ -320,54 +255,87 @@ static int lprocfs_wr_lfsck_async_windows(struct file *file, const char *buffer, |
1043 |
- |
1044 |
- return rc != 0 ? rc : count; |
1045 |
- } |
1046 |
-+LPROC_SEQ_FOPS(mdd_lfsck_async_windows); |
1047 |
- |
1048 |
--static int lprocfs_rd_lfsck_namespace(char *page, char **start, off_t off, |
1049 |
-- int count, int *eof, void *data) |
1050 |
-+static int mdd_lfsck_namespace_seq_show(struct seq_file *m, void *data) |
1051 |
- { |
1052 |
-- struct mdd_device *mdd = data; |
1053 |
-- int rc; |
1054 |
-+ struct mdd_device *mdd = m->private; |
1055 |
- |
1056 |
- LASSERT(mdd != NULL); |
1057 |
-- *eof = 1; |
1058 |
- |
1059 |
-- rc = lfsck_dump(mdd->mdd_bottom, page, count, LT_NAMESPACE); |
1060 |
-- return rc; |
1061 |
-+ return lfsck_dump(m, mdd->mdd_bottom, LT_NAMESPACE); |
1062 |
- } |
1063 |
-+LPROC_SEQ_FOPS_RO(mdd_lfsck_namespace); |
1064 |
- |
1065 |
--static int lprocfs_rd_lfsck_layout(char *page, char **start, off_t off, |
1066 |
-- int count, int *eof, void *data) |
1067 |
-+static int mdd_lfsck_layout_seq_show(struct seq_file *m, void *data) |
1068 |
- { |
1069 |
-- struct mdd_device *mdd = data; |
1070 |
-+ struct mdd_device *mdd = m->private; |
1071 |
- |
1072 |
- LASSERT(mdd != NULL); |
1073 |
-- *eof = 1; |
1074 |
- |
1075 |
-- return lfsck_dump(mdd->mdd_bottom, page, count, LT_LAYOUT); |
1076 |
-+ return lfsck_dump(m, mdd->mdd_bottom, LT_LAYOUT); |
1077 |
- } |
1078 |
-- |
1079 |
--static struct lprocfs_vars lprocfs_mdd_obd_vars[] = { |
1080 |
-- { "atime_diff", lprocfs_rd_atime_diff, lprocfs_wr_atime_diff, 0 }, |
1081 |
-- { "changelog_mask", lprocfs_rd_changelog_mask, |
1082 |
-- lprocfs_wr_changelog_mask, 0 }, |
1083 |
-- { "changelog_users", lprocfs_rd_changelog_users, 0, 0}, |
1084 |
-- { "sync_permission", lprocfs_rd_sync_perm, lprocfs_wr_sync_perm, 0 }, |
1085 |
-- { "lfsck_speed_limit", lprocfs_rd_lfsck_speed_limit, |
1086 |
-- lprocfs_wr_lfsck_speed_limit, 0 }, |
1087 |
-- { "lfsck_async_windows", lprocfs_rd_lfsck_async_windows, |
1088 |
-- lprocfs_wr_lfsck_async_windows, 0 }, |
1089 |
-- { "lfsck_namespace", lprocfs_rd_lfsck_namespace, 0, 0 }, |
1090 |
-- { "lfsck_layout", lprocfs_rd_lfsck_layout, 0, 0 }, |
1091 |
-+LPROC_SEQ_FOPS_RO(mdd_lfsck_layout); |
1092 |
-+ |
1093 |
-+static struct lprocfs_seq_vars lprocfs_mdd_obd_vars[] = { |
1094 |
-+ { .name = "atime_diff", |
1095 |
-+ .fops = &mdd_atime_diff_fops }, |
1096 |
-+ { .name = "changelog_mask", |
1097 |
-+ .fops = &mdd_changelog_mask_fops }, |
1098 |
-+ { .name = "changelog_users", |
1099 |
-+ .fops = &mdd_changelog_users_fops }, |
1100 |
-+ { .name = "sync_permission", |
1101 |
-+ .fops = &mdd_sync_perm_fops }, |
1102 |
-+ { .name = "lfsck_speed_limit", |
1103 |
-+ .fops = &mdd_lfsck_speed_limit_fops }, |
1104 |
-+ { .name = "lfsck_async_windows", |
1105 |
-+ .fops = &mdd_lfsck_async_windows_fops }, |
1106 |
-+ { .name = "lfsck_namespace", |
1107 |
-+ .fops = &mdd_lfsck_namespace_fops }, |
1108 |
-+ { .name = "lfsck_layout", |
1109 |
-+ .fops = &mdd_lfsck_layout_fops }, |
1110 |
- { 0 } |
1111 |
- }; |
1112 |
- |
1113 |
--static struct lprocfs_vars lprocfs_mdd_module_vars[] = { |
1114 |
-- { "num_refs", lprocfs_rd_numrefs, 0, 0 }, |
1115 |
-- { 0 } |
1116 |
--}; |
1117 |
-- |
1118 |
--void lprocfs_mdd_init_vars(struct lprocfs_static_vars *lvars) |
1119 |
-+int mdd_procfs_init(struct mdd_device *mdd, const char *name) |
1120 |
- { |
1121 |
-- lvars->module_vars = lprocfs_mdd_module_vars; |
1122 |
-- lvars->obd_vars = lprocfs_mdd_obd_vars; |
1123 |
-+ struct obd_device *obd = class_name2obd(name); |
1124 |
-+ struct obd_type *type; |
1125 |
-+ int rc; |
1126 |
-+ ENTRY; |
1127 |
-+ |
1128 |
-+ /* at the moment there is no linkage between lu_type |
1129 |
-+ * and obd_type, so we lookup obd_type this way */ |
1130 |
-+ type = class_search_type(LUSTRE_MDD_NAME); |
1131 |
-+ |
1132 |
-+ LASSERT(name != NULL); |
1133 |
-+ LASSERT(type != NULL); |
1134 |
-+ LASSERT(obd != NULL); |
1135 |
-+ |
1136 |
-+ /* Find the type procroot and add the proc entry for this device */ |
1137 |
-+ obd->obd_vars = lprocfs_mdd_obd_vars; |
1138 |
-+ mdd->mdd_proc_entry = lprocfs_seq_register(name, type->typ_procroot, |
1139 |
-+ obd->obd_vars, mdd); |
1140 |
-+ if (IS_ERR(mdd->mdd_proc_entry)) { |
1141 |
-+ rc = PTR_ERR(mdd->mdd_proc_entry); |
1142 |
-+ CERROR("Error %d setting up lprocfs for %s\n", |
1143 |
-+ rc, name); |
1144 |
-+ mdd->mdd_proc_entry = NULL; |
1145 |
-+ GOTO(out, rc); |
1146 |
-+ } |
1147 |
-+ rc = 0; |
1148 |
-+ EXIT; |
1149 |
-+out: |
1150 |
-+ if (rc) |
1151 |
-+ mdd_procfs_fini(mdd); |
1152 |
-+ return rc; |
1153 |
- } |
1154 |
- |
1155 |
-+int mdd_procfs_fini(struct mdd_device *mdd) |
1156 |
-+{ |
1157 |
-+ if (mdd->mdd_proc_entry) { |
1158 |
-+ lprocfs_remove(&mdd->mdd_proc_entry); |
1159 |
-+ mdd->mdd_proc_entry = NULL; |
1160 |
-+ } |
1161 |
-+ RETURN(0); |
1162 |
-+} |
1163 |
-diff --git a/lustre/ofd/lproc_ofd.c b/lustre/ofd/lproc_ofd.c |
1164 |
-index 359b373..fcde82a 100644 |
1165 |
---- a/lustre/ofd/lproc_ofd.c |
1166 |
-+++ b/lustre/ofd/lproc_ofd.c |
1167 |
-@@ -47,81 +47,75 @@ |
1168 |
- |
1169 |
- #ifdef LPROCFS |
1170 |
- |
1171 |
--static int lprocfs_ofd_rd_seqs(char *page, char **start, off_t off, |
1172 |
-- int count, int *eof, void *data) |
1173 |
-+static int ofd_seqs_seq_show(struct seq_file *m, void *data) |
1174 |
- { |
1175 |
-- struct obd_device *obd = (struct obd_device *)data; |
1176 |
-+ struct obd_device *obd = m->private; |
1177 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1178 |
- |
1179 |
-- *eof = 1; |
1180 |
-- return snprintf(page, count, "%u\n", ofd->ofd_seq_count); |
1181 |
-+ return seq_printf(m, "%u\n", ofd->ofd_seq_count); |
1182 |
- } |
1183 |
-+LPROC_SEQ_FOPS_RO(ofd_seqs); |
1184 |
- |
1185 |
--static int lprocfs_ofd_rd_tot_dirty(char *page, char **start, off_t off, |
1186 |
-- int count, int *eof, void *data) |
1187 |
-+static int ofd_tot_dirty_seq_show(struct seq_file *m, void *data) |
1188 |
- { |
1189 |
-- struct obd_device *obd = (struct obd_device *)data; |
1190 |
-+ struct obd_device *obd = m->private; |
1191 |
- struct ofd_device *ofd; |
1192 |
- |
1193 |
- LASSERT(obd != NULL); |
1194 |
- ofd = ofd_dev(obd->obd_lu_dev); |
1195 |
-- *eof = 1; |
1196 |
-- return snprintf(page, count, LPU64"\n", ofd->ofd_tot_dirty); |
1197 |
-+ return seq_printf(m, LPU64"\n", ofd->ofd_tot_dirty); |
1198 |
- } |
1199 |
-+LPROC_SEQ_FOPS_RO(ofd_tot_dirty); |
1200 |
- |
1201 |
--static int lprocfs_ofd_rd_tot_granted(char *page, char **start, off_t off, |
1202 |
-- int count, int *eof, void *data) |
1203 |
-+static int ofd_tot_granted_seq_show(struct seq_file *m, void *data) |
1204 |
- { |
1205 |
-- struct obd_device *obd = (struct obd_device *)data; |
1206 |
-+ struct obd_device *obd = m->private; |
1207 |
- struct ofd_device *ofd; |
1208 |
- |
1209 |
- LASSERT(obd != NULL); |
1210 |
- ofd = ofd_dev(obd->obd_lu_dev); |
1211 |
-- *eof = 1; |
1212 |
-- return snprintf(page, count, LPU64"\n", ofd->ofd_tot_granted); |
1213 |
-+ return seq_printf(m, LPU64"\n", ofd->ofd_tot_granted); |
1214 |
- } |
1215 |
-+LPROC_SEQ_FOPS_RO(ofd_tot_granted); |
1216 |
- |
1217 |
--static int lprocfs_ofd_rd_tot_pending(char *page, char **start, off_t off, |
1218 |
-- int count, int *eof, void *data) |
1219 |
-+static int ofd_tot_pending_seq_show(struct seq_file *m, void *data) |
1220 |
- { |
1221 |
-- struct obd_device *obd = (struct obd_device *)data; |
1222 |
-+ struct obd_device *obd = m->private; |
1223 |
- struct ofd_device *ofd; |
1224 |
- |
1225 |
- LASSERT(obd != NULL); |
1226 |
- ofd = ofd_dev(obd->obd_lu_dev); |
1227 |
-- *eof = 1; |
1228 |
-- return snprintf(page, count, LPU64"\n", ofd->ofd_tot_pending); |
1229 |
-+ return seq_printf(m, LPU64"\n", ofd->ofd_tot_pending); |
1230 |
- } |
1231 |
-+LPROC_SEQ_FOPS_RO(ofd_tot_pending); |
1232 |
- |
1233 |
--static int lprocfs_ofd_rd_grant_precreate(char *page, char **start, off_t off, |
1234 |
-- int count, int *eof, void *data) |
1235 |
-+static int ofd_grant_precreate_seq_show(struct seq_file *m, void *data) |
1236 |
- { |
1237 |
-- struct obd_device *obd = (struct obd_device *)data; |
1238 |
-+ struct obd_device *obd = m->private; |
1239 |
- |
1240 |
- LASSERT(obd != NULL); |
1241 |
-- *eof = 1; |
1242 |
-- return snprintf(page, count, "%ld\n", |
1243 |
-- obd->obd_self_export->exp_filter_data.fed_grant); |
1244 |
-+ return seq_printf(m, "%ld\n", |
1245 |
-+ obd->obd_self_export->exp_filter_data.fed_grant); |
1246 |
- } |
1247 |
-+LPROC_SEQ_FOPS_RO(ofd_grant_precreate); |
1248 |
- |
1249 |
--static int lprocfs_ofd_rd_grant_ratio(char *page, char **start, off_t off, |
1250 |
-- int count, int *eof, void *data) |
1251 |
-+static int ofd_grant_ratio_seq_show(struct seq_file *m, void *data) |
1252 |
- { |
1253 |
-- struct obd_device *obd = (struct obd_device *)data; |
1254 |
-+ struct obd_device *obd = m->private; |
1255 |
- struct ofd_device *ofd; |
1256 |
- |
1257 |
- LASSERT(obd != NULL); |
1258 |
- ofd = ofd_dev(obd->obd_lu_dev); |
1259 |
-- *eof = 1; |
1260 |
-- return snprintf(page, count, "%d%%\n", |
1261 |
-- (int) ofd_grant_reserved(ofd, 100)); |
1262 |
-+ return seq_printf(m, "%d%%\n", |
1263 |
-+ (int) ofd_grant_reserved(ofd, 100)); |
1264 |
- } |
1265 |
- |
1266 |
--static int lprocfs_ofd_wr_grant_ratio(struct file *file, |
1267 |
-- const char __user *buffer, |
1268 |
-- unsigned long count, void *data) |
1269 |
-+static ssize_t |
1270 |
-+ofd_grant_ratio_seq_write(struct file *file, const char __user *buffer, |
1271 |
-+ size_t count, loff_t *off) |
1272 |
- { |
1273 |
-- struct obd_device *obd = (struct obd_device *)data; |
1274 |
-+ struct seq_file *m = file->private_data; |
1275 |
-+ struct obd_device *obd = m->private; |
1276 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1277 |
- int val; |
1278 |
- int rc; |
1279 |
-@@ -145,24 +139,24 @@ static int lprocfs_ofd_wr_grant_ratio(struct file *file, |
1280 |
- spin_unlock(&ofd->ofd_grant_lock); |
1281 |
- return count; |
1282 |
- } |
1283 |
-+LPROC_SEQ_FOPS(ofd_grant_ratio); |
1284 |
- |
1285 |
--static int lprocfs_ofd_rd_precreate_batch(char *page, char **start, off_t off, |
1286 |
-- int count, int *eof, void *data) |
1287 |
-+static int ofd_precreate_batch_seq_show(struct seq_file *m, void *data) |
1288 |
- { |
1289 |
-- struct obd_device *obd = (struct obd_device *)data; |
1290 |
-+ struct obd_device *obd = m->private; |
1291 |
- struct ofd_device *ofd; |
1292 |
- |
1293 |
- LASSERT(obd != NULL); |
1294 |
- ofd = ofd_dev(obd->obd_lu_dev); |
1295 |
-- *eof = 1; |
1296 |
-- return snprintf(page, count, "%d\n", ofd->ofd_precreate_batch); |
1297 |
-+ return seq_printf(m, "%d\n", ofd->ofd_precreate_batch); |
1298 |
- } |
1299 |
- |
1300 |
--static int lprocfs_ofd_wr_precreate_batch(struct file *file, |
1301 |
-- const char __user *buffer, |
1302 |
-- unsigned long count, void *data) |
1303 |
-+static ssize_t |
1304 |
-+ofd_precreate_batch_seq_write(struct file *file, const char __user *buffer, |
1305 |
-+ size_t count, loff_t *off) |
1306 |
- { |
1307 |
-- struct obd_device *obd = (struct obd_device *)data; |
1308 |
-+ struct seq_file *m = file->private_data; |
1309 |
-+ struct obd_device *obd = m->private; |
1310 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1311 |
- int val; |
1312 |
- int rc; |
1313 |
-@@ -179,11 +173,11 @@ static int lprocfs_ofd_wr_precreate_batch(struct file *file, |
1314 |
- spin_unlock(&ofd->ofd_batch_lock); |
1315 |
- return count; |
1316 |
- } |
1317 |
-+LPROC_SEQ_FOPS(ofd_precreate_batch); |
1318 |
- |
1319 |
--static int lprocfs_ofd_rd_last_id(char *page, char **start, off_t off, |
1320 |
-- int count, int *eof, void *data) |
1321 |
-+static int ofd_last_id_seq_show(struct seq_file *m, void *data) |
1322 |
- { |
1323 |
-- struct obd_device *obd = data; |
1324 |
-+ struct obd_device *obd = m->private; |
1325 |
- struct ofd_device *ofd; |
1326 |
- struct ofd_seq *oseq = NULL; |
1327 |
- int retval = 0, rc; |
1328 |
-@@ -201,35 +195,32 @@ static int lprocfs_ofd_rd_last_id(char *page, char **start, off_t off, |
1329 |
- fid_idif_seq(ostid_id(&oseq->os_oi), |
1330 |
- ofd->ofd_lut.lut_lsd.lsd_osd_index) : |
1331 |
- ostid_seq(&oseq->os_oi); |
1332 |
-- rc = snprintf(page, count, DOSTID"\n", seq, |
1333 |
-- ostid_id(&oseq->os_oi)); |
1334 |
-+ rc = seq_printf(m, DOSTID"\n", seq, ostid_id(&oseq->os_oi)); |
1335 |
- if (rc < 0) { |
1336 |
- retval = rc; |
1337 |
- break; |
1338 |
- } |
1339 |
-- page += rc; |
1340 |
-- count -= rc; |
1341 |
- retval += rc; |
1342 |
- } |
1343 |
- read_unlock(&ofd->ofd_seq_list_lock); |
1344 |
- return retval; |
1345 |
- } |
1346 |
-+LPROC_SEQ_FOPS_RO(ofd_last_id); |
1347 |
- |
1348 |
--int lprocfs_ofd_rd_fmd_max_num(char *page, char **start, off_t off, |
1349 |
-- int count, int *eof, void *data) |
1350 |
-+static int ofd_fmd_max_num_seq_show(struct seq_file *m, void *data) |
1351 |
- { |
1352 |
-- struct obd_device *obd = data; |
1353 |
-- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1354 |
-- int rc; |
1355 |
-+ struct obd_device *obd = m->private; |
1356 |
-+ struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1357 |
- |
1358 |
-- rc = snprintf(page, count, "%u\n", ofd->ofd_fmd_max_num); |
1359 |
-- return rc; |
1360 |
-+ return seq_printf(m, "%u\n", ofd->ofd_fmd_max_num); |
1361 |
- } |
1362 |
- |
1363 |
--int lprocfs_ofd_wr_fmd_max_num(struct file *file, const char __user *buffer, |
1364 |
-- unsigned long count, void *data) |
1365 |
-+static ssize_t |
1366 |
-+ofd_fmd_max_num_seq_write(struct file *file, const char __user *buffer, |
1367 |
-+ size_t count, loff_t *off) |
1368 |
- { |
1369 |
-- struct obd_device *obd = data; |
1370 |
-+ struct seq_file *m = file->private_data; |
1371 |
-+ struct obd_device *obd = m->private; |
1372 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1373 |
- int val; |
1374 |
- int rc; |
1375 |
-@@ -244,22 +235,22 @@ int lprocfs_ofd_wr_fmd_max_num(struct file *file, const char __user *buffer, |
1376 |
- ofd->ofd_fmd_max_num = val; |
1377 |
- return count; |
1378 |
- } |
1379 |
-+LPROC_SEQ_FOPS(ofd_fmd_max_num); |
1380 |
- |
1381 |
--int lprocfs_ofd_rd_fmd_max_age(char *page, char **start, off_t off, |
1382 |
-- int count, int *eof, void *data) |
1383 |
-+static int ofd_fmd_max_age_seq_show(struct seq_file *m, void *data) |
1384 |
- { |
1385 |
-- struct obd_device *obd = data; |
1386 |
-- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1387 |
-- int rc; |
1388 |
-+ struct obd_device *obd = m->private; |
1389 |
-+ struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1390 |
- |
1391 |
-- rc = snprintf(page, count, "%ld\n", ofd->ofd_fmd_max_age / HZ); |
1392 |
-- return rc; |
1393 |
-+ return seq_printf(m, "%ld\n", ofd->ofd_fmd_max_age / HZ); |
1394 |
- } |
1395 |
- |
1396 |
--int lprocfs_ofd_wr_fmd_max_age(struct file *file, const char __user *buffer, |
1397 |
-- unsigned long count, void *data) |
1398 |
-+static ssize_t |
1399 |
-+ofd_fmd_max_age_seq_write(struct file *file, const char __user *buffer, |
1400 |
-+ size_t count, loff_t *off) |
1401 |
- { |
1402 |
-- struct obd_device *obd = data; |
1403 |
-+ struct seq_file *m = file->private_data; |
1404 |
-+ struct obd_device *obd = m->private; |
1405 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1406 |
- int val; |
1407 |
- int rc; |
1408 |
-@@ -274,22 +265,22 @@ int lprocfs_ofd_wr_fmd_max_age(struct file *file, const char __user *buffer, |
1409 |
- ofd->ofd_fmd_max_age = val * HZ; |
1410 |
- return count; |
1411 |
- } |
1412 |
-+LPROC_SEQ_FOPS(ofd_fmd_max_age); |
1413 |
- |
1414 |
--static int lprocfs_ofd_rd_capa(char *page, char **start, off_t off, |
1415 |
-- int count, int *eof, void *data) |
1416 |
-+static int ofd_capa_seq_show(struct seq_file *m, void *data) |
1417 |
- { |
1418 |
-- struct obd_device *obd = data; |
1419 |
-- int rc; |
1420 |
-+ struct obd_device *obd = m->private; |
1421 |
- |
1422 |
-- rc = snprintf(page, count, "capability on: %s\n", |
1423 |
-- obd->u.filter.fo_fl_oss_capa ? "oss" : ""); |
1424 |
-- return rc; |
1425 |
-+ return seq_printf(m, "capability on: %s\n", |
1426 |
-+ obd->u.filter.fo_fl_oss_capa ? "oss" : ""); |
1427 |
- } |
1428 |
- |
1429 |
--static int lprocfs_ofd_wr_capa(struct file *file, const char __user *buffer, |
1430 |
-- unsigned long count, void *data) |
1431 |
-+static ssize_t |
1432 |
-+ofd_capa_seq_write(struct file *file, const char *__user buffer, size_t count, |
1433 |
-+ loff_t *off) |
1434 |
- { |
1435 |
-- struct obd_device *obd = data; |
1436 |
-+ struct seq_file *m = file->private_data; |
1437 |
-+ struct obd_device *obd = m->private; |
1438 |
- int val, rc; |
1439 |
- |
1440 |
- rc = lprocfs_write_helper(buffer, count, &val); |
1441 |
-@@ -308,28 +299,29 @@ static int lprocfs_ofd_wr_capa(struct file *file, const char __user *buffer, |
1442 |
- val ? "enabled" : "disabled"); |
1443 |
- return count; |
1444 |
- } |
1445 |
-+LPROC_SEQ_FOPS(ofd_capa); |
1446 |
- |
1447 |
--static int lprocfs_ofd_rd_capa_count(char *page, char **start, off_t off, |
1448 |
-- int count, int *eof, void *data) |
1449 |
-+static int ofd_capa_count_seq_show(struct seq_file *m, void *data) |
1450 |
- { |
1451 |
-- return snprintf(page, count, "%d %d\n", |
1452 |
-- capa_count[CAPA_SITE_CLIENT], |
1453 |
-- capa_count[CAPA_SITE_SERVER]); |
1454 |
-+ return seq_printf(m, "%d %d\n", capa_count[CAPA_SITE_CLIENT], |
1455 |
-+ capa_count[CAPA_SITE_SERVER]); |
1456 |
- } |
1457 |
-+LPROC_SEQ_FOPS_RO(ofd_capa_count); |
1458 |
- |
1459 |
--int lprocfs_ofd_rd_degraded(char *page, char **start, off_t off, |
1460 |
-- int count, int *eof, void *data) |
1461 |
-+static int ofd_degraded_seq_show(struct seq_file *m, void *data) |
1462 |
- { |
1463 |
-- struct obd_device *obd = data; |
1464 |
-+ struct obd_device *obd = m->private; |
1465 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1466 |
- |
1467 |
-- return snprintf(page, count, "%u\n", ofd->ofd_raid_degraded); |
1468 |
-+ return seq_printf(m, "%u\n", ofd->ofd_raid_degraded); |
1469 |
- } |
1470 |
- |
1471 |
--int lprocfs_ofd_wr_degraded(struct file *file, const char __user *buffer, |
1472 |
-- unsigned long count, void *data) |
1473 |
-+static ssize_t |
1474 |
-+ofd_degraded_seq_write(struct file *file, const char __user *buffer, |
1475 |
-+ size_t count, loff_t *off) |
1476 |
- { |
1477 |
-- struct obd_device *obd = data; |
1478 |
-+ struct seq_file *m = file->private_data; |
1479 |
-+ struct obd_device *obd = m->private; |
1480 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1481 |
- int val, rc; |
1482 |
- |
1483 |
-@@ -340,38 +332,37 @@ int lprocfs_ofd_wr_degraded(struct file *file, const char __user *buffer, |
1484 |
- spin_lock(&ofd->ofd_flags_lock); |
1485 |
- ofd->ofd_raid_degraded = !!val; |
1486 |
- spin_unlock(&ofd->ofd_flags_lock); |
1487 |
-- |
1488 |
- return count; |
1489 |
- } |
1490 |
-+LPROC_SEQ_FOPS(ofd_degraded); |
1491 |
- |
1492 |
--int lprocfs_ofd_rd_fstype(char *page, char **start, off_t off, int count, |
1493 |
-- int *eof, void *data) |
1494 |
-+static int ofd_fstype_seq_show(struct seq_file *m, void *data) |
1495 |
- { |
1496 |
-- struct obd_device *obd = data; |
1497 |
-+ struct obd_device *obd = m->private; |
1498 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1499 |
- struct lu_device *d; |
1500 |
- |
1501 |
- LASSERT(ofd->ofd_osd); |
1502 |
- d = &ofd->ofd_osd->dd_lu_dev; |
1503 |
- LASSERT(d->ld_type); |
1504 |
-- return snprintf(page, count, "%s\n", d->ld_type->ldt_name); |
1505 |
-+ return seq_printf(m, "%s\n", d->ld_type->ldt_name); |
1506 |
- } |
1507 |
-+LPROC_SEQ_FOPS_RO(ofd_fstype); |
1508 |
- |
1509 |
--int lprocfs_ofd_rd_syncjournal(char *page, char **start, off_t off, |
1510 |
-- int count, int *eof, void *data) |
1511 |
-+static int ofd_syncjournal_seq_show(struct seq_file *m, void *data) |
1512 |
- { |
1513 |
-- struct obd_device *obd = data; |
1514 |
-+ struct obd_device *obd = m->private; |
1515 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1516 |
-- int rc; |
1517 |
- |
1518 |
-- rc = snprintf(page, count, "%u\n", ofd->ofd_syncjournal); |
1519 |
-- return rc; |
1520 |
-+ return seq_printf(m, "%u\n", ofd->ofd_syncjournal); |
1521 |
- } |
1522 |
- |
1523 |
--int lprocfs_ofd_wr_syncjournal(struct file *file, const char __user *buffer, |
1524 |
-- unsigned long count, void *data) |
1525 |
-+static ssize_t |
1526 |
-+ofd_syncjournal_seq_write(struct file *file, const char __user *buffer, |
1527 |
-+ size_t count, loff_t *off) |
1528 |
- { |
1529 |
-- struct obd_device *obd = data; |
1530 |
-+ struct seq_file *m = file->private_data; |
1531 |
-+ struct obd_device *obd = m->private; |
1532 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1533 |
- int val; |
1534 |
- int rc; |
1535 |
-@@ -390,6 +381,7 @@ int lprocfs_ofd_wr_syncjournal(struct file *file, const char __user *buffer, |
1536 |
- |
1537 |
- return count; |
1538 |
- } |
1539 |
-+LPROC_SEQ_FOPS(ofd_syncjournal); |
1540 |
- |
1541 |
- /* This must be longer than the longest string below */ |
1542 |
- #define SYNC_STATES_MAXLEN 16 |
1543 |
-@@ -397,23 +389,21 @@ static char *sync_on_cancel_states[] = {"never", |
1544 |
- "blocking", |
1545 |
- "always" }; |
1546 |
- |
1547 |
--int lprocfs_ofd_rd_sync_lock_cancel(char *page, char **start, off_t off, |
1548 |
-- int count, int *eof, void *data) |
1549 |
-+static int ofd_sync_lock_cancel_seq_show(struct seq_file *m, void *data) |
1550 |
- { |
1551 |
-- struct obd_device *obd = data; |
1552 |
-+ struct obd_device *obd = m->private; |
1553 |
- struct lu_target *tgt = obd->u.obt.obt_lut; |
1554 |
-- int rc; |
1555 |
- |
1556 |
-- rc = snprintf(page, count, "%s\n", |
1557 |
-- sync_on_cancel_states[tgt->lut_sync_lock_cancel]); |
1558 |
-- return rc; |
1559 |
-+ return seq_printf(m, "%s\n", |
1560 |
-+ sync_on_cancel_states[tgt->lut_sync_lock_cancel]); |
1561 |
- } |
1562 |
- |
1563 |
--int lprocfs_ofd_wr_sync_lock_cancel(struct file *file, |
1564 |
-- const char __user *buffer, |
1565 |
-- unsigned long count, void *data) |
1566 |
-+static ssize_t |
1567 |
-+ofd_sync_lock_cancel_seq_write(struct file *file, const char __user *buffer, |
1568 |
-+ size_t count, loff_t *off) |
1569 |
- { |
1570 |
-- struct obd_device *obd = data; |
1571 |
-+ struct seq_file *m = file->private_data; |
1572 |
-+ struct obd_device *obd = m->private; |
1573 |
- struct lu_target *tgt = obd->u.obt.obt_lut; |
1574 |
- char kernbuf[SYNC_STATES_MAXLEN]; |
1575 |
- int val = -1; |
1576 |
-@@ -455,23 +445,23 @@ int lprocfs_ofd_wr_sync_lock_cancel(struct file *file, |
1577 |
- spin_unlock(&tgt->lut_flags_lock); |
1578 |
- return count; |
1579 |
- } |
1580 |
-+LPROC_SEQ_FOPS(ofd_sync_lock_cancel); |
1581 |
- |
1582 |
--int lprocfs_ofd_rd_grant_compat_disable(char *page, char **start, off_t off, |
1583 |
-- int count, int *eof, void *data) |
1584 |
-+static int ofd_grant_compat_disable_seq_show(struct seq_file *m, void *data) |
1585 |
- { |
1586 |
-- struct obd_device *obd = data; |
1587 |
-- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1588 |
-- int rc; |
1589 |
-+ struct obd_device *obd = m->private; |
1590 |
-+ struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1591 |
- |
1592 |
-- rc = snprintf(page, count, "%u\n", ofd->ofd_grant_compat_disable); |
1593 |
-- return rc; |
1594 |
-+ return seq_printf(m, "%u\n", ofd->ofd_grant_compat_disable); |
1595 |
- } |
1596 |
- |
1597 |
--int lprocfs_ofd_wr_grant_compat_disable(struct file *file, |
1598 |
-- const char __user *buffer, |
1599 |
-- unsigned long count, void *data) |
1600 |
-+static ssize_t |
1601 |
-+ofd_grant_compat_disable_seq_write(struct file *file, |
1602 |
-+ const char __user *buffer, |
1603 |
-+ size_t count, loff_t *off) |
1604 |
- { |
1605 |
-- struct obd_device *obd = data; |
1606 |
-+ struct seq_file *m = file->private_data; |
1607 |
-+ struct obd_device *obd = m->private; |
1608 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1609 |
- int val; |
1610 |
- int rc; |
1611 |
-@@ -489,42 +479,43 @@ int lprocfs_ofd_wr_grant_compat_disable(struct file *file, |
1612 |
- |
1613 |
- return count; |
1614 |
- } |
1615 |
-+LPROC_SEQ_FOPS(ofd_grant_compat_disable); |
1616 |
- |
1617 |
--int lprocfs_ofd_rd_soft_sync_limit(char *page, char **start, off_t off, |
1618 |
-- int count, int *eof, void *data) |
1619 |
-+static int ofd_soft_sync_limit_seq_show(struct seq_file *m, void *data) |
1620 |
- { |
1621 |
-- struct obd_device *obd = data; |
1622 |
-+ struct obd_device *obd = m->private; |
1623 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1624 |
- |
1625 |
-- return lprocfs_rd_uint(page, start, off, count, eof, |
1626 |
-- &ofd->ofd_soft_sync_limit); |
1627 |
-+ return lprocfs_uint_seq_show(m, &ofd->ofd_soft_sync_limit); |
1628 |
- } |
1629 |
- |
1630 |
--int lprocfs_ofd_wr_soft_sync_limit(struct file *file, const char __user *buffer, |
1631 |
-- unsigned long count, void *data) |
1632 |
-+static ssize_t |
1633 |
-+ofd_soft_sync_limit_seq_write(struct file *file, const char __user *buffer, |
1634 |
-+ size_t count, loff_t *off) |
1635 |
- { |
1636 |
-- struct obd_device *obd = data; |
1637 |
-- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1638 |
-+ struct seq_file *m = file->private_data; |
1639 |
-+ struct obd_device *obd = m->private; |
1640 |
-+ struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1641 |
- |
1642 |
-- return lprocfs_wr_uint(file, buffer, count, &ofd->ofd_soft_sync_limit); |
1643 |
-+ return lprocfs_uint_seq_write(file, buffer, count, |
1644 |
-+ (loff_t *) &ofd->ofd_soft_sync_limit); |
1645 |
- } |
1646 |
-+LPROC_SEQ_FOPS(ofd_soft_sync_limit); |
1647 |
- |
1648 |
--static int lprocfs_rd_lfsck_speed_limit(char *page, char **start, off_t off, |
1649 |
-- int count, int *eof, void *data) |
1650 |
-+static int ofd_lfsck_speed_limit_seq_show(struct seq_file *m, void *data) |
1651 |
- { |
1652 |
-- struct obd_device *obd = data; |
1653 |
-+ struct obd_device *obd = m->private; |
1654 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1655 |
- |
1656 |
-- *eof = 1; |
1657 |
-- |
1658 |
-- return lfsck_get_speed(ofd->ofd_osd, page, count); |
1659 |
-+ return lfsck_get_speed(m, ofd->ofd_osd); |
1660 |
- } |
1661 |
- |
1662 |
--static int lprocfs_wr_lfsck_speed_limit(struct file *file, |
1663 |
-- const char __user *buffer, |
1664 |
-- unsigned long count, void *data) |
1665 |
-+static ssize_t |
1666 |
-+ofd_lfsck_speed_limit_seq_write(struct file *file, const char __user *buffer, |
1667 |
-+ size_t count, loff_t *off) |
1668 |
- { |
1669 |
-- struct obd_device *obd = data; |
1670 |
-+ struct seq_file *m = file->private_data; |
1671 |
-+ struct obd_device *obd = m->private; |
1672 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1673 |
- __u32 val; |
1674 |
- int rc; |
1675 |
-@@ -537,38 +528,35 @@ static int lprocfs_wr_lfsck_speed_limit(struct file *file, |
1676 |
- |
1677 |
- return rc != 0 ? rc : count; |
1678 |
- } |
1679 |
-+LPROC_SEQ_FOPS(ofd_lfsck_speed_limit); |
1680 |
- |
1681 |
--static int lprocfs_rd_lfsck_layout(char *page, char **start, off_t off, |
1682 |
-- int count, int *eof, void *data) |
1683 |
-+static int ofd_lfsck_layout_seq_show(struct seq_file *m, void *data) |
1684 |
- { |
1685 |
-- struct obd_device *obd = data; |
1686 |
-- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1687 |
-- |
1688 |
-- *eof = 1; |
1689 |
-+ struct obd_device *obd = m->private; |
1690 |
-+ struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1691 |
- |
1692 |
-- return lfsck_dump(ofd->ofd_osd, page, count, LT_LAYOUT); |
1693 |
-+ return lfsck_dump(m, ofd->ofd_osd, LT_LAYOUT); |
1694 |
- } |
1695 |
-+LPROC_SEQ_FOPS_RO(ofd_lfsck_layout); |
1696 |
- |
1697 |
--static int lprocfs_rd_lfsck_verify_pfid(char *page, char **start, off_t off, |
1698 |
-- int count, int *eof, void *data) |
1699 |
-+static int ofd_lfsck_verify_pfid_seq_show(struct seq_file *m, void *data) |
1700 |
- { |
1701 |
-- struct obd_device *obd = data; |
1702 |
-- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1703 |
-- |
1704 |
-- *eof = 1; |
1705 |
-+ struct obd_device *obd = m->private; |
1706 |
-+ struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1707 |
- |
1708 |
-- return snprintf(page, count, |
1709 |
-- "switch: %s\ndetected: "LPU64"\nrepaired: "LPU64"\n", |
1710 |
-- ofd->ofd_lfsck_verify_pfid ? "on" : "off", |
1711 |
-- ofd->ofd_inconsistency_self_detected, |
1712 |
-- ofd->ofd_inconsistency_self_repaired); |
1713 |
-+ return seq_printf(m, |
1714 |
-+ "switch: %s\ndetected: "LPU64"\nrepaired: "LPU64"\n", |
1715 |
-+ ofd->ofd_lfsck_verify_pfid ? "on" : "off", |
1716 |
-+ ofd->ofd_inconsistency_self_detected, |
1717 |
-+ ofd->ofd_inconsistency_self_repaired); |
1718 |
- } |
1719 |
- |
1720 |
--static int lprocfs_wr_lfsck_verify_pfid(struct file *file, |
1721 |
-- const char __user *buffer, |
1722 |
-- unsigned long count, void *data) |
1723 |
-+static ssize_t |
1724 |
-+ofd_lfsck_verify_pfid_seq_write(struct file *file, const char __user *buffer, |
1725 |
-+ size_t count, loff_t *off) |
1726 |
- { |
1727 |
-- struct obd_device *obd = data; |
1728 |
-+ struct seq_file *m = file->private_data; |
1729 |
-+ struct obd_device *obd = m->private; |
1730 |
- struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); |
1731 |
- __u32 val; |
1732 |
- int rc; |
1733 |
-@@ -581,75 +569,101 @@ static int lprocfs_wr_lfsck_verify_pfid(struct file *file, |
1734 |
- |
1735 |
- return count; |
1736 |
- } |
1737 |
-- |
1738 |
--static struct lprocfs_vars lprocfs_ofd_obd_vars[] = { |
1739 |
-- { "uuid", lprocfs_rd_uuid, 0, 0 }, |
1740 |
-- { "blocksize", lprocfs_rd_blksize, 0, 0 }, |
1741 |
-- { "kbytestotal", lprocfs_rd_kbytestotal, 0, 0 }, |
1742 |
-- { "kbytesfree", lprocfs_rd_kbytesfree, 0, 0 }, |
1743 |
-- { "kbytesavail", lprocfs_rd_kbytesavail, 0, 0 }, |
1744 |
-- { "filestotal", lprocfs_rd_filestotal, 0, 0 }, |
1745 |
-- { "filesfree", lprocfs_rd_filesfree, 0, 0 }, |
1746 |
-- { "seqs_allocated", lprocfs_ofd_rd_seqs, 0, 0 }, |
1747 |
-- { "fstype", lprocfs_ofd_rd_fstype, 0, 0 }, |
1748 |
-- { "last_id", lprocfs_ofd_rd_last_id, 0, 0 }, |
1749 |
-- { "tot_dirty", lprocfs_ofd_rd_tot_dirty, 0, 0 }, |
1750 |
-- { "tot_pending", lprocfs_ofd_rd_tot_pending, 0, 0 }, |
1751 |
-- { "tot_granted", lprocfs_ofd_rd_tot_granted, 0, 0 }, |
1752 |
-- { "grant_precreate", lprocfs_ofd_rd_grant_precreate, 0, 0 }, |
1753 |
-- { "grant_ratio", lprocfs_ofd_rd_grant_ratio, |
1754 |
-- lprocfs_ofd_wr_grant_ratio, 0, 0 }, |
1755 |
-- { "precreate_batch", lprocfs_ofd_rd_precreate_batch, |
1756 |
-- lprocfs_ofd_wr_precreate_batch, 0 }, |
1757 |
-- { "recovery_status", lprocfs_obd_rd_recovery_status, 0, 0 }, |
1758 |
-- { "recovery_time_soft", lprocfs_obd_rd_recovery_time_soft, |
1759 |
-- lprocfs_obd_wr_recovery_time_soft, 0}, |
1760 |
-- { "recovery_time_hard", lprocfs_obd_rd_recovery_time_hard, |
1761 |
-- lprocfs_obd_wr_recovery_time_hard, 0}, |
1762 |
-- { "evict_client", 0, lprocfs_wr_evict_client, 0, |
1763 |
-- &lprocfs_evict_client_fops}, |
1764 |
-- { "num_exports", lprocfs_rd_num_exports, 0, 0 }, |
1765 |
-- { "degraded", lprocfs_ofd_rd_degraded, |
1766 |
-- lprocfs_ofd_wr_degraded, 0}, |
1767 |
-- { "sync_journal", lprocfs_ofd_rd_syncjournal, |
1768 |
-- lprocfs_ofd_wr_syncjournal, 0 }, |
1769 |
-- { "sync_on_lock_cancel", lprocfs_ofd_rd_sync_lock_cancel, |
1770 |
-- lprocfs_ofd_wr_sync_lock_cancel, 0 }, |
1771 |
-- { "instance", lprocfs_target_rd_instance, 0 }, |
1772 |
-- { "ir_factor", lprocfs_obd_rd_ir_factor, |
1773 |
-- lprocfs_obd_wr_ir_factor, 0}, |
1774 |
-- { "grant_compat_disable", lprocfs_ofd_rd_grant_compat_disable, |
1775 |
-- lprocfs_ofd_wr_grant_compat_disable, 0 }, |
1776 |
-- { "client_cache_count", lprocfs_ofd_rd_fmd_max_num, |
1777 |
-- lprocfs_ofd_wr_fmd_max_num, 0 }, |
1778 |
-- { "client_cache_seconds", lprocfs_ofd_rd_fmd_max_age, |
1779 |
-- lprocfs_ofd_wr_fmd_max_age, 0 }, |
1780 |
-- { "capa", lprocfs_ofd_rd_capa, |
1781 |
-- lprocfs_ofd_wr_capa, 0 }, |
1782 |
-- { "capa_count", lprocfs_ofd_rd_capa_count, 0, 0 }, |
1783 |
-- { "job_cleanup_interval", lprocfs_rd_job_interval, |
1784 |
-- lprocfs_wr_job_interval, 0}, |
1785 |
-- { "soft_sync_limit", lprocfs_ofd_rd_soft_sync_limit, |
1786 |
-- lprocfs_ofd_wr_soft_sync_limit, 0}, |
1787 |
-- { "lfsck_speed_limit", lprocfs_rd_lfsck_speed_limit, |
1788 |
-- lprocfs_wr_lfsck_speed_limit, 0 }, |
1789 |
-- { "lfsck_layout", lprocfs_rd_lfsck_layout, 0, 0 }, |
1790 |
-- { "lfsck_verify_pfid", lprocfs_rd_lfsck_verify_pfid, |
1791 |
-- lprocfs_wr_lfsck_verify_pfid, 0 }, |
1792 |
-- { 0 } |
1793 |
--}; |
1794 |
-- |
1795 |
--static struct lprocfs_vars lprocfs_ofd_module_vars[] = { |
1796 |
-- { "num_refs", lprocfs_rd_numrefs, 0, 0 }, |
1797 |
-+LPROC_SEQ_FOPS(ofd_lfsck_verify_pfid); |
1798 |
-+ |
1799 |
-+LPROC_SEQ_FOPS_RO_TYPE(ofd, uuid); |
1800 |
-+LPROC_SEQ_FOPS_RO_TYPE(ofd, blksize); |
1801 |
-+LPROC_SEQ_FOPS_RO_TYPE(ofd, kbytestotal); |
1802 |
-+LPROC_SEQ_FOPS_RO_TYPE(ofd, kbytesfree); |
1803 |
-+LPROC_SEQ_FOPS_RO_TYPE(ofd, kbytesavail); |
1804 |
-+LPROC_SEQ_FOPS_RO_TYPE(ofd, filestotal); |
1805 |
-+LPROC_SEQ_FOPS_RO_TYPE(ofd, filesfree); |
1806 |
-+ |
1807 |
-+LPROC_SEQ_FOPS_RO_TYPE(ofd, recovery_status); |
1808 |
-+LPROC_SEQ_FOPS_RW_TYPE(ofd, recovery_time_soft); |
1809 |
-+LPROC_SEQ_FOPS_RW_TYPE(ofd, recovery_time_hard); |
1810 |
-+LPROC_SEQ_FOPS_WO_TYPE(ofd, evict_client); |
1811 |
-+LPROC_SEQ_FOPS_RO_TYPE(ofd, num_exports); |
1812 |
-+LPROC_SEQ_FOPS_RO_TYPE(ofd, target_instance); |
1813 |
-+LPROC_SEQ_FOPS_RW_TYPE(ofd, ir_factor); |
1814 |
-+LPROC_SEQ_FOPS_RW_TYPE(ofd, job_interval); |
1815 |
-+ |
1816 |
-+struct lprocfs_seq_vars lprocfs_ofd_obd_vars[] = { |
1817 |
-+ { .name = "uuid", |
1818 |
-+ .fops = &ofd_uuid_fops }, |
1819 |
-+ { .name = "blocksize", |
1820 |
-+ .fops = &ofd_blksize_fops }, |
1821 |
-+ { .name = "kbytestotal", |
1822 |
-+ .fops = &ofd_kbytestotal_fops }, |
1823 |
-+ { .name = "kbytesfree", |
1824 |
-+ .fops = &ofd_kbytesfree_fops }, |
1825 |
-+ { .name = "kbytesavail", |
1826 |
-+ .fops = &ofd_kbytesavail_fops }, |
1827 |
-+ { .name = "filestotal", |
1828 |
-+ .fops = &ofd_filestotal_fops }, |
1829 |
-+ { .name = "filesfree", |
1830 |
-+ .fops = &ofd_filesfree_fops }, |
1831 |
-+ { .name = "seqs_allocated", |
1832 |
-+ .fops = &ofd_seqs_fops }, |
1833 |
-+ { .name = "fstype", |
1834 |
-+ .fops = &ofd_fstype_fops }, |
1835 |
-+ { .name = "last_id", |
1836 |
-+ .fops = &ofd_last_id_fops }, |
1837 |
-+ { .name = "tot_dirty", |
1838 |
-+ .fops = &ofd_tot_dirty_fops }, |
1839 |
-+ { .name = "tot_pending", |
1840 |
-+ .fops = &ofd_tot_pending_fops }, |
1841 |
-+ { .name = "tot_granted", |
1842 |
-+ .fops = &ofd_tot_granted_fops }, |
1843 |
-+ { .name = "grant_precreate", |
1844 |
-+ .fops = &ofd_grant_precreate_fops }, |
1845 |
-+ { .name = "grant_ratio", |
1846 |
-+ .fops = &ofd_grant_ratio_fops }, |
1847 |
-+ { .name = "precreate_batch", |
1848 |
-+ .fops = &ofd_precreate_batch_fops }, |
1849 |
-+ { .name = "recovery_status", |
1850 |
-+ .fops = &ofd_recovery_status_fops }, |
1851 |
-+ { .name = "recovery_time_soft", |
1852 |
-+ .fops = &ofd_recovery_time_soft_fops }, |
1853 |
-+ { .name = "recovery_time_hard", |
1854 |
-+ .fops = &ofd_recovery_time_hard_fops }, |
1855 |
-+ { .name = "evict_client", |
1856 |
-+ .fops = &ofd_evict_client_fops }, |
1857 |
-+ { .name = "num_exports", |
1858 |
-+ .fops = &ofd_num_exports_fops }, |
1859 |
-+ { .name = "degraded", |
1860 |
-+ .fops = &ofd_degraded_fops }, |
1861 |
-+ { .name = "sync_journal", |
1862 |
-+ .fops = &ofd_syncjournal_fops }, |
1863 |
-+ { .name = "sync_on_lock_cancel", |
1864 |
-+ .fops = &ofd_sync_lock_cancel_fops }, |
1865 |
-+ { .name = "instance", |
1866 |
-+ .fops = &ofd_target_instance_fops }, |
1867 |
-+ { .name = "ir_factor", |
1868 |
-+ .fops = &ofd_ir_factor_fops }, |
1869 |
-+ { .name = "grant_compat_disable", |
1870 |
-+ .fops = &ofd_grant_compat_disable_fops }, |
1871 |
-+ { .name = "client_cache_count", |
1872 |
-+ .fops = &ofd_fmd_max_num_fops }, |
1873 |
-+ { .name = "client_cache_seconds", |
1874 |
-+ .fops = &ofd_fmd_max_age_fops }, |
1875 |
-+ { .name = "capa", |
1876 |
-+ .fops = &ofd_capa_fops }, |
1877 |
-+ { .name = "capa_count", |
1878 |
-+ .fops = &ofd_capa_count_fops }, |
1879 |
-+ { .name = "job_cleanup_interval", |
1880 |
-+ .fops = &ofd_job_interval_fops }, |
1881 |
-+ { .name = "soft_sync_limit", |
1882 |
-+ .fops = &ofd_soft_sync_limit_fops }, |
1883 |
-+ { .name = "lfsck_speed_limit", |
1884 |
-+ .fops = &ofd_lfsck_speed_limit_fops }, |
1885 |
-+ { .name = "lfsck_layout", |
1886 |
-+ .fops = &ofd_lfsck_layout_fops }, |
1887 |
-+ { .name = "lfsck_verify_pfid", |
1888 |
-+ .fops = &ofd_lfsck_verify_pfid_fops }, |
1889 |
- { 0 } |
1890 |
- }; |
1891 |
- |
1892 |
--void lprocfs_ofd_init_vars(struct lprocfs_static_vars *lvars) |
1893 |
--{ |
1894 |
-- lvars->module_vars = lprocfs_ofd_module_vars; |
1895 |
-- lvars->obd_vars = lprocfs_ofd_obd_vars; |
1896 |
--} |
1897 |
-- |
1898 |
- void ofd_stats_counter_init(struct lprocfs_stats *stats) |
1899 |
- { |
1900 |
- LASSERT(stats && stats->ls_num >= LPROC_OFD_STATS_LAST); |
1901 |
-diff --git a/lustre/ofd/ofd_dev.c b/lustre/ofd/ofd_dev.c |
1902 |
-index 0f0d51a..6172913 100644 |
1903 |
---- a/lustre/ofd/ofd_dev.c |
1904 |
-+++ b/lustre/ofd/ofd_dev.c |
1905 |
-@@ -239,8 +239,7 @@ static int ofd_process_config(const struct lu_env *env, struct lu_device *d, |
1906 |
- |
1907 |
- switch (cfg->lcfg_command) { |
1908 |
- case LCFG_PARAM: { |
1909 |
-- struct lprocfs_static_vars lvars; |
1910 |
-- |
1911 |
-+ struct obd_device *obd = ofd_obd(m); |
1912 |
- /* For interoperability */ |
1913 |
- struct cfg_interop_param *ptr = NULL; |
1914 |
- struct lustre_cfg *old_cfg = NULL; |
1915 |
-@@ -278,8 +277,7 @@ static int ofd_process_config(const struct lu_env *env, struct lu_device *d, |
1916 |
- break; |
1917 |
- } |
1918 |
- |
1919 |
-- lprocfs_ofd_init_vars(&lvars); |
1920 |
-- rc = class_process_proc_param(PARAM_OST, lvars.obd_vars, cfg, |
1921 |
-+ rc = class_process_proc_seq_param(PARAM_OST, obd->obd_vars, cfg, |
1922 |
- d->ld_obd); |
1923 |
- if (rc > 0 || rc == -ENOSYS) { |
1924 |
- CDEBUG(D_CONFIG, "pass param %s down the stack.\n", |
1925 |
-@@ -485,9 +483,10 @@ static struct lu_device_operations ofd_lu_ops = { |
1926 |
- .ldo_prepare = ofd_prepare, |
1927 |
- }; |
1928 |
- |
1929 |
-+LPROC_SEQ_FOPS(lprocfs_nid_stats_clear); |
1930 |
-+ |
1931 |
- static int ofd_procfs_init(struct ofd_device *ofd) |
1932 |
- { |
1933 |
-- struct lprocfs_static_vars lvars; |
1934 |
- struct obd_device *obd = ofd_obd(ofd); |
1935 |
- cfs_proc_dir_entry_t *entry; |
1936 |
- int rc = 0; |
1937 |
-@@ -496,8 +495,8 @@ static int ofd_procfs_init(struct ofd_device *ofd) |
1938 |
- |
1939 |
- /* lprocfs must be setup before the ofd so state can be safely added |
1940 |
- * to /proc incrementally as the ofd is setup */ |
1941 |
-- lprocfs_ofd_init_vars(&lvars); |
1942 |
-- rc = lprocfs_obd_setup(obd, lvars.obd_vars); |
1943 |
-+ obd->obd_vars = lprocfs_ofd_obd_vars; |
1944 |
-+ rc = lprocfs_seq_obd_setup(obd); |
1945 |
- if (rc) { |
1946 |
- CERROR("%s: lprocfs_obd_setup failed: %d.\n", |
1947 |
- obd->obd_name, rc); |
1948 |
-@@ -513,7 +512,8 @@ static int ofd_procfs_init(struct ofd_device *ofd) |
1949 |
- |
1950 |
- obd->obd_uses_nid_stats = 1; |
1951 |
- |
1952 |
-- entry = lprocfs_register("exports", obd->obd_proc_entry, NULL, NULL); |
1953 |
-+ entry = lprocfs_seq_register("exports", obd->obd_proc_entry, NULL, |
1954 |
-+ NULL); |
1955 |
- if (IS_ERR(entry)) { |
1956 |
- rc = PTR_ERR(entry); |
1957 |
- CERROR("%s: error %d setting up lprocfs for %s\n", |
1958 |
-@@ -523,8 +523,10 @@ static int ofd_procfs_init(struct ofd_device *ofd) |
1959 |
- obd->obd_proc_exports_entry = entry; |
1960 |
- |
1961 |
- entry = lprocfs_add_simple(obd->obd_proc_exports_entry, "clear", |
1962 |
-- lprocfs_nid_stats_clear_read, |
1963 |
-- lprocfs_nid_stats_clear_write, obd, NULL); |
1964 |
-+#ifndef HAVE_ONLY_PROCFS_SEQ |
1965 |
-+ NULL, NULL, |
1966 |
-+#endif |
1967 |
-+ obd, &lprocfs_nid_stats_clear_fops); |
1968 |
- if (IS_ERR(entry)) { |
1969 |
- rc = PTR_ERR(entry); |
1970 |
- CERROR("%s: add proc entry 'clear' failed: %d.\n", |
1971 |
-@@ -540,7 +542,7 @@ static int ofd_procfs_init(struct ofd_device *ofd) |
1972 |
- GOTO(remove_entry_clear, rc); |
1973 |
- RETURN(0); |
1974 |
- remove_entry_clear: |
1975 |
-- lprocfs_remove_proc_entry("clear", obd->obd_proc_exports_entry); |
1976 |
-+ lprocfs_remove(&obd->obd_proc_exports_entry); |
1977 |
- obd_cleanup: |
1978 |
- lprocfs_obd_cleanup(obd); |
1979 |
- lprocfs_free_obd_stats(obd); |
1980 |
-@@ -548,51 +550,48 @@ obd_cleanup: |
1981 |
- return rc; |
1982 |
- } |
1983 |
- |
1984 |
-+/** |
1985 |
-+ * ofd_procfs_add_brw_stats_symlink - expose osd stats to ofd layer |
1986 |
-+ * |
1987 |
-+ * The osd interfaces to the backend file system exposes useful data |
1988 |
-+ * such as brw_stats and read or write cache states. This same data |
1989 |
-+ * needs to be exposed into the obdfilter (ofd) layer to maintain |
1990 |
-+ * backwards compatibility. This function creates the symlinks in the |
1991 |
-+ * proc layer to enable this. |
1992 |
-+ */ |
1993 |
- static void ofd_procfs_add_brw_stats_symlink(struct ofd_device *ofd) |
1994 |
- { |
1995 |
- struct obd_device *obd = ofd_obd(ofd); |
1996 |
- struct obd_device *osd_obd = ofd->ofd_osd_exp->exp_obd; |
1997 |
-- cfs_proc_dir_entry_t *osd_root = osd_obd->obd_type->typ_procroot; |
1998 |
-- cfs_proc_dir_entry_t *osd_dir; |
1999 |
- |
2000 |
-- osd_dir = lprocfs_srch(osd_root, obd->obd_name); |
2001 |
-- if (osd_dir == NULL) |
2002 |
-+ if (obd->obd_proc_entry == NULL) |
2003 |
- return; |
2004 |
- |
2005 |
-- if (lprocfs_srch(osd_dir, "brw_stats") != NULL) |
2006 |
-- lprocfs_add_symlink("brw_stats", obd->obd_proc_entry, |
2007 |
-- "../../%s/%s/brw_stats", |
2008 |
-- osd_root->name, osd_dir->name); |
2009 |
-- |
2010 |
-- if (lprocfs_srch(osd_dir, "read_cache_enable") != NULL) |
2011 |
-- lprocfs_add_symlink("read_cache_enable", obd->obd_proc_entry, |
2012 |
-- "../../%s/%s/read_cache_enable", |
2013 |
-- osd_root->name, osd_dir->name); |
2014 |
-- |
2015 |
-- if (lprocfs_srch(osd_dir, "readcache_max_filesize") != NULL) |
2016 |
-- lprocfs_add_symlink("readcache_max_filesize", |
2017 |
-- obd->obd_proc_entry, |
2018 |
-- "../../%s/%s/readcache_max_filesize", |
2019 |
-- osd_root->name, osd_dir->name); |
2020 |
-- |
2021 |
-- if (lprocfs_srch(osd_dir, "writethrough_cache_enable") != NULL) |
2022 |
-- lprocfs_add_symlink("writethrough_cache_enable", |
2023 |
-- obd->obd_proc_entry, |
2024 |
-- "../../%s/%s/writethrough_cache_enable", |
2025 |
-- osd_root->name, osd_dir->name); |
2026 |
-+ lprocfs_add_symlink("brw_stats", obd->obd_proc_entry, |
2027 |
-+ "../../%s/%s/brw_stats", |
2028 |
-+ osd_obd->obd_type->typ_name, obd->obd_name); |
2029 |
-+ |
2030 |
-+ lprocfs_add_symlink("read_cache_enable", obd->obd_proc_entry, |
2031 |
-+ "../../%s/%s/read_cache_enable", |
2032 |
-+ osd_obd->obd_type->typ_name, obd->obd_name); |
2033 |
-+ |
2034 |
-+ lprocfs_add_symlink("readcache_max_filesize", |
2035 |
-+ obd->obd_proc_entry, |
2036 |
-+ "../../%s/%s/readcache_max_filesize", |
2037 |
-+ osd_obd->obd_type->typ_name, obd->obd_name); |
2038 |
-+ |
2039 |
-+ lprocfs_add_symlink("writethrough_cache_enable", |
2040 |
-+ obd->obd_proc_entry, |
2041 |
-+ "../../%s/%s/writethrough_cache_enable", |
2042 |
-+ osd_obd->obd_type->typ_name, obd->obd_name); |
2043 |
- } |
2044 |
- |
2045 |
- static void ofd_procfs_fini(struct ofd_device *ofd) |
2046 |
- { |
2047 |
- struct obd_device *obd = ofd_obd(ofd); |
2048 |
- |
2049 |
-- lprocfs_remove_proc_entry("writethrough_cache_enable", |
2050 |
-- obd->obd_proc_entry); |
2051 |
-- lprocfs_remove_proc_entry("readcache_max_filesize", |
2052 |
-- obd->obd_proc_entry); |
2053 |
-- lprocfs_remove_proc_entry("read_cache_enable", obd->obd_proc_entry); |
2054 |
-- lprocfs_remove_proc_entry("brw_stats", obd->obd_proc_entry); |
2055 |
-- lprocfs_remove_proc_entry("clear", obd->obd_proc_exports_entry); |
2056 |
-+ lprocfs_remove(&obd->obd_proc_exports_entry); |
2057 |
-+ lprocfs_remove(&obd->obd_proc_entry); |
2058 |
- lprocfs_free_per_client_stats(obd); |
2059 |
- lprocfs_obd_cleanup(obd); |
2060 |
- lprocfs_free_obd_stats(obd); |
2061 |
-@@ -2377,7 +2376,6 @@ static struct lu_device_type ofd_device_type = { |
2062 |
- |
2063 |
- int __init ofd_init(void) |
2064 |
- { |
2065 |
-- struct lprocfs_static_vars lvars; |
2066 |
- int rc; |
2067 |
- |
2068 |
- rc = lu_kmem_init(ofd_caches); |
2069 |
-@@ -2390,11 +2388,9 @@ int __init ofd_init(void) |
2070 |
- return(rc); |
2071 |
- } |
2072 |
- |
2073 |
-- lprocfs_ofd_init_vars(&lvars); |
2074 |
-- |
2075 |
- rc = class_register_type(&ofd_obd_ops, NULL, true, NULL, |
2076 |
- #ifndef HAVE_ONLY_PROCFS_SEQ |
2077 |
-- lvars.module_vars, |
2078 |
-+ NULL, |
2079 |
- #endif |
2080 |
- LUSTRE_OST_NAME, &ofd_device_type); |
2081 |
- return rc; |
2082 |
-diff --git a/lustre/ofd/ofd_internal.h b/lustre/ofd/ofd_internal.h |
2083 |
-index 4f12506..2e75de5 100644 |
2084 |
---- a/lustre/ofd/ofd_internal.h |
2085 |
-+++ b/lustre/ofd/ofd_internal.h |
2086 |
-@@ -403,13 +403,9 @@ int ofd_txn_stop_cb(const struct lu_env *env, struct thandle *txn, |
2087 |
- |
2088 |
- /* lproc_ofd.c */ |
2089 |
- #ifdef LPROCFS |
2090 |
--void lprocfs_ofd_init_vars(struct lprocfs_static_vars *lvars); |
2091 |
-+extern struct lprocfs_seq_vars lprocfs_ofd_obd_vars[]; |
2092 |
- void ofd_stats_counter_init(struct lprocfs_stats *stats); |
2093 |
- #else |
2094 |
--static void lprocfs_ofd_init_vars(struct lprocfs_static_vars *lvars) |
2095 |
--{ |
2096 |
-- memset(lvars, 0, sizeof(*lvars)); |
2097 |
--} |
2098 |
- static inline void ofd_stats_counter_init(struct lprocfs_stats *stats) {} |
2099 |
- #endif |
2100 |
- |
2101 |
--- |
2102 |
-1.9.3 |
2103 |
- |
2104 |
|
2105 |
diff --git a/patches/07_doxygen.patch b/patches/07_doxygen.patch |
2106 |
deleted file mode 100644 |
2107 |
index 6df24ea2e..000000000 |
2108 |
--- a/patches/07_doxygen.patch |
2109 |
+++ /dev/null |
2110 |
@@ -1,1804 +0,0 @@ |
2111 |
-Index: dcmtk-3.6.0/doxygen/htmldocs.cfg |
2112 |
-=================================================================== |
2113 |
---- dcmtk-3.6.0.orig/doxygen/htmldocs.cfg 2011-11-23 15:49:41.000000000 +0100 |
2114 |
-+++ dcmtk-3.6.0/doxygen/htmldocs.cfg 2011-11-23 15:50:00.000000000 +0100 |
2115 |
-@@ -1,4 +1,4 @@ |
2116 |
--# Doxyfile 1.5.1 |
2117 |
-+# Doxyfile 1.7.1 |
2118 |
- |
2119 |
- # This file describes the settings to be used by the documentation system |
2120 |
- # doxygen (www.doxygen.org) for a project |
2121 |
-@@ -14,438 +14,560 @@ |
2122 |
- # Project related configuration options |
2123 |
- #--------------------------------------------------------------------------- |
2124 |
- |
2125 |
--# The PROJECT_NAME tag is a single word (or a sequence of words surrounded |
2126 |
-+# This tag specifies the encoding used for all characters in the config file |
2127 |
-+# that follow. The default is UTF-8 which is also the encoding used for all |
2128 |
-+# text before the first occurrence of this tag. Doxygen uses libiconv (or the |
2129 |
-+# iconv built into libc) for the transcoding. See |
2130 |
-+# http://www.gnu.org/software/libiconv for the list of possible encodings. |
2131 |
-+ |
2132 |
-+DOXYFILE_ENCODING = UTF-8 |
2133 |
-+ |
2134 |
-+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded |
2135 |
- # by quotes) that should identify the project. |
2136 |
- |
2137 |
- PROJECT_NAME = "OFFIS DCMTK" |
2138 |
- |
2139 |
--# The PROJECT_NUMBER tag can be used to enter a project or revision number. |
2140 |
--# This could be handy for archiving the generated documentation or |
2141 |
-+# The PROJECT_NUMBER tag can be used to enter a project or revision number. |
2142 |
-+# This could be handy for archiving the generated documentation or |
2143 |
- # if some version control system is used. |
2144 |
- |
2145 |
- PROJECT_NUMBER = "Version @DCMTK_VERSION@" |
2146 |
- |
2147 |
--# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) |
2148 |
--# base path where the generated documentation will be put. |
2149 |
--# If a relative path is entered, it will be relative to the location |
2150 |
-+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) |
2151 |
-+# base path where the generated documentation will be put. |
2152 |
-+# If a relative path is entered, it will be relative to the location |
2153 |
- # where doxygen was started. If left blank the current directory will be used. |
2154 |
- |
2155 |
--OUTPUT_DIRECTORY = |
2156 |
-+OUTPUT_DIRECTORY = |
2157 |
- |
2158 |
--# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create |
2159 |
--# 4096 sub-directories (in 2 levels) under the output directory of each output |
2160 |
--# format and will distribute the generated files over these directories. |
2161 |
--# Enabling this option can be useful when feeding doxygen a huge amount of |
2162 |
--# source files, where putting all generated files in the same directory would |
2163 |
-+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create |
2164 |
-+# 4096 sub-directories (in 2 levels) under the output directory of each output |
2165 |
-+# format and will distribute the generated files over these directories. |
2166 |
-+# Enabling this option can be useful when feeding doxygen a huge amount of |
2167 |
-+# source files, where putting all generated files in the same directory would |
2168 |
- # otherwise cause performance problems for the file system. |
2169 |
- |
2170 |
- CREATE_SUBDIRS = NO |
2171 |
- |
2172 |
--# The OUTPUT_LANGUAGE tag is used to specify the language in which all |
2173 |
--# documentation generated by doxygen is written. Doxygen will use this |
2174 |
--# information to generate all constant output in the proper language. |
2175 |
--# The default language is English, other supported languages are: |
2176 |
--# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, |
2177 |
--# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, |
2178 |
--# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, |
2179 |
--# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, |
2180 |
--# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. |
2181 |
-+# The OUTPUT_LANGUAGE tag is used to specify the language in which all |
2182 |
-+# documentation generated by doxygen is written. Doxygen will use this |
2183 |
-+# information to generate all constant output in the proper language. |
2184 |
-+# The default language is English, other supported languages are: |
2185 |
-+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, |
2186 |
-+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, |
2187 |
-+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English |
2188 |
-+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, |
2189 |
-+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, |
2190 |
-+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. |
2191 |
- |
2192 |
- OUTPUT_LANGUAGE = English |
2193 |
- |
2194 |
--# This tag can be used to specify the encoding used in the generated output. |
2195 |
--# The encoding is not always determined by the language that is chosen, |
2196 |
--# but also whether or not the output is meant for Windows or non-Windows users. |
2197 |
--# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES |
2198 |
--# forces the Windows encoding (this is the default for the Windows binary), |
2199 |
--# whereas setting the tag to NO uses a Unix-style encoding (the default for |
2200 |
--# all platforms other than Windows). |
2201 |
-- |
2202 |
--USE_WINDOWS_ENCODING = NO |
2203 |
-- |
2204 |
--# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will |
2205 |
--# include brief member descriptions after the members that are listed in |
2206 |
--# the file and class documentation (similar to JavaDoc). |
2207 |
-+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will |
2208 |
-+# include brief member descriptions after the members that are listed in |
2209 |
-+# the file and class documentation (similar to JavaDoc). |
2210 |
- # Set to NO to disable this. |
2211 |
- |
2212 |
- BRIEF_MEMBER_DESC = YES |
2213 |
- |
2214 |
--# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend |
2215 |
--# the brief description of a member or function before the detailed description. |
2216 |
--# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the |
2217 |
-+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend |
2218 |
-+# the brief description of a member or function before the detailed description. |
2219 |
-+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the |
2220 |
- # brief descriptions will be completely suppressed. |
2221 |
- |
2222 |
- REPEAT_BRIEF = YES |
2223 |
- |
2224 |
--# This tag implements a quasi-intelligent brief description abbreviator |
2225 |
--# that is used to form the text in various listings. Each string |
2226 |
--# in this list, if found as the leading text of the brief description, will be |
2227 |
--# stripped from the text and the result after processing the whole list, is |
2228 |
--# used as the annotated text. Otherwise, the brief description is used as-is. |
2229 |
--# If left blank, the following values are used ("$name" is automatically |
2230 |
--# replaced with the name of the entity): "The $name class" "The $name widget" |
2231 |
--# "The $name file" "is" "provides" "specifies" "contains" |
2232 |
-+# This tag implements a quasi-intelligent brief description abbreviator |
2233 |
-+# that is used to form the text in various listings. Each string |
2234 |
-+# in this list, if found as the leading text of the brief description, will be |
2235 |
-+# stripped from the text and the result after processing the whole list, is |
2236 |
-+# used as the annotated text. Otherwise, the brief description is used as-is. |
2237 |
-+# If left blank, the following values are used ("$name" is automatically |
2238 |
-+# replaced with the name of the entity): "The $name class" "The $name widget" |
2239 |
-+# "The $name file" "is" "provides" "specifies" "contains" |
2240 |
- # "represents" "a" "an" "the" |
2241 |
- |
2242 |
--ABBREVIATE_BRIEF = |
2243 |
-+ABBREVIATE_BRIEF = |
2244 |
- |
2245 |
--# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then |
2246 |
--# Doxygen will generate a detailed section even if there is only a brief |
2247 |
-+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then |
2248 |
-+# Doxygen will generate a detailed section even if there is only a brief |
2249 |
- # description. |
2250 |
- |
2251 |
- ALWAYS_DETAILED_SEC = NO |
2252 |
- |
2253 |
--# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all |
2254 |
--# inherited members of a class in the documentation of that class as if those |
2255 |
--# members were ordinary class members. Constructors, destructors and assignment |
2256 |
-+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all |
2257 |
-+# inherited members of a class in the documentation of that class as if those |
2258 |
-+# members were ordinary class members. Constructors, destructors and assignment |
2259 |
- # operators of the base classes will not be shown. |
2260 |
- |
2261 |
- INLINE_INHERITED_MEMB = NO |
2262 |
- |
2263 |
--# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full |
2264 |
--# path before files name in the file list and in the header files. If set |
2265 |
-+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full |
2266 |
-+# path before files name in the file list and in the header files. If set |
2267 |
- # to NO the shortest path that makes the file name unique will be used. |
2268 |
- |
2269 |
- FULL_PATH_NAMES = YES |
2270 |
- |
2271 |
--# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag |
2272 |
--# can be used to strip a user-defined part of the path. Stripping is |
2273 |
--# only done if one of the specified strings matches the left-hand part of |
2274 |
--# the path. The tag can be used to show relative paths in the file list. |
2275 |
--# If left blank the directory from which doxygen is run is used as the |
2276 |
-+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag |
2277 |
-+# can be used to strip a user-defined part of the path. Stripping is |
2278 |
-+# only done if one of the specified strings matches the left-hand part of |
2279 |
-+# the path. The tag can be used to show relative paths in the file list. |
2280 |
-+# If left blank the directory from which doxygen is run is used as the |
2281 |
- # path to strip. |
2282 |
- |
2283 |
- STRIP_FROM_PATH = .. |
2284 |
- |
2285 |
--# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of |
2286 |
--# the path mentioned in the documentation of a class, which tells |
2287 |
--# the reader which header file to include in order to use a class. |
2288 |
--# If left blank only the name of the header file containing the class |
2289 |
--# definition is used. Otherwise one should specify the include paths that |
2290 |
-+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of |
2291 |
-+# the path mentioned in the documentation of a class, which tells |
2292 |
-+# the reader which header file to include in order to use a class. |
2293 |
-+# If left blank only the name of the header file containing the class |
2294 |
-+# definition is used. Otherwise one should specify the include paths that |
2295 |
- # are normally passed to the compiler using the -I flag. |
2296 |
- |
2297 |
--STRIP_FROM_INC_PATH = |
2298 |
-+STRIP_FROM_INC_PATH = |
2299 |
- |
2300 |
--# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter |
2301 |
--# (but less readable) file names. This can be useful is your file systems |
2302 |
-+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter |
2303 |
-+# (but less readable) file names. This can be useful is your file systems |
2304 |
- # doesn't support long names like on DOS, Mac, or CD-ROM. |
2305 |
- |
2306 |
- SHORT_NAMES = NO |
2307 |
- |
2308 |
--# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen |
2309 |
--# will interpret the first line (until the first dot) of a JavaDoc-style |
2310 |
--# comment as the brief description. If set to NO, the JavaDoc |
2311 |
--# comments will behave just like the Qt-style comments (thus requiring an |
2312 |
--# explicit @brief command for a brief description. |
2313 |
-+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen |
2314 |
-+# will interpret the first line (until the first dot) of a JavaDoc-style |
2315 |
-+# comment as the brief description. If set to NO, the JavaDoc |
2316 |
-+# comments will behave just like regular Qt-style comments |
2317 |
-+# (thus requiring an explicit @brief command for a brief description.) |
2318 |
- |
2319 |
- JAVADOC_AUTOBRIEF = YES |
2320 |
- |
2321 |
--# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen |
2322 |
--# treat a multi-line C++ special comment block (i.e. a block of //! or /// |
2323 |
--# comments) as a brief description. This used to be the default behaviour. |
2324 |
--# The new default is to treat a multi-line C++ comment block as a detailed |
2325 |
-+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will |
2326 |
-+# interpret the first line (until the first dot) of a Qt-style |
2327 |
-+# comment as the brief description. If set to NO, the comments |
2328 |
-+# will behave just like regular Qt-style comments (thus requiring |
2329 |
-+# an explicit \brief command for a brief description.) |
2330 |
-+ |
2331 |
-+QT_AUTOBRIEF = NO |
2332 |
-+ |
2333 |
-+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen |
2334 |
-+# treat a multi-line C++ special comment block (i.e. a block of //! or /// |
2335 |
-+# comments) as a brief description. This used to be the default behaviour. |
2336 |
-+# The new default is to treat a multi-line C++ comment block as a detailed |
2337 |
- # description. Set this tag to YES if you prefer the old behaviour instead. |
2338 |
- |
2339 |
- MULTILINE_CPP_IS_BRIEF = NO |
2340 |
- |
2341 |
--# If the DETAILS_AT_TOP tag is set to YES then Doxygen |
2342 |
--# will output the detailed description near the top, like JavaDoc. |
2343 |
--# If set to NO, the detailed description appears after the member |
2344 |
--# documentation. |
2345 |
-- |
2346 |
--DETAILS_AT_TOP = NO |
2347 |
-- |
2348 |
--# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented |
2349 |
--# member inherits the documentation from any documented member that it |
2350 |
-+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented |
2351 |
-+# member inherits the documentation from any documented member that it |
2352 |
- # re-implements. |
2353 |
- |
2354 |
- INHERIT_DOCS = NO |
2355 |
- |
2356 |
--# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce |
2357 |
--# a new page for each member. If set to NO, the documentation of a member will |
2358 |
-+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce |
2359 |
-+# a new page for each member. If set to NO, the documentation of a member will |
2360 |
- # be part of the file/class/namespace that contains it. |
2361 |
- |
2362 |
- SEPARATE_MEMBER_PAGES = NO |
2363 |
- |
2364 |
--# The TAB_SIZE tag can be used to set the number of spaces in a tab. |
2365 |
-+# The TAB_SIZE tag can be used to set the number of spaces in a tab. |
2366 |
- # Doxygen uses this value to replace tabs by spaces in code fragments. |
2367 |
- |
2368 |
- TAB_SIZE = 4 |
2369 |
- |
2370 |
--# This tag can be used to specify a number of aliases that acts |
2371 |
--# as commands in the documentation. An alias has the form "name=value". |
2372 |
--# For example adding "sideeffect=\par Side Effects:\n" will allow you to |
2373 |
--# put the command \sideeffect (or @sideeffect) in the documentation, which |
2374 |
--# will result in a user-defined paragraph with heading "Side Effects:". |
2375 |
-+# This tag can be used to specify a number of aliases that acts |
2376 |
-+# as commands in the documentation. An alias has the form "name=value". |
2377 |
-+# For example adding "sideeffect=\par Side Effects:\n" will allow you to |
2378 |
-+# put the command \sideeffect (or @sideeffect) in the documentation, which |
2379 |
-+# will result in a user-defined paragraph with heading "Side Effects:". |
2380 |
- # You can put \n's in the value part of an alias to insert newlines. |
2381 |
- |
2382 |
--ALIASES = |
2383 |
-+ALIASES = |
2384 |
- |
2385 |
--# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C |
2386 |
--# sources only. Doxygen will then generate output that is more tailored for C. |
2387 |
--# For instance, some of the names that are used will be different. The list |
2388 |
-+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C |
2389 |
-+# sources only. Doxygen will then generate output that is more tailored for C. |
2390 |
-+# For instance, some of the names that are used will be different. The list |
2391 |
- # of all members will be omitted, etc. |
2392 |
- |
2393 |
- OPTIMIZE_OUTPUT_FOR_C = NO |
2394 |
- |
2395 |
--# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java |
2396 |
--# sources only. Doxygen will then generate output that is more tailored for Java. |
2397 |
--# For instance, namespaces will be presented as packages, qualified scopes |
2398 |
--# will look different, etc. |
2399 |
-+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java |
2400 |
-+# sources only. Doxygen will then generate output that is more tailored for |
2401 |
-+# Java. For instance, namespaces will be presented as packages, qualified |
2402 |
-+# scopes will look different, etc. |
2403 |
- |
2404 |
- OPTIMIZE_OUTPUT_JAVA = NO |
2405 |
- |
2406 |
--# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to |
2407 |
--# include (a tag file for) the STL sources as input, then you should |
2408 |
--# set this tag to YES in order to let doxygen match functions declarations and |
2409 |
--# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. |
2410 |
--# func(std::string) {}). This also make the inheritance and collaboration |
2411 |
-+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran |
2412 |
-+# sources only. Doxygen will then generate output that is more tailored for |
2413 |
-+# Fortran. |
2414 |
-+ |
2415 |
-+OPTIMIZE_FOR_FORTRAN = NO |
2416 |
-+ |
2417 |
-+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL |
2418 |
-+# sources. Doxygen will then generate output that is tailored for |
2419 |
-+# VHDL. |
2420 |
-+ |
2421 |
-+OPTIMIZE_OUTPUT_VHDL = NO |
2422 |
-+ |
2423 |
-+# Doxygen selects the parser to use depending on the extension of the files it |
2424 |
-+# parses. With this tag you can assign which parser to use for a given extension. |
2425 |
-+# Doxygen has a built-in mapping, but you can override or extend it using this |
2426 |
-+# tag. The format is ext=language, where ext is a file extension, and language |
2427 |
-+# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, |
2428 |
-+# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make |
2429 |
-+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C |
2430 |
-+# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions |
2431 |
-+# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. |
2432 |
-+ |
2433 |
-+EXTENSION_MAPPING = |
2434 |
-+ |
2435 |
-+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want |
2436 |
-+# to include (a tag file for) the STL sources as input, then you should |
2437 |
-+# set this tag to YES in order to let doxygen match functions declarations and |
2438 |
-+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. |
2439 |
-+# func(std::string) {}). This also make the inheritance and collaboration |
2440 |
- # diagrams that involve STL classes more complete and accurate. |
2441 |
- |
2442 |
- BUILTIN_STL_SUPPORT = NO |
2443 |
- |
2444 |
--# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC |
2445 |
--# tag is set to YES, then doxygen will reuse the documentation of the first |
2446 |
--# member in the group (if any) for the other members of the group. By default |
2447 |
-+# If you use Microsoft's C++/CLI language, you should set this option to YES to |
2448 |
-+# enable parsing support. |
2449 |
-+ |
2450 |
-+CPP_CLI_SUPPORT = NO |
2451 |
-+ |
2452 |
-+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. |
2453 |
-+# Doxygen will parse them like normal C++ but will assume all classes use public |
2454 |
-+# instead of private inheritance when no explicit protection keyword is present. |
2455 |
-+ |
2456 |
-+SIP_SUPPORT = NO |
2457 |
-+ |
2458 |
-+# For Microsoft's IDL there are propget and propput attributes to indicate getter |
2459 |
-+# and setter methods for a property. Setting this option to YES (the default) |
2460 |
-+# will make doxygen to replace the get and set methods by a property in the |
2461 |
-+# documentation. This will only work if the methods are indeed getting or |
2462 |
-+# setting a simple type. If this is not the case, or you want to show the |
2463 |
-+# methods anyway, you should set this option to NO. |
2464 |
-+ |
2465 |
-+IDL_PROPERTY_SUPPORT = YES |
2466 |
-+ |
2467 |
-+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC |
2468 |
-+# tag is set to YES, then doxygen will reuse the documentation of the first |
2469 |
-+# member in the group (if any) for the other members of the group. By default |
2470 |
- # all members of a group must be documented explicitly. |
2471 |
- |
2472 |
- DISTRIBUTE_GROUP_DOC = NO |
2473 |
- |
2474 |
--# Set the SUBGROUPING tag to YES (the default) to allow class member groups of |
2475 |
--# the same type (for instance a group of public functions) to be put as a |
2476 |
--# subgroup of that type (e.g. under the Public Functions section). Set it to |
2477 |
--# NO to prevent subgrouping. Alternatively, this can be done per class using |
2478 |
-+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of |
2479 |
-+# the same type (for instance a group of public functions) to be put as a |
2480 |
-+# subgroup of that type (e.g. under the Public Functions section). Set it to |
2481 |
-+# NO to prevent subgrouping. Alternatively, this can be done per class using |
2482 |
- # the \nosubgrouping command. |
2483 |
- |
2484 |
- SUBGROUPING = YES |
2485 |
- |
2486 |
-+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum |
2487 |
-+# is documented as struct, union, or enum with the name of the typedef. So |
2488 |
-+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct |
2489 |
-+# with name TypeT. When disabled the typedef will appear as a member of a file, |
2490 |
-+# namespace, or class. And the struct will be named TypeS. This can typically |
2491 |
-+# be useful for C code in case the coding convention dictates that all compound |
2492 |
-+# types are typedef'ed and only the typedef is referenced, never the tag name. |
2493 |
-+ |
2494 |
-+TYPEDEF_HIDES_STRUCT = NO |
2495 |
-+ |
2496 |
-+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to |
2497 |
-+# determine which symbols to keep in memory and which to flush to disk. |
2498 |
-+# When the cache is full, less often used symbols will be written to disk. |
2499 |
-+# For small to medium size projects (<1000 input files) the default value is |
2500 |
-+# probably good enough. For larger projects a too small cache size can cause |
2501 |
-+# doxygen to be busy swapping symbols to and from disk most of the time |
2502 |
-+# causing a significant performance penality. |
2503 |
-+# If the system has enough physical memory increasing the cache will improve the |
2504 |
-+# performance by keeping more symbols in memory. Note that the value works on |
2505 |
-+# a logarithmic scale so increasing the size by one will rougly double the |
2506 |
-+# memory usage. The cache size is given by this formula: |
2507 |
-+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, |
2508 |
-+# corresponding to a cache size of 2^16 = 65536 symbols |
2509 |
-+ |
2510 |
-+SYMBOL_CACHE_SIZE = 0 |
2511 |
-+ |
2512 |
- #--------------------------------------------------------------------------- |
2513 |
- # Build related configuration options |
2514 |
- #--------------------------------------------------------------------------- |
2515 |
- |
2516 |
--# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in |
2517 |
--# documentation are documented, even if no documentation was available. |
2518 |
--# Private class members and static file members will be hidden unless |
2519 |
-+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in |
2520 |
-+# documentation are documented, even if no documentation was available. |
2521 |
-+# Private class members and static file members will be hidden unless |
2522 |
- # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES |
2523 |
- |
2524 |
- EXTRACT_ALL = NO |
2525 |
- |
2526 |
--# If the EXTRACT_PRIVATE tag is set to YES all private members of a class |
2527 |
-+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class |
2528 |
- # will be included in the documentation. |
2529 |
- |
2530 |
- EXTRACT_PRIVATE = YES |
2531 |
- |
2532 |
--# If the EXTRACT_STATIC tag is set to YES all static members of a file |
2533 |
-+# If the EXTRACT_STATIC tag is set to YES all static members of a file |
2534 |
- # will be included in the documentation. |
2535 |
- |
2536 |
- EXTRACT_STATIC = YES |
2537 |
- |
2538 |
--# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) |
2539 |
--# defined locally in source files will be included in the documentation. |
2540 |
-+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) |
2541 |
-+# defined locally in source files will be included in the documentation. |
2542 |
- # If set to NO only classes defined in header files are included. |
2543 |
- |
2544 |
- EXTRACT_LOCAL_CLASSES = YES |
2545 |
- |
2546 |
--# This flag is only useful for Objective-C code. When set to YES local |
2547 |
--# methods, which are defined in the implementation section but not in |
2548 |
--# the interface are included in the documentation. |
2549 |
-+# This flag is only useful for Objective-C code. When set to YES local |
2550 |
-+# methods, which are defined in the implementation section but not in |
2551 |
-+# the interface are included in the documentation. |
2552 |
- # If set to NO (the default) only methods in the interface are included. |
2553 |
- |
2554 |
- EXTRACT_LOCAL_METHODS = NO |
2555 |
- |
2556 |
--# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all |
2557 |
--# undocumented members of documented classes, files or namespaces. |
2558 |
--# If set to NO (the default) these members will be included in the |
2559 |
--# various overviews, but no documentation section is generated. |
2560 |
-+# If this flag is set to YES, the members of anonymous namespaces will be |
2561 |
-+# extracted and appear in the documentation as a namespace called |
2562 |
-+# 'anonymous_namespace{file}', where file will be replaced with the base |
2563 |
-+# name of the file that contains the anonymous namespace. By default |
2564 |
-+# anonymous namespace are hidden. |
2565 |
-+ |
2566 |
-+EXTRACT_ANON_NSPACES = NO |
2567 |
-+ |
2568 |
-+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all |
2569 |
-+# undocumented members of documented classes, files or namespaces. |
2570 |
-+# If set to NO (the default) these members will be included in the |
2571 |
-+# various overviews, but no documentation section is generated. |
2572 |
- # This option has no effect if EXTRACT_ALL is enabled. |
2573 |
- |
2574 |
- HIDE_UNDOC_MEMBERS = NO |
2575 |
- |
2576 |
--# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all |
2577 |
--# undocumented classes that are normally visible in the class hierarchy. |
2578 |
--# If set to NO (the default) these classes will be included in the various |
2579 |
-+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all |
2580 |
-+# undocumented classes that are normally visible in the class hierarchy. |
2581 |
-+# If set to NO (the default) these classes will be included in the various |
2582 |
- # overviews. This option has no effect if EXTRACT_ALL is enabled. |
2583 |
- |
2584 |
- HIDE_UNDOC_CLASSES = NO |
2585 |
- |
2586 |
--# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all |
2587 |
--# friend (class|struct|union) declarations. |
2588 |
--# If set to NO (the default) these declarations will be included in the |
2589 |
-+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all |
2590 |
-+# friend (class|struct|union) declarations. |
2591 |
-+# If set to NO (the default) these declarations will be included in the |
2592 |
- # documentation. |
2593 |
- |
2594 |
- HIDE_FRIEND_COMPOUNDS = NO |
2595 |
- |
2596 |
--# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any |
2597 |
--# documentation blocks found inside the body of a function. |
2598 |
--# If set to NO (the default) these blocks will be appended to the |
2599 |
-+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any |
2600 |
-+# documentation blocks found inside the body of a function. |
2601 |
-+# If set to NO (the default) these blocks will be appended to the |
2602 |
- # function's detailed documentation block. |
2603 |
- |
2604 |
- HIDE_IN_BODY_DOCS = NO |
2605 |
- |
2606 |
--# The INTERNAL_DOCS tag determines if documentation |
2607 |
--# that is typed after a \internal command is included. If the tag is set |
2608 |
--# to NO (the default) then the documentation will be excluded. |
2609 |
-+# The INTERNAL_DOCS tag determines if documentation |
2610 |
-+# that is typed after a \internal command is included. If the tag is set |
2611 |
-+# to NO (the default) then the documentation will be excluded. |
2612 |
- # Set it to YES to include the internal documentation. |
2613 |
- |
2614 |
- INTERNAL_DOCS = NO |
2615 |
- |
2616 |
--# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate |
2617 |
--# file names in lower-case letters. If set to YES upper-case letters are also |
2618 |
--# allowed. This is useful if you have classes or files whose names only differ |
2619 |
--# in case and if your file system supports case sensitive file names. Windows |
2620 |
-+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate |
2621 |
-+# file names in lower-case letters. If set to YES upper-case letters are also |
2622 |
-+# allowed. This is useful if you have classes or files whose names only differ |
2623 |
-+# in case and if your file system supports case sensitive file names. Windows |
2624 |
- # and Mac users are advised to set this option to NO. |
2625 |
- |
2626 |
- CASE_SENSE_NAMES = YES |
2627 |
- |
2628 |
--# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen |
2629 |
--# will show members with their full class and namespace scopes in the |
2630 |
-+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen |
2631 |
-+# will show members with their full class and namespace scopes in the |
2632 |
- # documentation. If set to YES the scope will be hidden. |
2633 |
- |
2634 |
- HIDE_SCOPE_NAMES = NO |
2635 |
- |
2636 |
--# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen |
2637 |
--# will put a list of the files that are included by a file in the documentation |
2638 |
-+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen |
2639 |
-+# will put a list of the files that are included by a file in the documentation |
2640 |
- # of that file. |
2641 |
- |
2642 |
- SHOW_INCLUDE_FILES = NO |
2643 |
- |
2644 |
--# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] |
2645 |
-+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen |
2646 |
-+# will list include files with double quotes in the documentation |
2647 |
-+# rather than with sharp brackets. |
2648 |
-+ |
2649 |
-+FORCE_LOCAL_INCLUDES = NO |
2650 |
-+ |
2651 |
-+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] |
2652 |
- # is inserted in the documentation for inline members. |
2653 |
- |
2654 |
- INLINE_INFO = YES |
2655 |
- |
2656 |
--# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen |
2657 |
--# will sort the (detailed) documentation of file and class members |
2658 |
--# alphabetically by member name. If set to NO the members will appear in |
2659 |
-+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen |
2660 |
-+# will sort the (detailed) documentation of file and class members |
2661 |
-+# alphabetically by member name. If set to NO the members will appear in |
2662 |
- # declaration order. |
2663 |
- |
2664 |
- SORT_MEMBER_DOCS = YES |
2665 |
- |
2666 |
--# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the |
2667 |
--# brief documentation of file, namespace and class members alphabetically |
2668 |
--# by member name. If set to NO (the default) the members will appear in |
2669 |
-+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the |
2670 |
-+# brief documentation of file, namespace and class members alphabetically |
2671 |
-+# by member name. If set to NO (the default) the members will appear in |
2672 |
- # declaration order. |
2673 |
- |
2674 |
- SORT_BRIEF_DOCS = NO |
2675 |
- |
2676 |
--# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be |
2677 |
--# sorted by fully-qualified names, including namespaces. If set to |
2678 |
--# NO (the default), the class list will be sorted only by class name, |
2679 |
--# not including the namespace part. |
2680 |
-+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen |
2681 |
-+# will sort the (brief and detailed) documentation of class members so that |
2682 |
-+# constructors and destructors are listed first. If set to NO (the default) |
2683 |
-+# the constructors will appear in the respective orders defined by |
2684 |
-+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. |
2685 |
-+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO |
2686 |
-+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. |
2687 |
-+ |
2688 |
-+SORT_MEMBERS_CTORS_1ST = NO |
2689 |
-+ |
2690 |
-+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the |
2691 |
-+# hierarchy of group names into alphabetical order. If set to NO (the default) |
2692 |
-+# the group names will appear in their defined order. |
2693 |
-+ |
2694 |
-+SORT_GROUP_NAMES = NO |
2695 |
-+ |
2696 |
-+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be |
2697 |
-+# sorted by fully-qualified names, including namespaces. If set to |
2698 |
-+# NO (the default), the class list will be sorted only by class name, |
2699 |
-+# not including the namespace part. |
2700 |
- # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. |
2701 |
--# Note: This option applies only to the class list, not to the |
2702 |
-+# Note: This option applies only to the class list, not to the |
2703 |
- # alphabetical list. |
2704 |
- |
2705 |
- SORT_BY_SCOPE_NAME = NO |
2706 |
- |
2707 |
--# The GENERATE_TODOLIST tag can be used to enable (YES) or |
2708 |
--# disable (NO) the todo list. This list is created by putting \todo |
2709 |
-+# The GENERATE_TODOLIST tag can be used to enable (YES) or |
2710 |
-+# disable (NO) the todo list. This list is created by putting \todo |
2711 |
- # commands in the documentation. |
2712 |
- |
2713 |
- GENERATE_TODOLIST = NO |
2714 |
- |
2715 |
--# The GENERATE_TESTLIST tag can be used to enable (YES) or |
2716 |
--# disable (NO) the test list. This list is created by putting \test |
2717 |
-+# The GENERATE_TESTLIST tag can be used to enable (YES) or |
2718 |
-+# disable (NO) the test list. This list is created by putting \test |
2719 |
- # commands in the documentation. |
2720 |
- |
2721 |
- GENERATE_TESTLIST = NO |
2722 |
- |
2723 |
--# The GENERATE_BUGLIST tag can be used to enable (YES) or |
2724 |
--# disable (NO) the bug list. This list is created by putting \bug |
2725 |
-+# The GENERATE_BUGLIST tag can be used to enable (YES) or |
2726 |
-+# disable (NO) the bug list. This list is created by putting \bug |
2727 |
- # commands in the documentation. |
2728 |
- |
2729 |
- GENERATE_BUGLIST = NO |
2730 |
- |
2731 |
--# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or |
2732 |
--# disable (NO) the deprecated list. This list is created by putting |
2733 |
-+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or |
2734 |
-+# disable (NO) the deprecated list. This list is created by putting |
2735 |
- # \deprecated commands in the documentation. |
2736 |
- |
2737 |
- GENERATE_DEPRECATEDLIST= YES |
2738 |
- |
2739 |
--# The ENABLED_SECTIONS tag can be used to enable conditional |
2740 |
-+# The ENABLED_SECTIONS tag can be used to enable conditional |
2741 |
- # documentation sections, marked by \if sectionname ... \endif. |
2742 |
- |
2743 |
--ENABLED_SECTIONS = # MODULE_DCMJP2K MODULE_DCMPPS MODULE_DCMSTCOM MODULE_DCMRT |
2744 |
-+ENABLED_SECTIONS = |
2745 |
- |
2746 |
--# The MAX_INITIALIZER_LINES tag determines the maximum number of lines |
2747 |
--# the initial value of a variable or define consists of for it to appear in |
2748 |
--# the documentation. If the initializer consists of more lines than specified |
2749 |
--# here it will be hidden. Use a value of 0 to hide initializers completely. |
2750 |
--# The appearance of the initializer of individual variables and defines in the |
2751 |
--# documentation can be controlled using \showinitializer or \hideinitializer |
2752 |
-+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines |
2753 |
-+# the initial value of a variable or define consists of for it to appear in |
2754 |
-+# the documentation. If the initializer consists of more lines than specified |
2755 |
-+# here it will be hidden. Use a value of 0 to hide initializers completely. |
2756 |
-+# The appearance of the initializer of individual variables and defines in the |
2757 |
-+# documentation can be controlled using \showinitializer or \hideinitializer |
2758 |
- # command in the documentation regardless of this setting. |
2759 |
- |
2760 |
- MAX_INITIALIZER_LINES = 30 |
2761 |
- |
2762 |
--# Set the SHOW_USED_FILES tag to NO to disable the list of files generated |
2763 |
--# at the bottom of the documentation of classes and structs. If set to YES the |
2764 |
-+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated |
2765 |
-+# at the bottom of the documentation of classes and structs. If set to YES the |
2766 |
- # list will mention the files that were used to generate the documentation. |
2767 |
- |
2768 |
- SHOW_USED_FILES = YES |
2769 |
- |
2770 |
--# If the sources in your project are distributed over multiple directories |
2771 |
--# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy |
2772 |
-+# If the sources in your project are distributed over multiple directories |
2773 |
-+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy |
2774 |
- # in the documentation. The default is NO. |
2775 |
- |
2776 |
- SHOW_DIRECTORIES = NO |
2777 |
- |
2778 |
--# The FILE_VERSION_FILTER tag can be used to specify a program or script that |
2779 |
--# doxygen should invoke to get the current version for each file (typically from the |
2780 |
--# version control system). Doxygen will invoke the program by executing (via |
2781 |
--# popen()) the command <command> <input-file>, where <command> is the value of |
2782 |
--# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file |
2783 |
--# provided by doxygen. Whatever the program writes to standard output |
2784 |
-+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. |
2785 |
-+# This will remove the Files entry from the Quick Index and from the |
2786 |
-+# Folder Tree View (if specified). The default is YES. |
2787 |
-+ |
2788 |
-+SHOW_FILES = YES |
2789 |
-+ |
2790 |
-+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the |
2791 |
-+# Namespaces page. |
2792 |
-+# This will remove the Namespaces entry from the Quick Index |
2793 |
-+# and from the Folder Tree View (if specified). The default is YES. |
2794 |
-+ |
2795 |
-+SHOW_NAMESPACES = YES |
2796 |
-+ |
2797 |
-+# The FILE_VERSION_FILTER tag can be used to specify a program or script that |
2798 |
-+# doxygen should invoke to get the current version for each file (typically from |
2799 |
-+# the version control system). Doxygen will invoke the program by executing (via |
2800 |
-+# popen()) the command <command> <input-file>, where <command> is the value of |
2801 |
-+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file |
2802 |
-+# provided by doxygen. Whatever the program writes to standard output |
2803 |
- # is used as the file version. See the manual for examples. |
2804 |
- |
2805 |
--FILE_VERSION_FILTER = |
2806 |
-+FILE_VERSION_FILTER = |
2807 |
-+ |
2808 |
-+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed |
2809 |
-+# by doxygen. The layout file controls the global structure of the generated |
2810 |
-+# output files in an output format independent way. The create the layout file |
2811 |
-+# that represents doxygen's defaults, run doxygen with the -l option. |
2812 |
-+# You can optionally specify a file name after the option, if omitted |
2813 |
-+# DoxygenLayout.xml will be used as the name of the layout file. |
2814 |
-+ |
2815 |
-+LAYOUT_FILE = |
2816 |
- |
2817 |
- #--------------------------------------------------------------------------- |
2818 |
- # configuration options related to warning and progress messages |
2819 |
- #--------------------------------------------------------------------------- |
2820 |
- |
2821 |
--# The QUIET tag can be used to turn on/off the messages that are generated |
2822 |
-+# The QUIET tag can be used to turn on/off the messages that are generated |
2823 |
- # by doxygen. Possible values are YES and NO. If left blank NO is used. |
2824 |
- |
2825 |
- QUIET = NO |
2826 |
- |
2827 |
--# The WARNINGS tag can be used to turn on/off the warning messages that are |
2828 |
--# generated by doxygen. Possible values are YES and NO. If left blank |
2829 |
-+# The WARNINGS tag can be used to turn on/off the warning messages that are |
2830 |
-+# generated by doxygen. Possible values are YES and NO. If left blank |
2831 |
- # NO is used. |
2832 |
- |
2833 |
- WARNINGS = YES |
2834 |
- |
2835 |
--# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings |
2836 |
--# for undocumented members. If EXTRACT_ALL is set to YES then this flag will |
2837 |
-+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings |
2838 |
-+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will |
2839 |
- # automatically be disabled. |
2840 |
- |
2841 |
- WARN_IF_UNDOCUMENTED = YES |
2842 |
- |
2843 |
--# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for |
2844 |
--# potential errors in the documentation, such as not documenting some |
2845 |
--# parameters in a documented function, or documenting parameters that |
2846 |
-+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for |
2847 |
-+# potential errors in the documentation, such as not documenting some |
2848 |
-+# parameters in a documented function, or documenting parameters that |
2849 |
- # don't exist or using markup commands wrongly. |
2850 |
- |
2851 |
- WARN_IF_DOC_ERROR = YES |
2852 |
- |
2853 |
--# This WARN_NO_PARAMDOC option can be abled to get warnings for |
2854 |
--# functions that are documented, but have no documentation for their parameters |
2855 |
--# or return value. If set to NO (the default) doxygen will only warn about |
2856 |
--# wrong or incomplete parameter documentation, but not about the absence of |
2857 |
-+# This WARN_NO_PARAMDOC option can be abled to get warnings for |
2858 |
-+# functions that are documented, but have no documentation for their parameters |
2859 |
-+# or return value. If set to NO (the default) doxygen will only warn about |
2860 |
-+# wrong or incomplete parameter documentation, but not about the absence of |
2861 |
- # documentation. |
2862 |
- |
2863 |
- WARN_NO_PARAMDOC = NO |
2864 |
- |
2865 |
--# The WARN_FORMAT tag determines the format of the warning messages that |
2866 |
--# doxygen can produce. The string should contain the $file, $line, and $text |
2867 |
--# tags, which will be replaced by the file and line number from which the |
2868 |
--# warning originated and the warning text. Optionally the format may contain |
2869 |
--# $version, which will be replaced by the version of the file (if it could |
2870 |
-+# The WARN_FORMAT tag determines the format of the warning messages that |
2871 |
-+# doxygen can produce. The string should contain the $file, $line, and $text |
2872 |
-+# tags, which will be replaced by the file and line number from which the |
2873 |
-+# warning originated and the warning text. Optionally the format may contain |
2874 |
-+# $version, which will be replaced by the version of the file (if it could |
2875 |
- # be obtained via FILE_VERSION_FILTER) |
2876 |
- |
2877 |
- WARN_FORMAT = "$file:$line: $text" |
2878 |
- |
2879 |
--# The WARN_LOGFILE tag can be used to specify a file to which warning |
2880 |
--# and error messages should be written. If left blank the output is written |
2881 |
-+# The WARN_LOGFILE tag can be used to specify a file to which warning |
2882 |
-+# and error messages should be written. If left blank the output is written |
2883 |
- # to stderr. |
2884 |
- |
2885 |
- WARN_LOGFILE = htmldocs.log |
2886 |
-@@ -454,98 +576,117 @@ |
2887 |
- # configuration options related to the input files |
2888 |
- #--------------------------------------------------------------------------- |
2889 |
- |
2890 |
--# The INPUT tag can be used to specify the files and/or directories that contain |
2891 |
--# documented source files. You may enter file names like "myfile.cpp" or |
2892 |
--# directories like "/usr/src/myproject". Separate the files or directories |
2893 |
-+# The INPUT tag can be used to specify the files and/or directories that contain |
2894 |
-+# documented source files. You may enter file names like "myfile.cpp" or |
2895 |
-+# directories like "/usr/src/myproject". Separate the files or directories |
2896 |
- # with spaces. |
2897 |
- |
2898 |
- INPUT = @DOXYGEN_INPUT_DIR@ |
2899 |
- |
2900 |
--# If the value of the INPUT tag contains directories, you can use the |
2901 |
--# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp |
2902 |
--# and *.h) to filter out the source-files in the directories. If left |
2903 |
--# blank the following patterns are tested: |
2904 |
--# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx |
2905 |
--# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py |
2906 |
-+# This tag can be used to specify the character encoding of the source files |
2907 |
-+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is |
2908 |
-+# also the default input encoding. Doxygen uses libiconv (or the iconv built |
2909 |
-+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for |
2910 |
-+# the list of possible encodings. |
2911 |
-+ |
2912 |
-+INPUT_ENCODING = UTF-8 |
2913 |
-+ |
2914 |
-+# If the value of the INPUT tag contains directories, you can use the |
2915 |
-+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp |
2916 |
-+# and *.h) to filter out the source-files in the directories. If left |
2917 |
-+# blank the following patterns are tested: |
2918 |
-+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx |
2919 |
-+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 |
2920 |
- |
2921 |
- FILE_PATTERNS = *.h \ |
2922 |
- *.man \ |
2923 |
- *.dox |
2924 |
- |
2925 |
--# The RECURSIVE tag can be used to turn specify whether or not subdirectories |
2926 |
--# should be searched for input files as well. Possible values are YES and NO. |
2927 |
-+# The RECURSIVE tag can be used to turn specify whether or not subdirectories |
2928 |
-+# should be searched for input files as well. Possible values are YES and NO. |
2929 |
- # If left blank NO is used. |
2930 |
- |
2931 |
- RECURSIVE = YES |
2932 |
- |
2933 |
--# The EXCLUDE tag can be used to specify files and/or directories that should |
2934 |
--# excluded from the INPUT source files. This way you can easily exclude a |
2935 |
-+# The EXCLUDE tag can be used to specify files and/or directories that should |
2936 |
-+# excluded from the INPUT source files. This way you can easily exclude a |
2937 |
- # subdirectory from a directory tree whose root is specified with the INPUT tag. |
2938 |
- |
2939 |
- EXCLUDE = @DOXYGEN_INPUT_DIR@/config/include \ |
2940 |
- @DOXYGEN_INPUT_DIR@/docs |
2941 |
- |
2942 |
--# The EXCLUDE_SYMLINKS tag can be used select whether or not files or |
2943 |
--# directories that are symbolic links (a Unix filesystem feature) are excluded |
2944 |
-+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or |
2945 |
-+# directories that are symbolic links (a Unix filesystem feature) are excluded |
2946 |
- # from the input. |
2947 |
- |
2948 |
- EXCLUDE_SYMLINKS = NO |
2949 |
- |
2950 |
--# If the value of the INPUT tag contains directories, you can use the |
2951 |
--# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude |
2952 |
--# certain files from those directories. Note that the wildcards are matched |
2953 |
--# against the file with absolute path, so to exclude all test directories |
2954 |
-+# If the value of the INPUT tag contains directories, you can use the |
2955 |
-+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude |
2956 |
-+# certain files from those directories. Note that the wildcards are matched |
2957 |
-+# against the file with absolute path, so to exclude all test directories |
2958 |
- # for example use the pattern */test/* |
2959 |
- |
2960 |
--EXCLUDE_PATTERNS = |
2961 |
-+EXCLUDE_PATTERNS = |
2962 |
-+ |
2963 |
-+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names |
2964 |
-+# (namespaces, classes, functions, etc.) that should be excluded from the |
2965 |
-+# output. The symbol name can be a fully qualified name, a word, or if the |
2966 |
-+# wildcard * is used, a substring. Examples: ANamespace, AClass, |
2967 |
-+# AClass::ANamespace, ANamespace::*Test |
2968 |
-+ |
2969 |
-+EXCLUDE_SYMBOLS = |
2970 |
- |
2971 |
--# The EXAMPLE_PATH tag can be used to specify one or more files or |
2972 |
--# directories that contain example code fragments that are included (see |
2973 |
-+# The EXAMPLE_PATH tag can be used to specify one or more files or |
2974 |
-+# directories that contain example code fragments that are included (see |
2975 |
- # the \include command). |
2976 |
- |
2977 |
- EXAMPLE_PATH = @DOXYGEN_INPUT_DIR@ |
2978 |
- |
2979 |
--# If the value of the EXAMPLE_PATH tag contains directories, you can use the |
2980 |
--# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp |
2981 |
--# and *.h) to filter out the source-files in the directories. If left |
2982 |
-+# If the value of the EXAMPLE_PATH tag contains directories, you can use the |
2983 |
-+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp |
2984 |
-+# and *.h) to filter out the source-files in the directories. If left |
2985 |
- # blank all files are included. |
2986 |
- |
2987 |
--EXAMPLE_PATTERNS = |
2988 |
-+EXAMPLE_PATTERNS = |
2989 |
- |
2990 |
--# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be |
2991 |
--# searched for input files to be used with the \include or \dontinclude |
2992 |
--# commands irrespective of the value of the RECURSIVE tag. |
2993 |
-+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be |
2994 |
-+# searched for input files to be used with the \include or \dontinclude |
2995 |
-+# commands irrespective of the value of the RECURSIVE tag. |
2996 |
- # Possible values are YES and NO. If left blank NO is used. |
2997 |
- |
2998 |
- EXAMPLE_RECURSIVE = YES |
2999 |
- |
3000 |
--# The IMAGE_PATH tag can be used to specify one or more files or |
3001 |
--# directories that contain image that are included in the documentation (see |
3002 |
-+# The IMAGE_PATH tag can be used to specify one or more files or |
3003 |
-+# directories that contain image that are included in the documentation (see |
3004 |
- # the \image command). |
3005 |
- |
3006 |
--IMAGE_PATH = |
3007 |
-+IMAGE_PATH = |
3008 |
- |
3009 |
--# The INPUT_FILTER tag can be used to specify a program that doxygen should |
3010 |
--# invoke to filter for each input file. Doxygen will invoke the filter program |
3011 |
--# by executing (via popen()) the command <filter> <input-file>, where <filter> |
3012 |
--# is the value of the INPUT_FILTER tag, and <input-file> is the name of an |
3013 |
--# input file. Doxygen will then use the output that the filter program writes |
3014 |
--# to standard output. If FILTER_PATTERNS is specified, this tag will be |
3015 |
-+# The INPUT_FILTER tag can be used to specify a program that doxygen should |
3016 |
-+# invoke to filter for each input file. Doxygen will invoke the filter program |
3017 |
-+# by executing (via popen()) the command <filter> <input-file>, where <filter> |
3018 |
-+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an |
3019 |
-+# input file. Doxygen will then use the output that the filter program writes |
3020 |
-+# to standard output. |
3021 |
-+# If FILTER_PATTERNS is specified, this tag will be |
3022 |
- # ignored. |
3023 |
- |
3024 |
--INPUT_FILTER = |
3025 |
-+INPUT_FILTER = |
3026 |
- |
3027 |
--# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern |
3028 |
--# basis. Doxygen will compare the file name with each pattern and apply the |
3029 |
--# filter if there is a match. The filters are a list of the form: |
3030 |
--# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further |
3031 |
--# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER |
3032 |
-+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern |
3033 |
-+# basis. |
3034 |
-+# Doxygen will compare the file name with each pattern and apply the |
3035 |
-+# filter if there is a match. |
3036 |
-+# The filters are a list of the form: |
3037 |
-+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further |
3038 |
-+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER |
3039 |
- # is applied to all files. |
3040 |
- |
3041 |
--FILTER_PATTERNS = |
3042 |
-+FILTER_PATTERNS = |
3043 |
- |
3044 |
--# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using |
3045 |
--# INPUT_FILTER) will be used to filter the input files when producing source |
3046 |
-+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using |
3047 |
-+# INPUT_FILTER) will be used to filter the input files when producing source |
3048 |
- # files to browse (i.e. when SOURCE_BROWSER is set to YES). |
3049 |
- |
3050 |
- FILTER_SOURCE_FILES = NO |
3051 |
-@@ -554,32 +695,32 @@ |
3052 |
- # configuration options related to source browsing |
3053 |
- #--------------------------------------------------------------------------- |
3054 |
- |
3055 |
--# If the SOURCE_BROWSER tag is set to YES then a list of source files will |
3056 |
--# be generated. Documented entities will be cross-referenced with these sources. |
3057 |
--# Note: To get rid of all source code in the generated output, make sure also |
3058 |
-+# If the SOURCE_BROWSER tag is set to YES then a list of source files will |
3059 |
-+# be generated. Documented entities will be cross-referenced with these sources. |
3060 |
-+# Note: To get rid of all source code in the generated output, make sure also |
3061 |
- # VERBATIM_HEADERS is set to NO. |
3062 |
- |
3063 |
- SOURCE_BROWSER = YES |
3064 |
- |
3065 |
--# Setting the INLINE_SOURCES tag to YES will include the body |
3066 |
-+# Setting the INLINE_SOURCES tag to YES will include the body |
3067 |
- # of functions and classes directly in the documentation. |
3068 |
- |
3069 |
- INLINE_SOURCES = NO |
3070 |
- |
3071 |
--# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct |
3072 |
--# doxygen to hide any special comment blocks from generated source code |
3073 |
-+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct |
3074 |
-+# doxygen to hide any special comment blocks from generated source code |
3075 |
- # fragments. Normal C and C++ comments will always remain visible. |
3076 |
- |
3077 |
- STRIP_CODE_COMMENTS = YES |
3078 |
- |
3079 |
--# If the REFERENCED_BY_RELATION tag is set to YES (the default) |
3080 |
--# then for each documented function all documented |
3081 |
-+# If the REFERENCED_BY_RELATION tag is set to YES |
3082 |
-+# then for each documented function all documented |
3083 |
- # functions referencing it will be listed. |
3084 |
- |
3085 |
- REFERENCED_BY_RELATION = YES |
3086 |
- |
3087 |
--# If the REFERENCES_RELATION tag is set to YES (the default) |
3088 |
--# then for each documented function all documented entities |
3089 |
-+# If the REFERENCES_RELATION tag is set to YES |
3090 |
-+# then for each documented function all documented entities |
3091 |
- # called/used by that function will be listed. |
3092 |
- |
3093 |
- REFERENCES_RELATION = YES |
3094 |
-@@ -587,20 +728,21 @@ |
3095 |
- # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) |
3096 |
- # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from |
3097 |
- # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will |
3098 |
--# link to the source code. Otherwise they will link to the documentation. |
3099 |
-+# link to the source code. |
3100 |
-+# Otherwise they will link to the documentation. |
3101 |
- |
3102 |
- REFERENCES_LINK_SOURCE = YES |
3103 |
- |
3104 |
--# If the USE_HTAGS tag is set to YES then the references to source code |
3105 |
--# will point to the HTML generated by the htags(1) tool instead of doxygen |
3106 |
--# built-in source browser. The htags tool is part of GNU's global source |
3107 |
--# tagging system (see http://www.gnu.org/software/global/global.html). You |
3108 |
-+# If the USE_HTAGS tag is set to YES then the references to source code |
3109 |
-+# will point to the HTML generated by the htags(1) tool instead of doxygen |
3110 |
-+# built-in source browser. The htags tool is part of GNU's global source |
3111 |
-+# tagging system (see http://www.gnu.org/software/global/global.html). You |
3112 |
- # will need version 4.8.6 or higher. |
3113 |
- |
3114 |
- USE_HTAGS = NO |
3115 |
- |
3116 |
--# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen |
3117 |
--# will generate a verbatim copy of the header file for each class for |
3118 |
-+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen |
3119 |
-+# will generate a verbatim copy of the header file for each class for |
3120 |
- # which an include is specified. Set to NO to disable this. |
3121 |
- |
3122 |
- VERBATIM_HEADERS = YES |
3123 |
-@@ -609,279 +751,488 @@ |
3124 |
- # configuration options related to the alphabetical class index |
3125 |
- #--------------------------------------------------------------------------- |
3126 |
- |
3127 |
--# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index |
3128 |
--# of all compounds will be generated. Enable this if the project |
3129 |
-+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index |
3130 |
-+# of all compounds will be generated. Enable this if the project |
3131 |
- # contains a lot of classes, structs, unions or interfaces. |
3132 |
- |
3133 |
- ALPHABETICAL_INDEX = YES |
3134 |
- |
3135 |
--# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then |
3136 |
--# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns |
3137 |
-+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then |
3138 |
-+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns |
3139 |
- # in which this list will be split (can be a number in the range [1..20]) |
3140 |
- |
3141 |
- COLS_IN_ALPHA_INDEX = 3 |
3142 |
- |
3143 |
--# In case all classes in a project start with a common prefix, all |
3144 |
--# classes will be put under the same header in the alphabetical index. |
3145 |
--# The IGNORE_PREFIX tag can be used to specify one or more prefixes that |
3146 |
-+# In case all classes in a project start with a common prefix, all |
3147 |
-+# classes will be put under the same header in the alphabetical index. |
3148 |
-+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that |
3149 |
- # should be ignored while generating the index headers. |
3150 |
- |
3151 |
--IGNORE_PREFIX = |
3152 |
-+IGNORE_PREFIX = |
3153 |
- |
3154 |
- #--------------------------------------------------------------------------- |
3155 |
- # configuration options related to the HTML output |
3156 |
- #--------------------------------------------------------------------------- |
3157 |
- |
3158 |
--# If the GENERATE_HTML tag is set to YES (the default) Doxygen will |
3159 |
-+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will |
3160 |
- # generate HTML output. |
3161 |
- |
3162 |
- GENERATE_HTML = YES |
3163 |
- |
3164 |
--# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. |
3165 |
--# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
3166 |
-+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. |
3167 |
-+# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
3168 |
- # put in front of it. If left blank `html' will be used as the default path. |
3169 |
- |
3170 |
- HTML_OUTPUT = htmldocs |
3171 |
- |
3172 |
--# The HTML_FILE_EXTENSION tag can be used to specify the file extension for |
3173 |
--# each generated HTML page (for example: .htm,.php,.asp). If it is left blank |
3174 |
-+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for |
3175 |
-+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank |
3176 |
- # doxygen will generate files with .html extension. |
3177 |
- |
3178 |
- HTML_FILE_EXTENSION = .html |
3179 |
- |
3180 |
--# The HTML_HEADER tag can be used to specify a personal HTML header for |
3181 |
--# each generated HTML page. If it is left blank doxygen will generate a |
3182 |
-+# The HTML_HEADER tag can be used to specify a personal HTML header for |
3183 |
-+# each generated HTML page. If it is left blank doxygen will generate a |
3184 |
- # standard header. |
3185 |
- |
3186 |
--HTML_HEADER = |
3187 |
-+HTML_HEADER = |
3188 |
- |
3189 |
--# The HTML_FOOTER tag can be used to specify a personal HTML footer for |
3190 |
--# each generated HTML page. If it is left blank doxygen will generate a |
3191 |
-+# The HTML_FOOTER tag can be used to specify a personal HTML footer for |
3192 |
-+# each generated HTML page. If it is left blank doxygen will generate a |
3193 |
- # standard footer. |
3194 |
- |
3195 |
- HTML_FOOTER = @DOXYGEN_DATA_DIR@/footer.html |
3196 |
- |
3197 |
--# The HTML_STYLESHEET tag can be used to specify a user-defined cascading |
3198 |
--# style sheet that is used by each HTML page. It can be used to |
3199 |
--# fine-tune the look of the HTML output. If the tag is left blank doxygen |
3200 |
--# will generate a default style sheet. Note that doxygen will try to copy |
3201 |
--# the style sheet file to the HTML output directory, so don't put your own |
3202 |
-+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading |
3203 |
-+# style sheet that is used by each HTML page. It can be used to |
3204 |
-+# fine-tune the look of the HTML output. If the tag is left blank doxygen |
3205 |
-+# will generate a default style sheet. Note that doxygen will try to copy |
3206 |
-+# the style sheet file to the HTML output directory, so don't put your own |
3207 |
- # stylesheet in the HTML output directory as well, or it will be erased! |
3208 |
- |
3209 |
--HTML_STYLESHEET = |
3210 |
-+HTML_STYLESHEET = |
3211 |
-+ |
3212 |
-+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. |
3213 |
-+# Doxygen will adjust the colors in the stylesheet and background images |
3214 |
-+# according to this color. Hue is specified as an angle on a colorwheel, |
3215 |
-+# see http://en.wikipedia.org/wiki/Hue for more information. |
3216 |
-+# For instance the value 0 represents red, 60 is yellow, 120 is green, |
3217 |
-+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. |
3218 |
-+# The allowed range is 0 to 359. |
3219 |
-+ |
3220 |
-+HTML_COLORSTYLE_HUE = 220 |
3221 |
-+ |
3222 |
-+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of |
3223 |
-+# the colors in the HTML output. For a value of 0 the output will use |
3224 |
-+# grayscales only. A value of 255 will produce the most vivid colors. |
3225 |
- |
3226 |
--# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, |
3227 |
--# files or namespaces will be aligned in HTML using tables. If set to |
3228 |
-+HTML_COLORSTYLE_SAT = 100 |
3229 |
-+ |
3230 |
-+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to |
3231 |
-+# the luminance component of the colors in the HTML output. Values below |
3232 |
-+# 100 gradually make the output lighter, whereas values above 100 make |
3233 |
-+# the output darker. The value divided by 100 is the actual gamma applied, |
3234 |
-+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, |
3235 |
-+# and 100 does not change the gamma. |
3236 |
-+ |
3237 |
-+HTML_COLORSTYLE_GAMMA = 80 |
3238 |
-+ |
3239 |
-+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML |
3240 |
-+# page will contain the date and time when the page was generated. Setting |
3241 |
-+# this to NO can help when comparing the output of multiple runs. |
3242 |
-+ |
3243 |
-+HTML_TIMESTAMP = YES |
3244 |
-+ |
3245 |
-+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, |
3246 |
-+# files or namespaces will be aligned in HTML using tables. If set to |
3247 |
- # NO a bullet list will be used. |
3248 |
- |
3249 |
- HTML_ALIGN_MEMBERS = YES |
3250 |
- |
3251 |
--# If the GENERATE_HTMLHELP tag is set to YES, additional index files |
3252 |
--# will be generated that can be used as input for tools like the |
3253 |
--# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) |
3254 |
-+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML |
3255 |
-+# documentation will contain sections that can be hidden and shown after the |
3256 |
-+# page has loaded. For this to work a browser that supports |
3257 |
-+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox |
3258 |
-+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). |
3259 |
-+ |
3260 |
-+HTML_DYNAMIC_SECTIONS = NO |
3261 |
-+ |
3262 |
-+# If the GENERATE_DOCSET tag is set to YES, additional index files |
3263 |
-+# will be generated that can be used as input for Apple's Xcode 3 |
3264 |
-+# integrated development environment, introduced with OSX 10.5 (Leopard). |
3265 |
-+# To create a documentation set, doxygen will generate a Makefile in the |
3266 |
-+# HTML output directory. Running make will produce the docset in that |
3267 |
-+# directory and running "make install" will install the docset in |
3268 |
-+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find |
3269 |
-+# it at startup. |
3270 |
-+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html |
3271 |
-+# for more information. |
3272 |
-+ |
3273 |
-+GENERATE_DOCSET = NO |
3274 |
-+ |
3275 |
-+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the |
3276 |
-+# feed. A documentation feed provides an umbrella under which multiple |
3277 |
-+# documentation sets from a single provider (such as a company or product suite) |
3278 |
-+# can be grouped. |
3279 |
-+ |
3280 |
-+DOCSET_FEEDNAME = "Doxygen generated docs" |
3281 |
-+ |
3282 |
-+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that |
3283 |
-+# should uniquely identify the documentation set bundle. This should be a |
3284 |
-+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen |
3285 |
-+# will append .docset to the name. |
3286 |
-+ |
3287 |
-+DOCSET_BUNDLE_ID = org.doxygen.Project |
3288 |
-+ |
3289 |
-+# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify |
3290 |
-+# the documentation publisher. This should be a reverse domain-name style |
3291 |
-+# string, e.g. com.mycompany.MyDocSet.documentation. |
3292 |
-+ |
3293 |
-+DOCSET_PUBLISHER_ID = org.doxygen.Publisher |
3294 |
-+ |
3295 |
-+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. |
3296 |
-+ |
3297 |
-+DOCSET_PUBLISHER_NAME = Publisher |
3298 |
-+ |
3299 |
-+# If the GENERATE_HTMLHELP tag is set to YES, additional index files |
3300 |
-+# will be generated that can be used as input for tools like the |
3301 |
-+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) |
3302 |
- # of the generated HTML documentation. |
3303 |
- |
3304 |
- GENERATE_HTMLHELP = NO |
3305 |
- |
3306 |
--# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can |
3307 |
--# be used to specify the file name of the resulting .chm file. You |
3308 |
--# can add a path in front of the file if the result should not be |
3309 |
-+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can |
3310 |
-+# be used to specify the file name of the resulting .chm file. You |
3311 |
-+# can add a path in front of the file if the result should not be |
3312 |
- # written to the html output directory. |
3313 |
- |
3314 |
- CHM_FILE = dcmtk354.chm |
3315 |
- |
3316 |
--# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can |
3317 |
--# be used to specify the location (absolute path including file name) of |
3318 |
--# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run |
3319 |
-+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can |
3320 |
-+# be used to specify the location (absolute path including file name) of |
3321 |
-+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run |
3322 |
- # the HTML help compiler on the generated index.hhp. |
3323 |
- |
3324 |
--HHC_LOCATION = |
3325 |
-+HHC_LOCATION = |
3326 |
- |
3327 |
--# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag |
3328 |
--# controls if a separate .chi index file is generated (YES) or that |
3329 |
-+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag |
3330 |
-+# controls if a separate .chi index file is generated (YES) or that |
3331 |
- # it should be included in the master .chm file (NO). |
3332 |
- |
3333 |
- GENERATE_CHI = NO |
3334 |
- |
3335 |
--# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag |
3336 |
--# controls whether a binary table of contents is generated (YES) or a |
3337 |
-+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING |
3338 |
-+# is used to encode HtmlHelp index (hhk), content (hhc) and project file |
3339 |
-+# content. |
3340 |
-+ |
3341 |
-+CHM_INDEX_ENCODING = |
3342 |
-+ |
3343 |
-+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag |
3344 |
-+# controls whether a binary table of contents is generated (YES) or a |
3345 |
- # normal table of contents (NO) in the .chm file. |
3346 |
- |
3347 |
- BINARY_TOC = NO |
3348 |
- |
3349 |
--# The TOC_EXPAND flag can be set to YES to add extra items for group members |
3350 |
-+# The TOC_EXPAND flag can be set to YES to add extra items for group members |
3351 |
- # to the contents of the HTML help documentation and to the tree view. |
3352 |
- |
3353 |
- TOC_EXPAND = YES |
3354 |
- |
3355 |
--# The DISABLE_INDEX tag can be used to turn on/off the condensed index at |
3356 |
--# top of each HTML page. The value NO (the default) enables the index and |
3357 |
-+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and |
3358 |
-+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated |
3359 |
-+# that can be used as input for Qt's qhelpgenerator to generate a |
3360 |
-+# Qt Compressed Help (.qch) of the generated HTML documentation. |
3361 |
-+ |
3362 |
-+GENERATE_QHP = NO |
3363 |
-+ |
3364 |
-+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can |
3365 |
-+# be used to specify the file name of the resulting .qch file. |
3366 |
-+# The path specified is relative to the HTML output folder. |
3367 |
-+ |
3368 |
-+QCH_FILE = |
3369 |
-+ |
3370 |
-+# The QHP_NAMESPACE tag specifies the namespace to use when generating |
3371 |
-+# Qt Help Project output. For more information please see |
3372 |
-+# http://doc.trolltech.com/qthelpproject.html#namespace |
3373 |
-+ |
3374 |
-+QHP_NAMESPACE = org.doxygen.Project |
3375 |
-+ |
3376 |
-+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating |
3377 |
-+# Qt Help Project output. For more information please see |
3378 |
-+# http://doc.trolltech.com/qthelpproject.html#virtual-folders |
3379 |
-+ |
3380 |
-+QHP_VIRTUAL_FOLDER = doc |
3381 |
-+ |
3382 |
-+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to |
3383 |
-+# add. For more information please see |
3384 |
-+# http://doc.trolltech.com/qthelpproject.html#custom-filters |
3385 |
-+ |
3386 |
-+QHP_CUST_FILTER_NAME = |
3387 |
-+ |
3388 |
-+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the |
3389 |
-+# custom filter to add. For more information please see |
3390 |
-+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> |
3391 |
-+# Qt Help Project / Custom Filters</a>. |
3392 |
-+ |
3393 |
-+QHP_CUST_FILTER_ATTRS = |
3394 |
-+ |
3395 |
-+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this |
3396 |
-+# project's |
3397 |
-+# filter section matches. |
3398 |
-+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> |
3399 |
-+# Qt Help Project / Filter Attributes</a>. |
3400 |
-+ |
3401 |
-+QHP_SECT_FILTER_ATTRS = |
3402 |
-+ |
3403 |
-+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can |
3404 |
-+# be used to specify the location of Qt's qhelpgenerator. |
3405 |
-+# If non-empty doxygen will try to run qhelpgenerator on the generated |
3406 |
-+# .qhp file. |
3407 |
-+ |
3408 |
-+QHG_LOCATION = |
3409 |
-+ |
3410 |
-+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files |
3411 |
-+# will be generated, which together with the HTML files, form an Eclipse help |
3412 |
-+# plugin. To install this plugin and make it available under the help contents |
3413 |
-+# menu in Eclipse, the contents of the directory containing the HTML and XML |
3414 |
-+# files needs to be copied into the plugins directory of eclipse. The name of |
3415 |
-+# the directory within the plugins directory should be the same as |
3416 |
-+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before |
3417 |
-+# the help appears. |
3418 |
-+ |
3419 |
-+GENERATE_ECLIPSEHELP = NO |
3420 |
-+ |
3421 |
-+# A unique identifier for the eclipse help plugin. When installing the plugin |
3422 |
-+# the directory name containing the HTML and XML files should also have |
3423 |
-+# this name. |
3424 |
-+ |
3425 |
-+ECLIPSE_DOC_ID = org.doxygen.Project |
3426 |
-+ |
3427 |
-+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at |
3428 |
-+# top of each HTML page. The value NO (the default) enables the index and |
3429 |
- # the value YES disables it. |
3430 |
- |
3431 |
- DISABLE_INDEX = NO |
3432 |
- |
3433 |
--# This tag can be used to set the number of enum values (range [1..20]) |
3434 |
-+# This tag can be used to set the number of enum values (range [1..20]) |
3435 |
- # that doxygen will group on one line in the generated HTML documentation. |
3436 |
- |
3437 |
- ENUM_VALUES_PER_LINE = 4 |
3438 |
- |
3439 |
--# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be |
3440 |
--# generated containing a tree-like index structure (just like the one that |
3441 |
--# is generated for HTML Help). For this to work a browser that supports |
3442 |
--# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, |
3443 |
--# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are |
3444 |
--# probably better off using the HTML help feature. |
3445 |
-+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index |
3446 |
-+# structure should be generated to display hierarchical information. |
3447 |
-+# If the tag value is set to YES, a side panel will be generated |
3448 |
-+# containing a tree-like index structure (just like the one that |
3449 |
-+# is generated for HTML Help). For this to work a browser that supports |
3450 |
-+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). |
3451 |
-+# Windows users are probably better off using the HTML help feature. |
3452 |
- |
3453 |
- GENERATE_TREEVIEW = NO |
3454 |
- |
3455 |
--# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be |
3456 |
--# used to set the initial width (in pixels) of the frame in which the tree |
3457 |
-+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, |
3458 |
-+# and Class Hierarchy pages using a tree view instead of an ordered list. |
3459 |
-+ |
3460 |
-+USE_INLINE_TREES = NO |
3461 |
-+ |
3462 |
-+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be |
3463 |
-+# used to set the initial width (in pixels) of the frame in which the tree |
3464 |
- # is shown. |
3465 |
- |
3466 |
- TREEVIEW_WIDTH = 250 |
3467 |
- |
3468 |
-+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open |
3469 |
-+# links to external symbols imported via tag files in a separate window. |
3470 |
-+ |
3471 |
-+EXT_LINKS_IN_WINDOW = NO |
3472 |
-+ |
3473 |
-+# Use this tag to change the font size of Latex formulas included |
3474 |
-+# as images in the HTML documentation. The default is 10. Note that |
3475 |
-+# when you change the font size after a successful doxygen run you need |
3476 |
-+# to manually remove any form_*.png images from the HTML output directory |
3477 |
-+# to force them to be regenerated. |
3478 |
-+ |
3479 |
-+FORMULA_FONTSIZE = 10 |
3480 |
-+ |
3481 |
-+# Use the FORMULA_TRANPARENT tag to determine whether or not the images |
3482 |
-+# generated for formulas are transparent PNGs. Transparent PNGs are |
3483 |
-+# not supported properly for IE 6.0, but are supported on all modern browsers. |
3484 |
-+# Note that when changing this option you need to delete any form_*.png files |
3485 |
-+# in the HTML output before the changes have effect. |
3486 |
-+ |
3487 |
-+FORMULA_TRANSPARENT = YES |
3488 |
-+ |
3489 |
-+# When the SEARCHENGINE tag is enabled doxygen will generate a search box |
3490 |
-+# for the HTML output. The underlying search engine uses javascript |
3491 |
-+# and DHTML and should work on any modern browser. Note that when using |
3492 |
-+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets |
3493 |
-+# (GENERATE_DOCSET) there is already a search function so this one should |
3494 |
-+# typically be disabled. For large projects the javascript based search engine |
3495 |
-+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. |
3496 |
-+ |
3497 |
-+SEARCHENGINE = NO |
3498 |
-+ |
3499 |
-+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be |
3500 |
-+# implemented using a PHP enabled web server instead of at the web client |
3501 |
-+# using Javascript. Doxygen will generate the search PHP script and index |
3502 |
-+# file to put on the web server. The advantage of the server |
3503 |
-+# based approach is that it scales better to large projects and allows |
3504 |
-+# full text search. The disadvances is that it is more difficult to setup |
3505 |
-+# and does not have live searching capabilities. |
3506 |
-+ |
3507 |
-+SERVER_BASED_SEARCH = NO |
3508 |
-+ |
3509 |
- #--------------------------------------------------------------------------- |
3510 |
- # configuration options related to the LaTeX output |
3511 |
- #--------------------------------------------------------------------------- |
3512 |
- |
3513 |
--# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will |
3514 |
-+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will |
3515 |
- # generate Latex output. |
3516 |
- |
3517 |
- GENERATE_LATEX = NO |
3518 |
- |
3519 |
--# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. |
3520 |
--# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
3521 |
-+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. |
3522 |
-+# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
3523 |
- # put in front of it. If left blank `latex' will be used as the default path. |
3524 |
- |
3525 |
- LATEX_OUTPUT = latex |
3526 |
- |
3527 |
--# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be |
3528 |
-+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be |
3529 |
- # invoked. If left blank `latex' will be used as the default command name. |
3530 |
-+# Note that when enabling USE_PDFLATEX this option is only used for |
3531 |
-+# generating bitmaps for formulas in the HTML output, but not in the |
3532 |
-+# Makefile that is written to the output directory. |
3533 |
- |
3534 |
- LATEX_CMD_NAME = latex |
3535 |
- |
3536 |
--# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to |
3537 |
--# generate index for LaTeX. If left blank `makeindex' will be used as the |
3538 |
-+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to |
3539 |
-+# generate index for LaTeX. If left blank `makeindex' will be used as the |
3540 |
- # default command name. |
3541 |
- |
3542 |
- MAKEINDEX_CMD_NAME = makeindex |
3543 |
- |
3544 |
--# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact |
3545 |
--# LaTeX documents. This may be useful for small projects and may help to |
3546 |
-+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact |
3547 |
-+# LaTeX documents. This may be useful for small projects and may help to |
3548 |
- # save some trees in general. |
3549 |
- |
3550 |
- COMPACT_LATEX = NO |
3551 |
- |
3552 |
--# The PAPER_TYPE tag can be used to set the paper type that is used |
3553 |
--# by the printer. Possible values are: a4, a4wide, letter, legal and |
3554 |
-+# The PAPER_TYPE tag can be used to set the paper type that is used |
3555 |
-+# by the printer. Possible values are: a4, a4wide, letter, legal and |
3556 |
- # executive. If left blank a4wide will be used. |
3557 |
- |
3558 |
- PAPER_TYPE = a4wide |
3559 |
- |
3560 |
--# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX |
3561 |
-+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX |
3562 |
- # packages that should be included in the LaTeX output. |
3563 |
- |
3564 |
--EXTRA_PACKAGES = |
3565 |
-+EXTRA_PACKAGES = |
3566 |
- |
3567 |
--# The LATEX_HEADER tag can be used to specify a personal LaTeX header for |
3568 |
--# the generated latex document. The header should contain everything until |
3569 |
--# the first chapter. If it is left blank doxygen will generate a |
3570 |
-+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for |
3571 |
-+# the generated latex document. The header should contain everything until |
3572 |
-+# the first chapter. If it is left blank doxygen will generate a |
3573 |
- # standard header. Notice: only use this tag if you know what you are doing! |
3574 |
- |
3575 |
--LATEX_HEADER = |
3576 |
-+LATEX_HEADER = |
3577 |
- |
3578 |
--# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated |
3579 |
--# is prepared for conversion to pdf (using ps2pdf). The pdf file will |
3580 |
--# contain links (just like the HTML output) instead of page references |
3581 |
-+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated |
3582 |
-+# is prepared for conversion to pdf (using ps2pdf). The pdf file will |
3583 |
-+# contain links (just like the HTML output) instead of page references |
3584 |
- # This makes the output suitable for online browsing using a pdf viewer. |
3585 |
- |
3586 |
- PDF_HYPERLINKS = YES |
3587 |
- |
3588 |
--# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of |
3589 |
--# plain latex in the generated Makefile. Set this option to YES to get a |
3590 |
-+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of |
3591 |
-+# plain latex in the generated Makefile. Set this option to YES to get a |
3592 |
- # higher quality PDF documentation. |
3593 |
- |
3594 |
- USE_PDFLATEX = NO |
3595 |
- |
3596 |
--# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. |
3597 |
--# command to the generated LaTeX files. This will instruct LaTeX to keep |
3598 |
--# running if errors occur, instead of asking the user for help. |
3599 |
-+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. |
3600 |
-+# command to the generated LaTeX files. This will instruct LaTeX to keep |
3601 |
-+# running if errors occur, instead of asking the user for help. |
3602 |
- # This option is also used when generating formulas in HTML. |
3603 |
- |
3604 |
- LATEX_BATCHMODE = YES |
3605 |
- |
3606 |
--# If LATEX_HIDE_INDICES is set to YES then doxygen will not |
3607 |
--# include the index chapters (such as File Index, Compound Index, etc.) |
3608 |
-+# If LATEX_HIDE_INDICES is set to YES then doxygen will not |
3609 |
-+# include the index chapters (such as File Index, Compound Index, etc.) |
3610 |
- # in the output. |
3611 |
- |
3612 |
- LATEX_HIDE_INDICES = NO |
3613 |
- |
3614 |
-+# If LATEX_SOURCE_CODE is set to YES then doxygen will include |
3615 |
-+# source code with syntax highlighting in the LaTeX output. |
3616 |
-+# Note that which sources are shown also depends on other settings |
3617 |
-+# such as SOURCE_BROWSER. |
3618 |
-+ |
3619 |
-+LATEX_SOURCE_CODE = NO |
3620 |
-+ |
3621 |
- #--------------------------------------------------------------------------- |
3622 |
- # configuration options related to the RTF output |
3623 |
- #--------------------------------------------------------------------------- |
3624 |
- |
3625 |
--# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output |
3626 |
--# The RTF output is optimized for Word 97 and may not look very pretty with |
3627 |
-+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output |
3628 |
-+# The RTF output is optimized for Word 97 and may not look very pretty with |
3629 |
- # other RTF readers or editors. |
3630 |
- |
3631 |
- GENERATE_RTF = NO |
3632 |
- |
3633 |
--# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. |
3634 |
--# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
3635 |
-+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. |
3636 |
-+# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
3637 |
- # put in front of it. If left blank `rtf' will be used as the default path. |
3638 |
- |
3639 |
- RTF_OUTPUT = rtf |
3640 |
- |
3641 |
--# If the COMPACT_RTF tag is set to YES Doxygen generates more compact |
3642 |
--# RTF documents. This may be useful for small projects and may help to |
3643 |
-+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact |
3644 |
-+# RTF documents. This may be useful for small projects and may help to |
3645 |
- # save some trees in general. |
3646 |
- |
3647 |
- COMPACT_RTF = NO |
3648 |
- |
3649 |
--# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated |
3650 |
--# will contain hyperlink fields. The RTF file will |
3651 |
--# contain links (just like the HTML output) instead of page references. |
3652 |
--# This makes the output suitable for online browsing using WORD or other |
3653 |
--# programs which support those fields. |
3654 |
-+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated |
3655 |
-+# will contain hyperlink fields. The RTF file will |
3656 |
-+# contain links (just like the HTML output) instead of page references. |
3657 |
-+# This makes the output suitable for online browsing using WORD or other |
3658 |
-+# programs which support those fields. |
3659 |
- # Note: wordpad (write) and others do not support links. |
3660 |
- |
3661 |
- RTF_HYPERLINKS = NO |
3662 |
- |
3663 |
--# Load stylesheet definitions from file. Syntax is similar to doxygen's |
3664 |
--# config file, i.e. a series of assignments. You only have to provide |
3665 |
-+# Load stylesheet definitions from file. Syntax is similar to doxygen's |
3666 |
-+# config file, i.e. a series of assignments. You only have to provide |
3667 |
- # replacements, missing definitions are set to their default value. |
3668 |
- |
3669 |
--RTF_STYLESHEET_FILE = |
3670 |
-+RTF_STYLESHEET_FILE = |
3671 |
- |
3672 |
--# Set optional variables used in the generation of an rtf document. |
3673 |
-+# Set optional variables used in the generation of an rtf document. |
3674 |
- # Syntax is similar to doxygen's config file. |
3675 |
- |
3676 |
--RTF_EXTENSIONS_FILE = |
3677 |
-+RTF_EXTENSIONS_FILE = |
3678 |
- |
3679 |
- #--------------------------------------------------------------------------- |
3680 |
- # configuration options related to the man page output |
3681 |
- #--------------------------------------------------------------------------- |
3682 |
- |
3683 |
--# If the GENERATE_MAN tag is set to YES (the default) Doxygen will |
3684 |
-+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will |
3685 |
- # generate man pages |
3686 |
- |
3687 |
- GENERATE_MAN = NO |
3688 |
- |
3689 |
--# The MAN_OUTPUT tag is used to specify where the man pages will be put. |
3690 |
--# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
3691 |
-+# The MAN_OUTPUT tag is used to specify where the man pages will be put. |
3692 |
-+# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
3693 |
- # put in front of it. If left blank `man' will be used as the default path. |
3694 |
- |
3695 |
- MAN_OUTPUT = man |
3696 |
- |
3697 |
--# The MAN_EXTENSION tag determines the extension that is added to |
3698 |
-+# The MAN_EXTENSION tag determines the extension that is added to |
3699 |
- # the generated man pages (default is the subroutine's section .3) |
3700 |
- |
3701 |
- MAN_EXTENSION = .3 |
3702 |
- |
3703 |
--# If the MAN_LINKS tag is set to YES and Doxygen generates man output, |
3704 |
--# then it will generate one additional man file for each entity |
3705 |
--# documented in the real man page(s). These additional files |
3706 |
--# only source the real man page, but without them the man command |
3707 |
-+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, |
3708 |
-+# then it will generate one additional man file for each entity |
3709 |
-+# documented in the real man page(s). These additional files |
3710 |
-+# only source the real man page, but without them the man command |
3711 |
- # would be unable to find the correct page. The default is NO. |
3712 |
- |
3713 |
- MAN_LINKS = NO |
3714 |
-@@ -890,33 +1241,33 @@ |
3715 |
- # configuration options related to the XML output |
3716 |
- #--------------------------------------------------------------------------- |
3717 |
- |
3718 |
--# If the GENERATE_XML tag is set to YES Doxygen will |
3719 |
--# generate an XML file that captures the structure of |
3720 |
-+# If the GENERATE_XML tag is set to YES Doxygen will |
3721 |
-+# generate an XML file that captures the structure of |
3722 |
- # the code including all documentation. |
3723 |
- |
3724 |
- GENERATE_XML = NO |
3725 |
- |
3726 |
--# The XML_OUTPUT tag is used to specify where the XML pages will be put. |
3727 |
--# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
3728 |
-+# The XML_OUTPUT tag is used to specify where the XML pages will be put. |
3729 |
-+# If a relative path is entered the value of OUTPUT_DIRECTORY will be |
3730 |
- # put in front of it. If left blank `xml' will be used as the default path. |
3731 |
- |
3732 |
- XML_OUTPUT = xml |
3733 |
- |
3734 |
--# The XML_SCHEMA tag can be used to specify an XML schema, |
3735 |
--# which can be used by a validating XML parser to check the |
3736 |
-+# The XML_SCHEMA tag can be used to specify an XML schema, |
3737 |
-+# which can be used by a validating XML parser to check the |
3738 |
- # syntax of the XML files. |
3739 |
- |
3740 |
--XML_SCHEMA = |
3741 |
-+XML_SCHEMA = |
3742 |
- |
3743 |
--# The XML_DTD tag can be used to specify an XML DTD, |
3744 |
--# which can be used by a validating XML parser to check the |
3745 |
-+# The XML_DTD tag can be used to specify an XML DTD, |
3746 |
-+# which can be used by a validating XML parser to check the |
3747 |
- # syntax of the XML files. |
3748 |
- |
3749 |
--XML_DTD = |
3750 |
-+XML_DTD = |
3751 |
- |
3752 |
--# If the XML_PROGRAMLISTING tag is set to YES Doxygen will |
3753 |
--# dump the program listings (including syntax highlighting |
3754 |
--# and cross-referencing information) to the XML output. Note that |
3755 |
-+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will |
3756 |
-+# dump the program listings (including syntax highlighting |
3757 |
-+# and cross-referencing information) to the XML output. Note that |
3758 |
- # enabling this will significantly increase the size of the XML output. |
3759 |
- |
3760 |
- XML_PROGRAMLISTING = YES |
3761 |
-@@ -925,10 +1276,10 @@ |
3762 |
- # configuration options for the AutoGen Definitions output |
3763 |
- #--------------------------------------------------------------------------- |
3764 |
- |
3765 |
--# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will |
3766 |
--# generate an AutoGen Definitions (see autogen.sf.net) file |
3767 |
--# that captures the structure of the code including all |
3768 |
--# documentation. Note that this feature is still experimental |
3769 |
-+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will |
3770 |
-+# generate an AutoGen Definitions (see autogen.sf.net) file |
3771 |
-+# that captures the structure of the code including all |
3772 |
-+# documentation. Note that this feature is still experimental |
3773 |
- # and incomplete at the moment. |
3774 |
- |
3775 |
- GENERATE_AUTOGEN_DEF = NO |
3776 |
-@@ -937,82 +1288,84 @@ |
3777 |
- # configuration options related to the Perl module output |
3778 |
- #--------------------------------------------------------------------------- |
3779 |
- |
3780 |
--# If the GENERATE_PERLMOD tag is set to YES Doxygen will |
3781 |
--# generate a Perl module file that captures the structure of |
3782 |
--# the code including all documentation. Note that this |
3783 |
--# feature is still experimental and incomplete at the |
3784 |
-+# If the GENERATE_PERLMOD tag is set to YES Doxygen will |
3785 |
-+# generate a Perl module file that captures the structure of |
3786 |
-+# the code including all documentation. Note that this |
3787 |
-+# feature is still experimental and incomplete at the |
3788 |
- # moment. |
3789 |
- |
3790 |
- GENERATE_PERLMOD = NO |
3791 |
- |
3792 |
--# If the PERLMOD_LATEX tag is set to YES Doxygen will generate |
3793 |
--# the necessary Makefile rules, Perl scripts and LaTeX code to be able |
3794 |
-+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate |
3795 |
-+# the necessary Makefile rules, Perl scripts and LaTeX code to be able |
3796 |
- # to generate PDF and DVI output from the Perl module output. |
3797 |
- |
3798 |
- PERLMOD_LATEX = NO |
3799 |
- |
3800 |
--# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be |
3801 |
--# nicely formatted so it can be parsed by a human reader. This is useful |
3802 |
--# if you want to understand what is going on. On the other hand, if this |
3803 |
--# tag is set to NO the size of the Perl module output will be much smaller |
3804 |
-+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be |
3805 |
-+# nicely formatted so it can be parsed by a human reader. |
3806 |
-+# This is useful |
3807 |
-+# if you want to understand what is going on. |
3808 |
-+# On the other hand, if this |
3809 |
-+# tag is set to NO the size of the Perl module output will be much smaller |
3810 |
- # and Perl will parse it just the same. |
3811 |
- |
3812 |
- PERLMOD_PRETTY = YES |
3813 |
- |
3814 |
--# The names of the make variables in the generated doxyrules.make file |
3815 |
--# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. |
3816 |
--# This is useful so different doxyrules.make files included by the same |
3817 |
-+# The names of the make variables in the generated doxyrules.make file |
3818 |
-+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. |
3819 |
-+# This is useful so different doxyrules.make files included by the same |
3820 |
- # Makefile don't overwrite each other's variables. |
3821 |
- |
3822 |
--PERLMOD_MAKEVAR_PREFIX = |
3823 |
-+PERLMOD_MAKEVAR_PREFIX = |
3824 |
- |
3825 |
- #--------------------------------------------------------------------------- |
3826 |
--# Configuration options related to the preprocessor |
3827 |
-+# Configuration options related to the preprocessor |
3828 |
- #--------------------------------------------------------------------------- |
3829 |
- |
3830 |
--# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will |
3831 |
--# evaluate all C-preprocessor directives found in the sources and include |
3832 |
-+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will |
3833 |
-+# evaluate all C-preprocessor directives found in the sources and include |
3834 |
- # files. |
3835 |
- |
3836 |
- ENABLE_PREPROCESSING = YES |
3837 |
- |
3838 |
--# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro |
3839 |
--# names in the source code. If set to NO (the default) only conditional |
3840 |
--# compilation will be performed. Macro expansion can be done in a controlled |
3841 |
-+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro |
3842 |
-+# names in the source code. If set to NO (the default) only conditional |
3843 |
-+# compilation will be performed. Macro expansion can be done in a controlled |
3844 |
- # way by setting EXPAND_ONLY_PREDEF to YES. |
3845 |
- |
3846 |
- MACRO_EXPANSION = NO |
3847 |
- |
3848 |
--# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES |
3849 |
--# then the macro expansion is limited to the macros specified with the |
3850 |
-+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES |
3851 |
-+# then the macro expansion is limited to the macros specified with the |
3852 |
- # PREDEFINED and EXPAND_AS_DEFINED tags. |
3853 |
- |
3854 |
- EXPAND_ONLY_PREDEF = NO |
3855 |
- |
3856 |
--# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files |
3857 |
-+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files |
3858 |
- # in the INCLUDE_PATH (see below) will be search if a #include is found. |
3859 |
- |
3860 |
- SEARCH_INCLUDES = YES |
3861 |
- |
3862 |
--# The INCLUDE_PATH tag can be used to specify one or more directories that |
3863 |
--# contain include files that are not input files but should be processed by |
3864 |
-+# The INCLUDE_PATH tag can be used to specify one or more directories that |
3865 |
-+# contain include files that are not input files but should be processed by |
3866 |
- # the preprocessor. |
3867 |
- |
3868 |
--INCLUDE_PATH = |
3869 |
-+INCLUDE_PATH = |
3870 |
- |
3871 |
--# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard |
3872 |
--# patterns (like *.h and *.hpp) to filter out the header-files in the |
3873 |
--# directories. If left blank, the patterns specified with FILE_PATTERNS will |
3874 |
-+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard |
3875 |
-+# patterns (like *.h and *.hpp) to filter out the header-files in the |
3876 |
-+# directories. If left blank, the patterns specified with FILE_PATTERNS will |
3877 |
- # be used. |
3878 |
- |
3879 |
--INCLUDE_FILE_PATTERNS = |
3880 |
-+INCLUDE_FILE_PATTERNS = |
3881 |
- |
3882 |
--# The PREDEFINED tag can be used to specify one or more macro names that |
3883 |
--# are defined before the preprocessor is started (similar to the -D option of |
3884 |
--# gcc). The argument of the tag is a list of macros of the form: name |
3885 |
--# or name=definition (no spaces). If the definition and the = are |
3886 |
--# omitted =1 is assumed. To prevent a macro definition from being |
3887 |
--# undefined via #undef or recursively expanded use the := operator |
3888 |
-+# The PREDEFINED tag can be used to specify one or more macro names that |
3889 |
-+# are defined before the preprocessor is started (similar to the -D option of |
3890 |
-+# gcc). The argument of the tag is a list of macros of the form: name |
3891 |
-+# or name=definition (no spaces). If the definition and the = are |
3892 |
-+# omitted =1 is assumed. To prevent a macro definition from being |
3893 |
-+# undefined via #undef or recursively expanded use the := operator |
3894 |
- # instead of the = operator. |
3895 |
- |
3896 |
- PREDEFINED = WITH_OPENSSL \ |
3897 |
-@@ -1104,7 +1457,7 @@ |
3898 |
- # toolkit from AT&T and Lucent Bell Labs. The other options in this section |
3899 |
- # have no effect if this option is set to NO (the default) |
3900 |
- |
3901 |
--HAVE_DOT = NO |
3902 |
-+HAVE_DOT = YES |
3903 |
- |
3904 |
- # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen |
3905 |
- # will generate a graph for each documented class showing the direct and |
3906 |
-@@ -1182,7 +1535,7 @@ |
3907 |
- # generated by dot. Possible values are png, jpg, or gif |
3908 |
- # If left blank png will be used. |
3909 |
- |
3910 |
--DOT_IMAGE_FORMAT = png |
3911 |
-+DOT_IMAGE_FORMAT = svg |
3912 |
- |
3913 |
- # The tag DOT_PATH can be used to specify the path where the dot tool can be |
3914 |
- # found. If left blank, it is assumed the dot tool can be found in the path. |