Lines Matching refs:csp
79 static void iconv_unregister_cspair(struct iconv_cspair *csp);
84 struct iconv_cspair *csp; in iconv_mod_unload() local
87 TAILQ_FOREACH(csp, &iconv_cslist, cp_link) { in iconv_mod_unload()
88 if (csp->cp_refcount) { in iconv_mod_unload()
94 while ((csp = TAILQ_FIRST(&iconv_cslist)) != NULL) in iconv_mod_unload()
95 iconv_unregister_cspair(csp); in iconv_mod_unload()
168 struct iconv_cspair *csp; in iconv_lookupcs() local
170 TAILQ_FOREACH(csp, &iconv_cslist, cp_link) { in iconv_lookupcs()
171 if (strcasecmp(csp->cp_to, to) == 0 && in iconv_lookupcs()
172 strcasecmp(csp->cp_from, from) == 0) { in iconv_lookupcs()
174 *cspp = csp; in iconv_lookupcs()
186 struct iconv_cspair *csp; in iconv_register_cspair() local
192 csize = sizeof(*csp); in iconv_register_cspair()
199 csp = malloc(csize, M_ICONV, M_WAITOK); in iconv_register_cspair()
200 bzero(csp, csize); in iconv_register_cspair()
201 csp->cp_id = iconv_csid++; in iconv_register_cspair()
202 csp->cp_dcp = dcp; in iconv_register_cspair()
203 cp = (char*)(csp + 1); in iconv_register_cspair()
206 csp->cp_to = cp; in iconv_register_cspair()
209 csp->cp_to = iconv_unicode_string; in iconv_register_cspair()
212 csp->cp_from = cp; in iconv_register_cspair()
214 csp->cp_from = iconv_unicode_string; in iconv_register_cspair()
215 csp->cp_data = data; in iconv_register_cspair()
217 TAILQ_INSERT_TAIL(&iconv_cslist, csp, cp_link); in iconv_register_cspair()
218 *cspp = csp; in iconv_register_cspair()
223 iconv_unregister_cspair(struct iconv_cspair *csp) in iconv_unregister_cspair() argument
225 TAILQ_REMOVE(&iconv_cslist, csp, cp_link); in iconv_unregister_cspair()
226 if (csp->cp_data) in iconv_unregister_cspair()
227 free(csp->cp_data, M_ICONVDATA); in iconv_unregister_cspair()
228 free(csp, M_ICONV); in iconv_unregister_cspair()
239 struct iconv_cspair *csp, *cspfrom, *cspto; in iconv_open() local
247 error = iconv_lookupcs(to, from, &csp); in iconv_open()
249 return ICONV_CONVERTER_OPEN(csp->cp_dcp, csp, NULL, handle); in iconv_open()
360 struct iconv_cspair *csp; in iconv_sysctl_cslist() local
368 TAILQ_FOREACH(csp, &iconv_cslist, cp_link) { in iconv_sysctl_cslist()
369 csi.cs_id = csp->cp_id; in iconv_sysctl_cslist()
370 csi.cs_refcount = csp->cp_refcount; in iconv_sysctl_cslist()
371 csi.cs_base = csp->cp_base ? csp->cp_base->cp_id : 0; in iconv_sysctl_cslist()
372 strcpy(csi.cs_to, csp->cp_to); in iconv_sysctl_cslist()
373 strcpy(csi.cs_from, csp->cp_from); in iconv_sysctl_cslist()
391 struct iconv_cspair *csp; in iconv_add() local
396 return iconv_register_cspair(to, from, dcp, NULL, &csp); in iconv_add()
406 struct iconv_cspair *csp; in iconv_sysctl_add() local
427 error = iconv_register_cspair(din.ia_to, din.ia_from, dcp, NULL, &csp); in iconv_sysctl_add()
433 csp->cp_data = malloc(din.ia_datalen, M_ICONVDATA, M_WAITOK); in iconv_sysctl_add()
434 error = copyin(din.ia_data, csp->cp_data, din.ia_datalen); in iconv_sysctl_add()
438 dout.ia_csid = csp->cp_id; in iconv_sysctl_add()
446 iconv_unregister_cspair(csp); in iconv_sysctl_add()