FreeBSD kernel libkern code
|
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/iconv.h>
#include <sys/malloc.h>
#include <sys/mount.h>
#include <sys/sx.h>
#include <sys/syslog.h>
#include "iconv_converter_if.h"
Go to the source code of this file.
Functions | |
__FBSDID ("$BSDSUniX$") | |
SYSCTL_DECL (_kern_iconv) | |
SYSCTL_NODE (_kern, OID_AUTO, iconv, CTLFLAG_RW, NULL,"kernel iconv interface") | |
MALLOC_DEFINE (M_ICONV,"iconv","ICONV structures") | |
static | MALLOC_DEFINE (M_ICONVDATA,"iconv_data","ICONV data") |
MODULE_VERSION (libiconv, 2) | |
static | TAILQ_HEAD (iconv_converter_list, iconv_converter_class) |
static int | iconv_mod_handler (module_t mod, int type, void *data) |
DECLARE_MODULE (iconv, iconv_mod, SI_SUB_DRIVERS, SI_ORDER_SECOND) | |
static int | iconv_register_converter (struct iconv_converter_class *dcp) |
static int | iconv_unregister_converter (struct iconv_converter_class *dcp) |
static int | iconv_lookupconv (const char *name, struct iconv_converter_class **dcpp) |
static int | iconv_lookupcs (const char *to, const char *from, struct iconv_cspair **cspp) |
static int | iconv_register_cspair (const char *to, const char *from, struct iconv_converter_class *dcp, void *data, struct iconv_cspair **cspp) |
static void | iconv_unregister_cspair (struct iconv_cspair *csp) |
int | iconv_open (const char *to, const char *from, void **handle) |
int | iconv_close (void *handle) |
int | iconv_conv (void *handle, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) |
int | iconv_conv_case (void *handle, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft, int casetype) |
int | iconv_convchr (void *handle, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) |
int | iconv_convchr_case (void *handle, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft, int casetype) |
int | towlower (int c, void *handle) |
int | towupper (int c, void *handle) |
static int | iconv_sysctl_drvlist (SYSCTL_HANDLER_ARGS) |
SYSCTL_PROC (_kern_iconv, OID_AUTO, drvlist, CTLFLAG_RD|CTLTYPE_OPAQUE, NULL, 0, iconv_sysctl_drvlist,"S,xlat","registered converters") | |
static int | iconv_sysctl_cslist (SYSCTL_HANDLER_ARGS) |
SYSCTL_PROC (_kern_iconv, OID_AUTO, cslist, CTLFLAG_RD|CTLTYPE_OPAQUE, NULL, 0, iconv_sysctl_cslist,"S,xlat","registered charset pairs") | |
int | iconv_add (const char *converter, const char *to, const char *from) |
static int | iconv_sysctl_add (SYSCTL_HANDLER_ARGS) |
SYSCTL_PROC (_kern_iconv, OID_AUTO, add, CTLFLAG_RW|CTLTYPE_OPAQUE, NULL, 0, iconv_sysctl_add,"S,xlat","register charset pair") | |
int | iconv_converter_initstub (struct iconv_converter_class *dp) |
int | iconv_converter_donestub (struct iconv_converter_class *dp) |
int | iconv_converter_tolowerstub (int c, void *handle) |
int | iconv_converter_handler (module_t mod, int type, void *data) |
char * | iconv_convstr (void *handle, char *dst, const char *src) |
void * | iconv_convmem (void *handle, void *dst, const void *src, int size) |
int | iconv_lookupcp (char **cpp, const char *s) |
int | iconv_vfs_refcount (const char *fsname) |
Variables | |
static struct sx | iconv_lock |
struct sysctl_oid * | iconv_oid_hook = &sysctl___kern_iconv |
static moduledata_t | iconv_mod |
__FBSDID | ( | "$BSDSUniX$" | ) |
DECLARE_MODULE | ( | iconv | , |
iconv_mod | , | ||
SI_SUB_DRIVERS | , | ||
SI_ORDER_SECOND | |||
) |
int iconv_add | ( | const char * | converter, |
const char * | to, | ||
const char * | from | ||
) |
Definition at line 383 of file iconv.c.
References iconv_lookupconv(), and iconv_register_cspair().
Referenced by iconv_ucs_init().
int iconv_close | ( | void * | handle | ) |
Definition at line 273 of file iconv.c.
Referenced by iconv_ucs_close(), and iconv_xlat16_close().
int iconv_conv | ( | void * | handle, |
const char ** | inbuf, | ||
size_t * | inbytesleft, | ||
char ** | outbuf, | ||
size_t * | outbytesleft | ||
) |
Definition at line 279 of file iconv.c.
Referenced by iconv_convmem(), and iconv_convstr().
int iconv_conv_case | ( | void * | handle, |
const char ** | inbuf, | ||
size_t * | inbytesleft, | ||
char ** | outbuf, | ||
size_t * | outbytesleft, | ||
int | casetype | ||
) |
int iconv_convchr | ( | void * | handle, |
const char ** | inbuf, | ||
size_t * | inbytesleft, | ||
char ** | outbuf, | ||
size_t * | outbytesleft | ||
) |
int iconv_convchr_case | ( | void * | handle, |
const char ** | inbuf, | ||
size_t * | inbytesleft, | ||
char ** | outbuf, | ||
size_t * | outbytesleft, | ||
int | casetype | ||
) |
Definition at line 300 of file iconv.c.
Referenced by iconv_ucs_conv().
int iconv_converter_donestub | ( | struct iconv_converter_class * | dp | ) |
int iconv_converter_handler | ( | module_t | mod, |
int | type, | ||
void * | data | ||
) |
Definition at line 471 of file iconv.c.
References iconv_lock, iconv_register_converter(), and iconv_unregister_converter().
int iconv_converter_initstub | ( | struct iconv_converter_class * | dp | ) |
void* iconv_convmem | ( | void * | handle, |
void * | dst, | ||
const void * | src, | ||
int | size | ||
) |
Definition at line 527 of file iconv.c.
References iconv_conv().
char* iconv_convstr | ( | void * | handle, |
char * | dst, | ||
const char * | src | ||
) |
Definition at line 505 of file iconv.c.
References iconv_conv(), strcpy(), and strlen().
|
static |
Definition at line 148 of file iconv.c.
References strcmp().
Referenced by iconv_add(), and iconv_sysctl_add().
int iconv_lookupcp | ( | char ** | cpp, |
const char * | s | ||
) |
|
static |
Definition at line 165 of file iconv.c.
References strcasecmp().
Referenced by iconv_open(), and iconv_register_cspair().
|
static |
Definition at line 102 of file iconv.c.
References iconv_lock.
int iconv_open | ( | const char * | to, |
const char * | from, | ||
void ** | handle | ||
) |
Definition at line 236 of file iconv.c.
References cspfrom, cspto, and iconv_lookupcs().
Referenced by iconv_ucs_open(), and iconv_xlat16_open().
|
static |
Definition at line 127 of file iconv.c.
Referenced by iconv_converter_handler().
|
static |
Definition at line 181 of file iconv.c.
References iconv_lookupcs(), strcmp(), strcpy(), and strlen().
Referenced by iconv_add(), and iconv_sysctl_add().
|
static |
Definition at line 398 of file iconv.c.
References iconv_lock, iconv_lookupconv(), iconv_register_cspair(), iconv_unregister_cspair(), and strlen().
|
static |
Definition at line 355 of file iconv.c.
References iconv_lock, and strcpy().
|
static |
Definition at line 323 of file iconv.c.
References iconv_lock, name, and strlen().
|
static |
Definition at line 136 of file iconv.c.
Referenced by iconv_converter_handler().
|
static |
Definition at line 222 of file iconv.c.
Referenced by iconv_sysctl_add(), and TAILQ_HEAD().
MALLOC_DEFINE | ( | M_ICONV | , |
"iconv" | , | ||
"ICONV structures" | |||
) |
|
static |
MODULE_VERSION | ( | libiconv | , |
2 | |||
) |
SYSCTL_DECL | ( | _kern_iconv | ) |
SYSCTL_NODE | ( | _kern | , |
OID_AUTO | , | ||
iconv | , | ||
CTLFLAG_RW | , | ||
NULL | , | ||
"kernel iconv interface" | |||
) |
SYSCTL_PROC | ( | _kern_iconv | , |
OID_AUTO | , | ||
drvlist | , | ||
CTLFLAG_RD| | CTLTYPE_OPAQUE, | ||
NULL | , | ||
0 | , | ||
iconv_sysctl_drvlist | , | ||
" | S, | ||
xlat" | , | ||
"registered converters" | |||
) |
SYSCTL_PROC | ( | _kern_iconv | , |
OID_AUTO | , | ||
cslist | , | ||
CTLFLAG_RD| | CTLTYPE_OPAQUE, | ||
NULL | , | ||
0 | , | ||
iconv_sysctl_cslist | , | ||
" | S, | ||
xlat" | , | ||
"registered charset pairs" | |||
) |
SYSCTL_PROC | ( | _kern_iconv | , |
OID_AUTO | , | ||
add | , | ||
CTLFLAG_RW| | CTLTYPE_OPAQUE, | ||
NULL | , | ||
0 | , | ||
iconv_sysctl_add | , | ||
" | S, | ||
xlat" | , | ||
"register charset pair" | |||
) |
|
static |
Definition at line 67 of file iconv.c.
References iconv_lock, and iconv_unregister_cspair().
int towlower | ( | int | c, |
void * | handle | ||
) |
Definition at line 307 of file iconv.c.
Referenced by iconv_ucs_conv(), and iconv_xlat16_conv().
int towupper | ( | int | c, |
void * | handle | ||
) |
Definition at line 313 of file iconv.c.
Referenced by iconv_ucs_conv(), and iconv_xlat16_conv().
|
static |
Definition at line 50 of file iconv.c.
Referenced by iconv_converter_handler(), iconv_mod_handler(), iconv_sysctl_add(), iconv_sysctl_cslist(), iconv_sysctl_drvlist(), and TAILQ_HEAD().
|
static |