[build] legacy files update
[platform/upstream/multipath-tools.git] / libcheckers / selector.c
1 /*
2  * Copyright (c) 2004, 2005 Christophe Varoqui
3  */
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <string.h>
7 #include "checkers.h"
8
9 extern int
10 get_checker_id (char * str)
11 {
12         if (0 == strncmp(str, "tur", 3))
13                 return TUR;
14         if (0 == strncmp(str, "readsector0", 11))
15                 return READSECTOR0;
16         if (0 == strncmp(str, "directio", 8))
17                 return DIRECTIO;
18         if (0 == strncmp(str, "emc_clariion", 12))
19                 return EMC_CLARIION;
20         if (0 == strncmp(str, "hp_sw", 5))
21                 return HP_SW;
22         return -1;
23 }
24
25 extern void * 
26 get_checker_addr (int id)
27 {
28         int (*checker) (int, char *, void **);
29
30         switch (id) {
31         case TUR:
32                 checker = &tur;
33                 break;
34         case READSECTOR0:
35                 checker = &readsector0;
36                 break;
37         case DIRECTIO:
38                 checker = &directio;
39                 break;
40         case EMC_CLARIION:
41                 checker = &emc_clariion;
42                 break;
43         case HP_SW:
44                 checker = &hp_sw;
45                 break;
46         default:
47                 checker = NULL;
48                 break;
49         }
50         return checker;
51 }
52
53 extern int
54 get_checker_name (char * str, int id)
55 {
56         char * s;
57
58         switch (id) {
59         case TUR:
60                 s = "tur";
61                 break;
62         case READSECTOR0:
63                 s = "readsector0";
64                 break;
65         case DIRECTIO:
66                 s = "directio";
67                 break;
68         case EMC_CLARIION:
69                 s = "emc_clariion";
70                 break;
71         case HP_SW:
72                 s = "hp_sw";
73                 break;
74         default:
75                 s = "undefined";
76                 break;
77         }
78         if (snprintf(str, CHECKER_NAME_SIZE, "%s", s) >= CHECKER_NAME_SIZE) {
79                 fprintf(stderr, "checker_name too small\n");
80                 return 1;
81         }
82         return 0;
83 }