summaryrefslogtreecommitdiffstats
path: root/plugins/t
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/t')
0 files changed, 0 insertions, 0 deletions
diff --git a/plugins/check_disk.c b/plugins/check_disk.c
index f0a679d..8e9c1fc 100644
--- a/plugins/check_disk.c
+++ b/plugins/check_disk.c
@@ -74,21 +74,6 @@ static int show_local_fs = 0;
74 SunOs4.1.3, for one. It is *not* necessary on Linux. */ 74 SunOs4.1.3, for one. It is *not* necessary on Linux. */
75/* static int require_sync = 0; */ 75/* static int require_sync = 0; */
76 76
77/* A filesystem type to display. */
78struct parameter_list
79{
80 char *name;
81 int found;
82 int found_len;
83 uintmax_t w_df;
84 uintmax_t c_df;
85 double w_dfp;
86 double c_dfp;
87 double w_idfp;
88 double c_idfp;
89 struct parameter_list *name_next;
90};
91
92/* Linked list of filesystem types to display. 77/* Linked list of filesystem types to display.
93 If `fs_select_list' is NULL, list all types. 78 If `fs_select_list' is NULL, list all types.
94 This table is generated dynamically from command-line options, 79 This table is generated dynamically from command-line options,
diff --git a/plugins/utils_disk.c b/plugins/utils_disk.c
index 6380df3..0a71d79 100644
--- a/plugins/utils_disk.c
+++ b/plugins/utils_disk.c
@@ -43,6 +43,60 @@ np_add_name (struct name_list **list, const char *name)
43 *list = new_entry; 43 *list = new_entry;
44} 44}
45 45
46void
47np_add_parameter(struct parameter_list **list, const char *name)
48{
49 struct parameter_list *new_path;
50 new_path = (struct parameter_list *) malloc (sizeof *new_path);
51 new_path->name = (char *) name;
52 new_path->found = 0;
53 new_path->found_len = 0;
54 new_path->w_df = 0;
55 new_path->c_df = 0;
56 new_path->w_dfp = -1.0;
57 new_path->c_dfp = -1.0;
58 new_path->w_idfp = -1.0;
59 new_path->c_idfp = -1.0;
60 new_path->name_next = *list;
61 *list = new_path;
62}
63
64void
65np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list, int exact)
66{
67 struct parameter_list *d;
68 for (d = desired; d; d= d->name_next) {
69 struct mount_entry *me;
70 size_t name_len = strlen(d->name);
71 size_t best_match_len = 0;
72 struct mount_entry *best_match = NULL;
73
74 for (me = mount_list; me; me = me->me_next) {
75 size_t len = strlen (me->me_mountdir);
76 if ((exact == FALSE && (best_match_len <= len && len <= name_len &&
77 (len == 1 || strncmp (me->me_mountdir, d->name, len) == 0)))
78 || (exact == TRUE && strcmp(me->me_mountdir, d->name)==0))
79 {
80 best_match = me;
81 best_match_len = len;
82 } else {
83 len = strlen (me->me_devname);
84 if ((exact == FALSE && (best_match_len <= len && len <= name_len &&
85 (len == 1 || strncmp (me->me_devname, d->name, len) == 0)))
86 || (exact == TRUE && strcmp(me->me_devname, d->name)==0))
87 {
88 best_match = me;
89 best_match_len = len;
90 }
91 }
92 }
93 if (best_match) {
94 d->best_match = best_match;
95 d->found = TRUE;
96 }
97 }
98}
99
46/* Returns TRUE if name is in list */ 100/* Returns TRUE if name is in list */
47int 101int
48np_find_name (struct name_list *list, const char *name) 102np_find_name (struct name_list *list, const char *name)
diff --git a/plugins/utils_disk.h b/plugins/utils_disk.h
index f173c91..c1919fe 100644
--- a/plugins/utils_disk.h
+++ b/plugins/utils_disk.h
@@ -1,5 +1,6 @@
1/* Header file for utils_disk */ 1/* Header file for utils_disk */
2 2
3#include "mountlist.h"
3 4
4struct name_list 5struct name_list
5{ 6{
@@ -7,6 +8,22 @@ struct name_list
7 struct name_list *next; 8 struct name_list *next;
8}; 9};
9 10
11struct parameter_list
12{
13 char *name;
14 int found;
15 int found_len;
16 uintmax_t w_df;
17 uintmax_t c_df;
18 double w_dfp;
19 double c_dfp;
20 double w_idfp;
21 double c_idfp;
22 struct mount_entry *best_match;
23 struct parameter_list *name_next;
24};
25
10void np_add_name (struct name_list **list, const char *name); 26void np_add_name (struct name_list **list, const char *name);
11int np_find_name (struct name_list *list, const char *name); 27int np_find_name (struct name_list *list, const char *name);
12 28void np_add_parameter(struct parameter_list **list, const char *name);
29int search_parameter_list (struct parameter_list *list, const char *name);