]>
git.ipfire.org Git - people/teissler/ipfire-2.x.git/blob - src/hwinfo/src/isdn/cdb/isdn_cdb.c
14 static int WriteVendors(FILE *f
) {
17 fprintf(f
, "/* vendor database */\n");
18 fprintf(f
,"static cdb_isdn_vendor cdb_isdnvendor_info_init[] = {\n");
19 for (i
=0; i
< ivendor_idx
; i
++) {
22 fprintf(f
,"\"%s\",", vendors
[i
].name
);
25 if (vendors
[i
].shortname
)
26 fprintf(f
,"\"%s\",", vendors
[i
].shortname
);
29 fprintf(f
,"%d,",vendors
[i
].vnr
);
30 fprintf(f
,"%d",vendors
[i
].refcnt
);
37 static int WriteCards(FILE *f
) {
40 fprintf(f
, "/* card database */\n");
41 fprintf(f
,"static cdb_isdn_card cdb_isdncard_info_init[] = {\n");
42 for (i
=0; i
<= ce_idx
; i
++) {
44 fprintf(f
,"%d,",cards
[i
].handle
);
45 fprintf(f
,"%d,",cards
[i
].vhandle
);
47 fprintf(f
,"\"%s\",", cards
[i
].name
);
51 fprintf(f
,"\"%s\",", cards
[i
].lname
);
55 fprintf(f
,"\"%s\",",cards
[i
].Class
);
59 fprintf(f
,"\"%s\",",cards
[i
].bus
);
62 fprintf(f
,"%d,",cards
[i
].revision
);
63 fprintf(f
,"%d,",cards
[i
].vendor
);
64 fprintf(f
,"%d,",cards
[i
].device
);
65 fprintf(f
,"%d,",cards
[i
].subvendor
);
66 fprintf(f
,"%d,",cards
[i
].subdevice
);
67 fprintf(f
,"%d,",cards
[i
].features
);
68 fprintf(f
,"%d,",cards
[i
].line_cnt
);
69 fprintf(f
,"%d,",cards
[i
].vario_cnt
);
70 fprintf(f
,"%d",cards
[i
].vario
);
74 fprintf(f
,"static int cdb_isdncard_idsorted_init[] = {");
75 for (i
=0; i
< ce_idx
; i
++) {
78 fprintf(f
,"%d,",isdncard_id
[i
]);
84 static int WriteVarios(FILE *f
) {
87 fprintf(f
, "/* driver database */\n");
88 fprintf(f
,"static cdb_isdn_vario cdb_isdnvario_info_init[] = {\n");
89 for (i
=0; i
<= vario_idx
; i
++) {
91 fprintf(f
,"%d,",varios
[i
].handle
);
92 fprintf(f
,"%d,",varios
[i
].next_vario
);
93 fprintf(f
,"%d,",varios
[i
].drvid
);
94 fprintf(f
,"%d,",varios
[i
].typ
);
95 fprintf(f
,"%d,",varios
[i
].subtyp
);
96 fprintf(f
,"%d,",varios
[i
].smp
);
97 if (varios
[i
].mod_name
)
98 fprintf(f
,"\"%s\",", varios
[i
].mod_name
);
101 if (varios
[i
].para_str
)
102 fprintf(f
,"\"%s\",", varios
[i
].para_str
);
105 if (varios
[i
].mod_preload
)
106 fprintf(f
,"\"%s\",", varios
[i
].mod_preload
);
109 if (varios
[i
].cfg_prog
)
110 fprintf(f
,"\"%s\",", varios
[i
].cfg_prog
);
113 if (varios
[i
].firmware
)
114 fprintf(f
,"\"%s\",", varios
[i
].firmware
);
117 if (varios
[i
].description
)
118 fprintf(f
,"\"%s\",", varios
[i
].description
);
121 if (varios
[i
].need_pkg
)
122 fprintf(f
,"\"%s\",", varios
[i
].need_pkg
);
126 fprintf(f
,"\"%s\",", varios
[i
].info
);
129 if (varios
[i
].protocol
)
130 fprintf(f
,"\"%s\",", varios
[i
].protocol
);
133 if (varios
[i
].interface
)
134 fprintf(f
,"\"%s\",", varios
[i
].interface
);
138 fprintf(f
,"\"%s\",", varios
[i
].io
);
142 fprintf(f
,"\"%s\",", varios
[i
].irq
);
145 if (varios
[i
].membase
)
146 fprintf(f
,"\"%s\",", varios
[i
].membase
);
149 if (varios
[i
].features
)
150 fprintf(f
,"\"%s\",", varios
[i
].features
);
153 fprintf(f
,"%d,",varios
[i
].card_ref
);
155 fprintf(f
,"\"%s\"", varios
[i
].name
);
172 fprintf(stderr
, "Error no filename\n");
175 if (!(stdin
=freopen(argv
[1],"rb", stdin
))) {
176 fprintf(stderr
, "Cannot open %s as stdin\n", argv
[1]);
180 if (!(stdout
=freopen(argv
[2],"w", stdout
))) {
181 fprintf(stderr
, "Cannot open %s as stdout\n", argv
[2]);
185 cards
= calloc(max_ce
, sizeof(cdb_isdn_card
));
187 fprintf(stderr
, "cannot alloc card\n");
191 varios
= calloc(max_vario
, sizeof(cdb_isdn_vario
));
193 fprintf(stderr
, "cannot alloc vario\n");
198 name_str
= calloc(max_name_str_cnt
, 1);
200 fprintf(stderr
, "cannot alloc name_str\n");
206 vendors
= calloc(max_ivendor
, sizeof(cdb_isdn_vendor
));
208 fprintf(stderr
, "cannot alloc vendors\n");
222 fprintf(stdout
, "/* CDBISDN database */\n");
223 fprintf(stdout
,"const int CDBISDN_DBVERSION = 0x%x;\n", CDB_DATAVERSION
);
225 strcpy(line
,ctime(&tim
));
229 fprintf(stdout
,"const char CDBISDN_DATE[] = \"%s\";\n", line
);
230 WriteVendors(stdout
);
239 fprintf(stderr
, "used cards(%d/%d)\n", ce_idx
, max_ce
);
240 fprintf(stderr
, "used varios(%d/%d)\n", vario_idx
, max_vario
);
241 fprintf(stderr
, "used vendors(%d/%d)\n", ivendor_idx
, max_ivendor
);
242 fprintf(stderr
, "used name_str(%d/%d)\n",name_str_cnt
, max_name_str_cnt
);