Lines Matching defs:csp

79 static void iconv_unregister_cspair(struct iconv_cspair *csp);
84 struct iconv_cspair *csp;
87 TAILQ_FOREACH(csp, &iconv_cslist, cp_link) {
88 if (csp->cp_refcount) {
94 while ((csp = TAILQ_FIRST(&iconv_cslist)) != NULL)
95 iconv_unregister_cspair(csp);
168 struct iconv_cspair *csp;
170 TAILQ_FOREACH(csp, &iconv_cslist, cp_link) {
171 if (strcmp(csp->cp_to, to) == 0 &&
172 strcmp(csp->cp_from, from) == 0) {
174 *cspp = csp;
186 struct iconv_cspair *csp;
192 csize = sizeof(*csp);
199 csp = malloc(csize, M_ICONV, M_WAITOK);
200 bzero(csp, csize);
201 csp->cp_id = iconv_csid++;
202 csp->cp_dcp = dcp;
203 cp = (char*)(csp + 1);
206 csp->cp_to = cp;
209 csp->cp_to = iconv_unicode_string;
212 csp->cp_from = cp;
214 csp->cp_from = iconv_unicode_string;
215 csp->cp_data = data;
217 TAILQ_INSERT_TAIL(&iconv_cslist, csp, cp_link);
218 *cspp = csp;
223 iconv_unregister_cspair(struct iconv_cspair *csp)
225 TAILQ_REMOVE(&iconv_cslist, csp, cp_link);
226 if (csp->cp_data)
227 free(csp->cp_data, M_ICONVDATA);
228 free(csp, M_ICONV);
239 struct iconv_cspair *csp, *cspfrom, *cspto;
247 error = iconv_lookupcs(to, from, &csp);
249 return ICONV_CONVERTER_OPEN(csp->cp_dcp, csp, NULL, handle);
358 struct iconv_cspair *csp;
366 TAILQ_FOREACH(csp, &iconv_cslist, cp_link) {
367 csi.cs_id = csp->cp_id;
368 csi.cs_refcount = csp->cp_refcount;
369 csi.cs_base = csp->cp_base ? csp->cp_base->cp_id : 0;
370 strcpy(csi.cs_to, csp->cp_to);
371 strcpy(csi.cs_from, csp->cp_from);
387 struct iconv_cspair *csp;
392 return iconv_register_cspair(to, from, dcp, NULL, &csp);
402 struct iconv_cspair *csp;
423 error = iconv_register_cspair(din.ia_to, din.ia_from, dcp, NULL, &csp);
429 csp->cp_data = malloc(din.ia_datalen, M_ICONVDATA, M_WAITOK);
430 error = copyin(din.ia_data, csp->cp_data, din.ia_datalen);
434 dout.ia_csid = csp->cp_id;
442 iconv_unregister_cspair(csp);