• Home
  • Raw
  • Download

Lines Matching refs:lf

39 static int scan_lines(struct lnstat_file *lf, int i)  in scan_lines()  argument
44 for (j = 0; j < lf->num_fields; j++) in scan_lines()
45 lf->fields[j].values[i] = 0; in scan_lines()
47 rewind(lf->fp); in scan_lines()
49 if (!lf->compat && !fgets(buf, sizeof(buf)-1, lf->fp)) in scan_lines()
52 while(!feof(lf->fp) && fgets(buf, sizeof(buf)-1, lf->fp)) { in scan_lines()
57 gettimeofday(&lf->last_read, NULL); in scan_lines()
59 for (j = 0; j < lf->num_fields; j++) { in scan_lines()
62 lf->fields[j].values[i] = f; in scan_lines()
64 lf->fields[j].values[i] += f; in scan_lines()
87 struct lnstat_file *lf; in lnstat_update() local
92 for (lf = lnstat_files; lf; lf = lf->next) { in lnstat_update()
93 if (time_after(&lf->last_read, &lf->interval, &tv)) { in lnstat_update()
97 scan_lines(lf, 1); in lnstat_update()
99 for (i = 0, lfi = &lf->fields[i]; in lnstat_update()
100 i < lf->num_fields; i++, lfi = &lf->fields[i]) { in lnstat_update()
105 / lf->interval.tv_sec; in lnstat_update()
108 scan_lines(lf, 0); in lnstat_update()
116 static int __lnstat_scan_fields(struct lnstat_file *lf, char *buf) in __lnstat_scan_fields() argument
123 lf->fields[i].file = lf; in __lnstat_scan_fields()
124 strncpy(lf->fields[i].name, tok, LNSTAT_MAX_FIELD_NAME_LEN); in __lnstat_scan_fields()
129 lf->num_fields = i+1; in __lnstat_scan_fields()
136 static int lnstat_scan_fields(struct lnstat_file *lf) in lnstat_scan_fields() argument
140 rewind(lf->fp); in lnstat_scan_fields()
141 if (!fgets(buf, sizeof(buf)-1, lf->fp)) in lnstat_scan_fields()
144 return __lnstat_scan_fields(lf, buf); in lnstat_scan_fields()
148 static int lnstat_scan_compat_rtstat_fields(struct lnstat_file *lf) in lnstat_scan_compat_rtstat_fields() argument
154 return __lnstat_scan_fields(lf, buf); in lnstat_scan_compat_rtstat_fields()
171 struct lnstat_file *lf; in alloc_and_open() local
174 lf = malloc(sizeof(*lf)); in alloc_and_open()
175 if (!lf) { in alloc_and_open()
181 memset(lf, 0, sizeof(*lf)); in alloc_and_open()
184 strcpy(lf->basename, file); in alloc_and_open()
185 strcpy(lf->path, path); in alloc_and_open()
186 strcat(lf->path, "/"); in alloc_and_open()
187 strcat(lf->path, lf->basename); in alloc_and_open()
190 lf->interval.tv_sec = 1; in alloc_and_open()
193 lf->fp = fopen(lf->path, "r"); in alloc_and_open()
194 if (!lf->fp) { in alloc_and_open()
195 perror(lf->path); in alloc_and_open()
196 free(lf); in alloc_and_open()
200 return lf; in alloc_and_open()
217 struct lnstat_file *lf; in lnstat_scan_dir() local
236 lf = alloc_and_open("/proc/net", "rt_cache_stat"); in lnstat_scan_dir()
237 if (!lf) in lnstat_scan_dir()
239 lf->compat = 1; in lnstat_scan_dir()
240 strncpy(lf->basename, "rt_cache", sizeof(lf->basename)); in lnstat_scan_dir()
243 if (lnstat_scan_compat_rtstat_fields(lf) < 0) in lnstat_scan_dir()
246 lf->next = lnstat_files; in lnstat_scan_dir()
247 lnstat_files = lf; in lnstat_scan_dir()
252 struct lnstat_file *lf; in lnstat_scan_dir() local
261 lf = alloc_and_open(path, de->d_name); in lnstat_scan_dir()
262 if (!lf) { in lnstat_scan_dir()
268 if (lnstat_scan_fields(lf) < 0) { in lnstat_scan_dir()
274 lf->next = lnstat_files; in lnstat_scan_dir()
275 lnstat_files = lf; in lnstat_scan_dir()
284 struct lnstat_file *lf; in lnstat_dump() local
286 for (lf = lnstat_files; lf; lf = lf->next) { in lnstat_dump()
289 fprintf(outfd, "%s:\n", lf->path); in lnstat_dump()
291 for (i = 0; i < lf->num_fields; i++) in lnstat_dump()
292 fprintf(outfd, "\t%2u: %s\n", i+1, lf->fields[i].name); in lnstat_dump()
301 struct lnstat_file *lf; in lnstat_find_field() local
315 for (lf = lnstat_files; lf; lf = lf->next) { in lnstat_find_field()
318 if (file && strcmp(file, lf->basename)) in lnstat_find_field()
321 for (i = 0; i < lf->num_fields; i++) { in lnstat_find_field()
322 if (!strcmp(field, lf->fields[i].name)) { in lnstat_find_field()
323 ret = &lf->fields[i]; in lnstat_find_field()