| /* |
| * Model description tables |
| */ |
| |
| typedef struct product_info_t { |
| const char *pi_name; |
| const char *pi_type; |
| } product_info_t; |
| |
| typedef struct vendor_info_t { |
| const char *vi_name; |
| const product_info_t *vi_product_info; |
| } vendor_info_t; |
| |
| /* |
| * Base models |
| */ |
| static const char * const txt_base_models[] = { |
| "MQ 2", "MQ Pro", "SP 25", "SP 50", "SP 100", "SP 5000", "SP 7000", "SP 1000", "Unknown" |
| }; |
| #define N_BASE_MODELS (sizeof(txt_base_models)/sizeof(char*)-1) |
| |
| /* |
| * Eicon Networks |
| */ |
| static const char txt_en_mq[] = "Masquerade"; |
| static const char txt_en_sp[] = "Safepipe"; |
| |
| static const product_info_t product_info_eicon[] = { |
| { txt_en_mq, "II" }, /* 0 */ |
| { txt_en_mq, "Pro" }, /* 1 */ |
| { txt_en_sp, "25" }, /* 2 */ |
| { txt_en_sp, "50" }, /* 3 */ |
| { txt_en_sp, "100" }, /* 4 */ |
| { txt_en_sp, "5000" }, /* 5 */ |
| { txt_en_sp, "7000" }, /* 6 */ |
| { txt_en_sp, "30" }, /* 7 */ |
| { txt_en_sp, "5100" }, /* 8 */ |
| { txt_en_sp, "7100" }, /* 9 */ |
| { txt_en_sp, "1110" }, /* 10 */ |
| { txt_en_sp, "3020" }, /* 11 */ |
| { txt_en_sp, "3030" }, /* 12 */ |
| { txt_en_sp, "5020" }, /* 13 */ |
| { txt_en_sp, "5030" }, /* 14 */ |
| { txt_en_sp, "1120" }, /* 15 */ |
| { txt_en_sp, "1130" }, /* 16 */ |
| { txt_en_sp, "6010" }, /* 17 */ |
| { txt_en_sp, "6110" }, /* 18 */ |
| { txt_en_sp, "6210" }, /* 19 */ |
| { txt_en_sp, "1020" }, /* 20 */ |
| { txt_en_sp, "1040" }, /* 21 */ |
| { txt_en_sp, "1050" }, /* 22 */ |
| { txt_en_sp, "1060" }, /* 23 */ |
| }; |
| #define N_PRIDS (sizeof(product_info_eicon)/sizeof(product_info_t)) |
| |
| /* |
| * The vendor table |
| */ |
| static vendor_info_t const vendor_info_table[] = { |
| { "Eicon Networks", product_info_eicon }, |
| }; |
| #define N_VENDORS (sizeof(vendor_info_table)/sizeof(vendor_info_t)) |