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