1 /*
2  * Model description tables
3  */
4 #include <linux/kernel.h>
5 
6 struct product_info {
7 	const char     *pi_name;
8 	const char     *pi_type;
9 };
10 
11 struct vendor_info {
12 	const char     *vi_name;
13 	const struct product_info *vi_product_info;
14 };
15 
16 /*
17  * Base models
18  */
19 static const char * const txt_base_models[] = {
20 	"MQ 2", "MQ Pro", "SP 25", "SP 50", "SP 100", "SP 5000", "SP 7000",
21 	"SP 1000", "Unknown"
22 };
23 #define N_BASE_MODELS (ARRAY_SIZE(txt_base_models) - 1)
24 
25 /*
26  * Eicon Networks
27  */
28 static const char txt_en_mq[] = "Masquerade";
29 static const char txt_en_sp[] = "Safepipe";
30 
31 static const struct product_info product_info_eicon[] = {
32 	{ txt_en_mq, "II"   }, /*  0 */
33 	{ txt_en_mq, "Pro"  }, /*  1 */
34 	{ txt_en_sp, "25"   }, /*  2 */
35 	{ txt_en_sp, "50"   }, /*  3 */
36 	{ txt_en_sp, "100"  }, /*  4 */
37 	{ txt_en_sp, "5000" }, /*  5 */
38 	{ txt_en_sp, "7000" }, /*  6 */
39 	{ txt_en_sp, "30"   }, /*  7 */
40 	{ txt_en_sp, "5100" }, /*  8 */
41 	{ txt_en_sp, "7100" }, /*  9 */
42 	{ txt_en_sp, "1110" }, /* 10 */
43 	{ txt_en_sp, "3020" }, /* 11 */
44 	{ txt_en_sp, "3030" }, /* 12 */
45 	{ txt_en_sp, "5020" }, /* 13 */
46 	{ txt_en_sp, "5030" }, /* 14 */
47 	{ txt_en_sp, "1120" }, /* 15 */
48 	{ txt_en_sp, "1130" }, /* 16 */
49 	{ txt_en_sp, "6010" }, /* 17 */
50 	{ txt_en_sp, "6110" }, /* 18 */
51 	{ txt_en_sp, "6210" }, /* 19 */
52 	{ txt_en_sp, "1020" }, /* 20 */
53 	{ txt_en_sp, "1040" }, /* 21 */
54 	{ txt_en_sp, "1050" }, /* 22 */
55 	{ txt_en_sp, "1060" }, /* 23 */
56 };
57 
58 #define N_PRIDS ARRAY_SIZE(product_info_eicon)
59 
60 /*
61  * The vendor table
62  */
63 static struct vendor_info const vendor_info_table[] = {
64 	{ "Eicon Networks",	product_info_eicon   },
65 };
66 
67 #define N_VENDORS ARRAY_SIZE(vendor_info_table)
68