FreeBSD kernel libkern code
iconv_ucs.c File Reference
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/systm.h>
#include <sys/malloc.h>
#include <sys/iconv.h>
#include "iconv_converter_if.h"
Include dependency graph for iconv_ucs.c:

Go to the source code of this file.

Data Structures

struct  iconv_ucs
 

Macros

#define KICONV_UCS_COMBINE   0x1
 
#define KICONV_UCS_FROM_UTF8   0x2
 
#define KICONV_UCS_TO_UTF8   0x4
 
#define KICONV_UCS_FROM_LE   0x8
 
#define KICONV_UCS_TO_LE   0x10
 
#define KICONV_UCS_FROM_UTF16   0x20
 
#define KICONV_UCS_TO_UTF16   0x40
 
#define KICONV_UCS_UCS4   0x80
 
#define ENCODING_UTF16   "UTF-16BE"
 
#define ENCODING_UTF8   "UTF-8"
 

Functions

 __FBSDID ("$BSDSUniX$")
 
static uint32_t utf8_to_ucs4 (const char *src, size_t *utf8width, size_t srclen)
 
static u_char * ucs4_to_utf8 (uint32_t ucs4, char *dst, size_t *utf8width, size_t dstlen)
 
static uint32_t encode_surrogate (uint32_t code)
 
static uint32_t decode_surrogate (const u_char *ucs)
 
static int iconv_ucs_open (struct iconv_converter_class *dcp, struct iconv_cspair *csp, struct iconv_cspair *cspf, void **dpp)
 
static int iconv_ucs_close (void *data)
 
static int iconv_ucs_conv (void *d2p, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft, int convchar, int casetype)
 
static int iconv_ucs_init (struct iconv_converter_class *dcp)
 
static int iconv_ucs_done (struct iconv_converter_class *dcp)
 
static const char * iconv_ucs_name (struct iconv_converter_class *dcp)
 
 KICONV_CONVERTER (ucs, sizeof(struct iconv_ucs))
 
static uint32_t encode_surrogate (register uint32_t code)
 
static uint32_t decode_surrogate (register const u_char *ucs)
 

Variables

struct {
   const char *   name
 
   int   from_flag
 
   int   to_flag
 
unicode_family []
 
static kobj_method_t iconv_ucs_methods []
 

Macro Definition Documentation

#define ENCODING_UTF16   "UTF-16BE"

Definition at line 51 of file iconv_ucs.c.

Referenced by iconv_ucs_open().

#define ENCODING_UTF8   "UTF-8"

Definition at line 52 of file iconv_ucs.c.

Referenced by iconv_ucs_init(), and iconv_ucs_open().

#define KICONV_UCS_COMBINE   0x1

Definition at line 42 of file iconv_ucs.c.

Referenced by iconv_ucs_conv(), and iconv_ucs_open().

#define KICONV_UCS_FROM_LE   0x8

Definition at line 45 of file iconv_ucs.c.

Referenced by iconv_ucs_close(), iconv_ucs_conv(), and iconv_ucs_open().

#define KICONV_UCS_FROM_UTF16   0x20

Definition at line 47 of file iconv_ucs.c.

Referenced by iconv_ucs_conv().

#define KICONV_UCS_FROM_UTF8   0x2

Definition at line 43 of file iconv_ucs.c.

Referenced by iconv_ucs_close(), iconv_ucs_conv(), and iconv_ucs_open().

#define KICONV_UCS_TO_LE   0x10

Definition at line 46 of file iconv_ucs.c.

Referenced by iconv_ucs_close(), iconv_ucs_conv(), and iconv_ucs_open().

#define KICONV_UCS_TO_UTF16   0x40

Definition at line 48 of file iconv_ucs.c.

Referenced by iconv_ucs_conv().

#define KICONV_UCS_TO_UTF8   0x4

Definition at line 44 of file iconv_ucs.c.

Referenced by iconv_ucs_close(), iconv_ucs_conv(), and iconv_ucs_open().

#define KICONV_UCS_UCS4   0x80

Definition at line 49 of file iconv_ucs.c.

Referenced by iconv_ucs_conv(), and iconv_ucs_open().

Function Documentation

__FBSDID ( "$BSDSUniX$"  )
static uint32_t decode_surrogate ( const u_char *  ucs)
static

Referenced by iconv_ucs_conv().

Here is the caller graph for this function:

static uint32_t decode_surrogate ( register const u_char *  ucs)
static

Definition at line 535 of file iconv_ucs.c.

static uint32_t encode_surrogate ( uint32_t  code)
static

Referenced by iconv_ucs_conv().

Here is the caller graph for this function:

static uint32_t encode_surrogate ( register uint32_t  code)
static

Definition at line 528 of file iconv_ucs.c.

static int iconv_ucs_close ( void *  data)
static
static int iconv_ucs_conv ( void *  d2p,
const char **  inbuf,
size_t *  inbytesleft,
char **  outbuf,
size_t *  outbytesleft,
int  convchar,
int  casetype 
)
static
static int iconv_ucs_done ( struct iconv_converter_class *  dcp)
static

Definition at line 388 of file iconv_ucs.c.

static int iconv_ucs_init ( struct iconv_converter_class *  dcp)
static

Definition at line 374 of file iconv_ucs.c.

References ENCODING_UTF8, and iconv_add().

Here is the call graph for this function:

static const char* iconv_ucs_name ( struct iconv_converter_class *  dcp)
static

Definition at line 394 of file iconv_ucs.c.

static int iconv_ucs_open ( struct iconv_converter_class *  dcp,
struct iconv_cspair *  csp,
struct iconv_cspair *  cspf,
void **  dpp 
)
static
KICONV_CONVERTER ( ucs  ,
sizeof(struct iconv_ucs  
)
static u_char * ucs4_to_utf8 ( uint32_t  ucs4,
char *  dst,
size_t *  utf8width,
size_t  dstlen 
)
static

Definition at line 484 of file iconv_ucs.c.

Referenced by iconv_ucs_conv().

Here is the caller graph for this function:

static uint32_t utf8_to_ucs4 ( const char *  src,
size_t *  utf8width,
size_t  srclen 
)
static

Definition at line 412 of file iconv_ucs.c.

Referenced by iconv_ucs_conv().

Here is the caller graph for this function:

Variable Documentation

int from_flag

Definition at line 56 of file iconv_ucs.c.

kobj_method_t iconv_ucs_methods[]
static
Initial value:
= {
KOBJMETHOD(iconv_converter_open, iconv_ucs_open),
KOBJMETHOD(iconv_converter_close, iconv_ucs_close),
KOBJMETHOD(iconv_converter_conv, iconv_ucs_conv),
KOBJMETHOD(iconv_converter_init, iconv_ucs_init),
KOBJMETHOD(iconv_converter_done, iconv_ucs_done),
KOBJMETHOD(iconv_converter_name, iconv_ucs_name),
{0, 0}
}
static int iconv_ucs_init(struct iconv_converter_class *dcp)
Definition: iconv_ucs.c:374
static int iconv_ucs_conv(void *d2p, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft, int convchar, int casetype)
Definition: iconv_ucs.c:167
static int iconv_ucs_close(void *data)
Definition: iconv_ucs.c:146
static int iconv_ucs_done(struct iconv_converter_class *dcp)
Definition: iconv_ucs.c:388
static int iconv_ucs_open(struct iconv_converter_class *dcp, struct iconv_cspair *csp, struct iconv_cspair *cspf, void **dpp)
Definition: iconv_ucs.c:89
static const char * iconv_ucs_name(struct iconv_converter_class *dcp)
Definition: iconv_ucs.c:394

Definition at line 399 of file iconv_ucs.c.

const char* name

Definition at line 55 of file iconv_ucs.c.

Referenced by iconv_ucs_open().

int to_flag

Definition at line 56 of file iconv_ucs.c.

struct { ... } unicode_family[]
Initial value:
= {
{ NULL, 0, 0 }
}
#define KICONV_UCS_FROM_UTF16
Definition: iconv_ucs.c:47
#define KICONV_UCS_FROM_UTF8
Definition: iconv_ucs.c:43
#define KICONV_UCS_TO_LE
Definition: iconv_ucs.c:46
#define KICONV_UCS_FROM_LE
Definition: iconv_ucs.c:45
#define KICONV_UCS_TO_UTF16
Definition: iconv_ucs.c:48
#define KICONV_UCS_TO_UTF8
Definition: iconv_ucs.c:44

Referenced by iconv_ucs_open().