• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/fstools/libfstools/volume.c

  1 /*
  2  * Copyright (C) 2014 John Crispin <blogic@openwrt.org>
  3  *
  4  * This program is free software; you can redistribute it and/or modify
  5  * it under the terms of the GNU Lesser General Public License version 2.1
  6  * as published by the Free Software Foundation
  7  *
  8  * This program is distributed in the hope that it will be useful,
  9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 11  * GNU General Public License for more details.
 12  */
 13 
 14 #include <sys/mount.h>
 15 #include <stdio.h>
 16 #include <stdlib.h>
 17 
 18 #include "libfstools.h"
 19 #include "volume.h"
 20 
 21 static LIST_HEAD(drivers);
 22 
 23 void
 24 volume_register_driver(struct driver *d)
 25 {
 26         struct driver *cur, *tmp;
 27 
 28         list_for_each_entry_safe(cur, tmp, &drivers, list) {
 29                 if (d->priority <= cur->priority)
 30                         continue;
 31 
 32                 _list_add(&d->list, cur->list.prev, &cur->list);
 33                 return;
 34         }
 35         list_add_tail(&d->list, &drivers);
 36 }
 37 
 38 struct volume* volume_find(char *name)
 39 {
 40         struct volume *v;
 41         struct driver *d;
 42 
 43         list_for_each_entry(d, &drivers, list) {
 44                 if (d->find) {
 45                         v = d->find(name);
 46                         if (v)
 47                                 return v;
 48                 }
 49         }
 50 
 51         return NULL;
 52 }
 53 

This page was automatically generated by LXR 0.3.1.  •  OpenWrt