Adjust the Makefile's to move the iconv files to libiconv, and add it to
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 18 Mar 2004 18:47:41 +0000 (18:47 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 18 Mar 2004 18:47:41 +0000 (18:47 +0000)
the module build.

sys/Makefile
sys/Makefile.modules
sys/conf/files
sys/conf/kmod.mk
sys/libkern/Makefile [deleted file]
sys/libkern/iconv.c [deleted file]
sys/libkern/iconv_converter_if.m [deleted file]
sys/libkern/iconv_xlat.c [deleted file]

index caccfb2..c5fad72 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/sys/Makefile,v 1.20.2.1 2000/07/10 08:22:34 obrien Exp $
-# $DragonFly: src/sys/Makefile,v 1.8 2003/10/24 17:22:15 dillon Exp $
+# $DragonFly: src/sys/Makefile,v 1.9 2004/03/18 18:47:38 dillon Exp $
 
 # This is the old aout only boot loader.
 .if    exists(${.CURDIR}/${MACHINE_ARCH}/boot) && ${OBJFORMAT} == "aout"
@@ -19,6 +19,7 @@ SUBDIR= boot
 SUBDIR+=${MODULES_OVERRIDE}
 .else
 SUBDIR+=bus checkpt crypto emulation dev kern net netgraph netproto vfs
+SUBDIR+=libiconv
 .endif
 .endif
 
index c431994..e4b77b2 100644 (file)
@@ -1,11 +1,12 @@
 # Makefile.modules - build the modules (executed from the modules: target
 # in Makefile).
 #
-# $DragonFly: src/sys/Makefile.modules,v 1.3 2003/10/24 17:22:15 dillon Exp $
+# $DragonFly: src/sys/Makefile.modules,v 1.4 2004/03/18 18:47:38 dillon Exp $
 .if defined(MODULES_OVERRIDE)
 SUBDIR=${MODULES_OVERRIDE}
 .else
 SUBDIR=bus checkpt crypto emulation dev kern net netgraph netproto vfs
+SUBDIR+=libiconv
 .endif
 
 .include <bsd.subdir.mk>
index ecc41b3..2009a71 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/sys/conf/files,v 1.340.2.137 2003/06/04 17:10:30 sam Exp $
-# $DragonFly: src/sys/conf/files,v 1.56 2004/03/12 22:38:14 joerg Exp $
+# $DragonFly: src/sys/conf/files,v 1.57 2004/03/18 18:47:39 dillon Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1287,9 +1287,9 @@ libkern/bcd.c                             standard
 libkern/crc32.c                                standard
 libkern/cmpdi2.c                       standard
 libkern/ucmpdi2.c                      standard
-libkern/iconv.c                                optional libiconv
-libkern/iconv_xlat.c                   optional libiconv
-libkern/iconv_converter_if.m           optional libiconv
+libiconv/iconv.c                       optional libiconv
+libiconv/iconv_xlat.c                  optional libiconv
+libiconv/iconv_converter_if.m          optional libiconv
 libkern/index.c                                standard
 libkern/inet_ntoa.c                    standard
 libkern/mcount.c                       optional        profiling-routine
index 8238e32..16f3017 100644 (file)
@@ -1,6 +1,6 @@
 #      From: @(#)bsd.prog.mk   5.26 (Berkeley) 6/25/91
 # $FreeBSD: src/sys/conf/kmod.mk,v 1.82.2.15 2003/02/10 13:11:50 nyan Exp $
-# $DragonFly: src/sys/conf/kmod.mk,v 1.11 2004/03/16 19:16:36 joerg Exp $
+# $DragonFly: src/sys/conf/kmod.mk,v 1.12 2004/03/18 18:47:39 dillon Exp $
 #
 # The include file <bsd.kmod.mk> handles installing Kernel Loadable Device
 # drivers (KLD's).
@@ -223,7 +223,7 @@ MFILES?= kern/bus_if.m kern/device_if.m bus/iicbus/iicbb_if.m \
     bus/ppbus/ppbus_if.m bus/smbus/smbus_if.m bus/usb/usb_if.m \
     dev/sound/pcm/ac97_if.m dev/sound/pcm/channel_if.m \
     dev/sound/pcm/feeder_if.m dev/sound/pcm/mixer_if.m \
-    libkern/iconv_converter_if.m dev/agp/agp_if.m opencrypto/crypto_if.m \
+    libiconv/iconv_converter_if.m dev/agp/agp_if.m opencrypto/crypto_if.m \
     bus/canbus/canbus_if.m
 
 .for _srcsrc in ${MFILES}
diff --git a/sys/libkern/Makefile b/sys/libkern/Makefile
deleted file mode 100644 (file)
index dc9cdab..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# $FreeBSD: src/sys/modules/libiconv/Makefile,v 1.4 2003/09/26 20:26:24 fjoe Exp $
-# $DragonFly: src/sys/libkern/Attic/Makefile,v 1.1 2004/03/16 07:45:59 hmp Exp $
-
-.PATH: ${.CURDIR}/../libkern ${.CURDIR}/../sys
-
-KMOD=  libiconv
-SRCS=  iconv.c iconv_xlat.c
-SRCS+= iconv.h 
-SRCS+= iconv_converter_if.c iconv_converter_if.h
-MFILES=        libkern/iconv_converter_if.m
-
-EXPORT_SYMS=   iconv_open      \
-               iconv_close     \
-               iconv_conv      \
-               iconv_conv_case \
-               iconv_convchr   \
-               iconv_convchr_case      \
-               iconv_convstr   \
-               iconv_convmem   \
-               iconv_vfs_refcount
-
-.include <bsd.kmod.mk>
diff --git a/sys/libkern/iconv.c b/sys/libkern/iconv.c
deleted file mode 100644 (file)
index 7670152..0000000
+++ /dev/null
@@ -1,480 +0,0 @@
-/*
- * Copyright (c) 2000-2001, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/libkern/iconv.c,v 1.1.2.1 2001/05/21 08:28:07 bp Exp $
- * $DragonFly: src/sys/libkern/Attic/iconv.c,v 1.2 2003/06/17 04:28:42 dillon Exp $
- */
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/iconv.h>
-#include <sys/malloc.h>
-
-#include "iconv_converter_if.h"
-
-SYSCTL_DECL(_kern_iconv);
-
-SYSCTL_NODE(_kern, OID_AUTO, iconv, CTLFLAG_RW, NULL, "kernel iconv interface");
-
-MALLOC_DEFINE(M_ICONV, "ICONV", "ICONV structures");
-MALLOC_DEFINE(M_ICONVDATA, "ICONV data", "ICONV data");
-
-MODULE_VERSION(libiconv, 1);
-
-#ifdef notnow
-/*
- * iconv converter instance
- */
-struct iconv_converter {
-       KOBJ_FIELDS;
-       void *                  c_data;
-};
-#endif
-
-struct sysctl_oid *iconv_oid_hook = &sysctl___kern_iconv;
-
-/*
- * List of loaded converters
- */
-static TAILQ_HEAD(iconv_converter_list, iconv_converter_class)
-    iconv_converters = TAILQ_HEAD_INITIALIZER(iconv_converters);
-
-/*
- * List of supported/loaded charsets pairs
- */
-static TAILQ_HEAD(, iconv_cspair)
-    iconv_cslist = TAILQ_HEAD_INITIALIZER(iconv_cslist);
-static int iconv_csid = 1;
-
-static char iconv_unicode_string[] = "unicode";        /* save eight bytes when possible */
-
-static void iconv_unregister_cspair(struct iconv_cspair *csp);
-
-static int
-iconv_mod_unload(void)
-{
-       struct iconv_cspair *csp;
-
-       while ((csp = TAILQ_FIRST(&iconv_cslist)) != NULL) {
-               if (csp->cp_refcount)
-                       return EBUSY;
-               iconv_unregister_cspair(csp);
-       }
-       return 0;
-}
-
-static int
-iconv_mod_handler(module_t mod, int type, void *data)
-{
-       int error;
-
-       switch (type) {
-           case MOD_LOAD:
-               error = 0;
-               break;
-           case MOD_UNLOAD:
-               error = iconv_mod_unload();
-               break;
-           default:
-               error = EINVAL;
-       }
-       return error;
-}
-
-static moduledata_t iconv_mod = {
-       "iconv", iconv_mod_handler, NULL
-};
-
-DECLARE_MODULE(iconv, iconv_mod, SI_SUB_DRIVERS, SI_ORDER_SECOND);
-
-static int
-iconv_register_converter(struct iconv_converter_class *dcp)
-{
-       kobj_class_compile((struct kobj_class*)dcp);
-       dcp->refs++;
-       TAILQ_INSERT_TAIL(&iconv_converters, dcp, cc_link);
-       return 0;
-}
-
-static int
-iconv_unregister_converter(struct iconv_converter_class *dcp)
-{
-       if (dcp->refs > 1) {
-               ICDEBUG("converter have %d referenses left\n", dcp->refs);
-               return EBUSY;
-       }
-       TAILQ_REMOVE(&iconv_converters, dcp, cc_link);
-       kobj_class_free((struct kobj_class*)dcp);
-       return 0;
-}
-
-static int
-iconv_lookupconv(const char *name, struct iconv_converter_class **dcpp)
-{
-       struct iconv_converter_class *dcp;
-
-       TAILQ_FOREACH(dcp, &iconv_converters, cc_link) {
-               if (name == NULL)
-                       continue;
-               if (strcmp(name, ICONV_CONVERTER_NAME(dcp)) == 0) {
-                       if (dcpp)
-                               *dcpp = dcp;
-                       return 0;
-               }
-       }
-       return ENOENT;
-}
-
-static int
-iconv_lookupcs(const char *to, const char *from, struct iconv_cspair **cspp)
-{
-       struct iconv_cspair *csp;
-
-       TAILQ_FOREACH(csp, &iconv_cslist, cp_link) {
-               if (strcmp(csp->cp_to, to) == 0 &&
-                   strcmp(csp->cp_from, from) == 0) {
-                       if (cspp)
-                               *cspp = csp;
-                       return 0;
-               }
-       }
-       return ENOENT;
-}
-
-static int
-iconv_register_cspair(const char *to, const char *from,
-       struct iconv_converter_class *dcp, void *data,
-       struct iconv_cspair **cspp)
-{
-       struct iconv_cspair *csp;
-       char *cp;
-       int csize, ucsto, ucsfrom;
-
-       if (iconv_lookupcs(to, from, NULL) == 0)
-               return EEXIST;
-       csize = sizeof(*csp);
-       ucsto = strcmp(to, iconv_unicode_string) == 0;
-       if (!ucsto)
-               csize += strlen(to) + 1;
-       ucsfrom = strcmp(from, iconv_unicode_string) == 0;
-       if (!ucsfrom)
-               csize += strlen(from) + 1;
-       csp = malloc(csize, M_ICONV, M_WAITOK);
-       bzero(csp, csize);
-       csp->cp_id = iconv_csid++;
-       csp->cp_dcp = dcp;
-       cp = (char*)(csp + 1);
-       if (!ucsto) {
-               strcpy(cp, to);
-               csp->cp_to = cp;
-               cp += strlen(cp) + 1;
-       } else
-               csp->cp_to = iconv_unicode_string;
-       if (!ucsfrom) {
-               strcpy(cp, from);
-               csp->cp_from = cp;
-       } else
-               csp->cp_from = iconv_unicode_string;
-       csp->cp_data = data;
-
-       TAILQ_INSERT_TAIL(&iconv_cslist, csp, cp_link);
-       *cspp = csp;
-       return 0;
-}
-
-static void
-iconv_unregister_cspair(struct iconv_cspair *csp)
-{
-       TAILQ_REMOVE(&iconv_cslist, csp, cp_link);
-       if (csp->cp_data)
-               free(csp->cp_data, M_ICONVDATA);
-       free(csp, M_ICONV);
-}
-
-/*
- * Lookup and create an instance of converter.
- * Currently this layer didn't have associated 'instance' structure
- * to avoid unnesessary memory allocation.
- */
-int
-iconv_open(const char *to, const char *from, void **handle)
-{
-       struct iconv_cspair *csp, *cspfrom, *cspto;
-       struct iconv_converter_class *dcp;
-       const char *cnvname;
-       int error;
-
-       /*
-        * First, lookup fully qualified cspairs
-        */
-       error = iconv_lookupcs(to, from, &csp);
-       if (error == 0)
-               return ICONV_CONVERTER_OPEN(csp->cp_dcp, csp, NULL, handle);
-
-       /*
-        * Well, nothing found. Now try to construct a composite conversion
-        * ToDo: add a 'capability' field to converter
-        */
-       TAILQ_FOREACH(dcp, &iconv_converters, cc_link) {
-               cnvname = ICONV_CONVERTER_NAME(dcp);
-               if (cnvname == NULL)
-                       continue;
-               error = iconv_lookupcs(cnvname, from, &cspfrom);
-               if (error)
-                       continue;
-               error = iconv_lookupcs(to, cnvname, &cspto);
-               if (error)
-                       continue;
-               /*
-                * Fine, we're found a pair which can be combined together
-                */
-               return ICONV_CONVERTER_OPEN(dcp, cspto, cspfrom, handle);
-       }
-       return ENOENT;
-}
-
-int
-iconv_close(void *handle)
-{
-       return ICONV_CONVERTER_CLOSE(handle);
-}
-
-int
-iconv_conv(void *handle, const char **inbuf,
-       size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
-{
-       return ICONV_CONVERTER_CONV(handle, inbuf, inbytesleft, outbuf, outbytesleft);
-}
-
-/*
- * Give a list of loaded converters. Each name terminated with 0.
- * An empty string terminates the list.
- */
-static int
-iconv_sysctl_drvlist(SYSCTL_HANDLER_ARGS)
-{
-       struct iconv_converter_class *dcp;
-       const char *name;
-       char spc;
-       int error;
-
-       error = 0;
-
-       TAILQ_FOREACH(dcp, &iconv_converters, cc_link) {
-               name = ICONV_CONVERTER_NAME(dcp);
-               if (name == NULL)
-                       continue;
-               error = SYSCTL_OUT(req, name, strlen(name) + 1);
-               if (error)
-                       break;
-       }
-       if (error)
-               return error;
-       spc = 0;
-       error = SYSCTL_OUT(req, &spc, sizeof(spc));
-       return error;
-}
-
-SYSCTL_PROC(_kern_iconv, OID_AUTO, drvlist, CTLFLAG_RD | CTLTYPE_OPAQUE,
-           NULL, 0, iconv_sysctl_drvlist, "S,xlat", "registered converters");
-
-/*
- * List all available charset pairs.
- */
-static int
-iconv_sysctl_cslist(SYSCTL_HANDLER_ARGS)
-{
-       struct iconv_cspair *csp;
-       struct iconv_cspair_info csi;
-       int error;
-
-       error = 0;
-       bzero(&csi, sizeof(csi));
-       csi.cs_version = ICONV_CSPAIR_INFO_VER;
-
-       TAILQ_FOREACH(csp, &iconv_cslist, cp_link) {
-               csi.cs_id = csp->cp_id;
-               csi.cs_refcount = csp->cp_refcount;
-               csi.cs_base = csp->cp_base ? csp->cp_base->cp_id : 0;
-               strcpy(csi.cs_to, csp->cp_to);
-               strcpy(csi.cs_from, csp->cp_from);
-               error = SYSCTL_OUT(req, &csi, sizeof(csi));
-               if (error)
-                       break;
-       }
-       return error;
-}
-
-SYSCTL_PROC(_kern_iconv, OID_AUTO, cslist, CTLFLAG_RD | CTLTYPE_OPAQUE,
-           NULL, 0, iconv_sysctl_cslist, "S,xlat", "registered charset pairs");
-
-/*
- * Add new charset pair
- */
-static int
-iconv_sysctl_add(SYSCTL_HANDLER_ARGS)
-{
-       struct iconv_converter_class *dcp;
-       struct iconv_cspair *csp;
-       struct iconv_add_in din;
-       struct iconv_add_out dout;
-       int error;
-
-       error = SYSCTL_IN(req, &din, sizeof(din));
-       if (error)
-               return error;
-       if (din.ia_version != ICONV_ADD_VER)
-               return EINVAL;
-       if (din.ia_datalen > ICONV_CSMAXDATALEN)
-               return EINVAL;
-       if (iconv_lookupconv(din.ia_converter, &dcp) != 0)
-               return EINVAL;
-       error = iconv_register_cspair(din.ia_to, din.ia_from, dcp, NULL, &csp);
-       if (error)
-               return error;
-       if (din.ia_datalen) {
-               csp->cp_data = malloc(din.ia_datalen, M_ICONVDATA, M_WAITOK);
-               error = copyin(din.ia_data, csp->cp_data, din.ia_datalen);
-               if (error)
-                       goto bad;
-       }
-       dout.ia_csid = csp->cp_id;
-       error = SYSCTL_OUT(req, &dout, sizeof(dout));
-       if (error)
-               goto bad;
-       return 0;
-bad:
-       iconv_unregister_cspair(csp);
-       return error;
-}
-
-SYSCTL_PROC(_kern_iconv, OID_AUTO, add, CTLFLAG_RW | CTLTYPE_OPAQUE,
-           NULL, 0, iconv_sysctl_add, "S,xlat", "register charset pair");
-
-/*
- * Default stubs for converters
- */
-int
-iconv_converter_initstub(struct iconv_converter_class *dp)
-{
-       return 0;
-}
-
-int
-iconv_converter_donestub(struct iconv_converter_class *dp)
-{
-       return 0;
-}
-
-int
-iconv_converter_handler(module_t mod, int type, void *data)
-{
-       struct iconv_converter_class *dcp = data;
-       int error;
-
-       switch (type) {
-           case MOD_LOAD:
-               error = iconv_register_converter(dcp);
-               if (error)
-                       break;
-               error = ICONV_CONVERTER_INIT(dcp);
-               if (error)
-                       iconv_unregister_converter(dcp);
-               break;
-           case MOD_UNLOAD:
-               ICONV_CONVERTER_DONE(dcp);
-               error = iconv_unregister_converter(dcp);
-               break;
-           default:
-               error = EINVAL;
-       }
-       return error;
-}
-
-/*
- * Common used functions
- */
-char *
-iconv_convstr(void *handle, char *dst, const char *src)
-{
-       char *p = dst;
-       int inlen, outlen, error;
-
-       if (handle == NULL) {
-               strcpy(dst, src);
-               return dst;
-       }
-       inlen = outlen = strlen(src);
-       error = iconv_conv(handle, NULL, NULL, &p, &outlen);
-       if (error)
-               return NULL;
-       error = iconv_conv(handle, &src, &inlen, &p, &outlen);
-       if (error)
-               return NULL;
-       *p = 0;
-       return dst;
-}
-
-void *
-iconv_convmem(void *handle, void *dst, const void *src, int size)
-{
-       const char *s = src;
-       char *d = dst;
-       int inlen, outlen, error;
-
-       if (size == 0)
-               return dst;
-       if (handle == NULL) {
-               memcpy(dst, src, size);
-               return dst;
-       }
-       inlen = outlen = size;
-       error = iconv_conv(handle, NULL, NULL, &d, &outlen);
-       if (error)
-               return NULL;
-       error = iconv_conv(handle, &s, &inlen, &d, &outlen);
-       if (error)
-               return NULL;
-       return dst;
-}
-
-int
-iconv_lookupcp(char **cpp, const char *s)
-{
-       if (cpp == NULL) {
-               ICDEBUG("warning a NULL list passed\n");
-               return ENOENT;
-       }
-       for (; *cpp; cpp++)
-               if (strcmp(*cpp, s) == 0)
-                       return 0;
-       return ENOENT;
-}
diff --git a/sys/libkern/iconv_converter_if.m b/sys/libkern/iconv_converter_if.m
deleted file mode 100644 (file)
index 957c057..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# Copyright (c) 2000-2001, Boris Popov
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. All advertising materials mentioning features or use of this software
-#    must display the following acknowledgement:
-#    This product includes software developed by Boris Popov.
-# 4. Neither the name of the author nor the names of any co-contributors
-#    may be used to endorse or promote products derived from this software
-#    without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-# $FreeBSD: src/sys/libkern/iconv_converter_if.m,v 1.1.2.1 2001/05/21 08:28:07 bp Exp $
-# $DragonFly: src/sys/libkern/Attic/iconv_converter_if.m,v 1.2 2003/06/17 04:28:42 dillon Exp $
-#
-
-#include <sys/iconv.h>
-
-INTERFACE iconv_converter;
-
-STATICMETHOD int open {
-       struct iconv_converter_class *dcp;
-       struct iconv_cspair *cspto;
-       struct iconv_cspair *cspfrom;
-       void **hpp;
-};
-
-METHOD int close {
-       void *handle;
-};
-
-METHOD int conv {
-       void *handle;
-       const char **inbuf;
-        size_t *inbytesleft;
-       char **outbuf;
-       size_t *outbytesleft;
-};
-
-STATICMETHOD int init {
-       struct iconv_converter_class *dcp;
-} DEFAULT iconv_converter_initstub;
-
-STATICMETHOD void done {
-       struct iconv_converter_class *dcp;
-} DEFAULT iconv_converter_donestub;
-
-STATICMETHOD const char * name {
-       struct iconv_converter_class *dcp;
-};
diff --git a/sys/libkern/iconv_xlat.c b/sys/libkern/iconv_xlat.c
deleted file mode 100644 (file)
index 651c97b..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2000-2001, Boris Popov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    This product includes software developed by Boris Popov.
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/libkern/iconv_xlat.c,v 1.1.2.1 2001/05/21 08:28:07 bp Exp $
- * $DragonFly: src/sys/libkern/Attic/iconv_xlat.c,v 1.2 2003/06/17 04:28:42 dillon Exp $
- */
-#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"
-
-/*
- * "XLAT" converter
- */
-
-#ifdef MODULE_DEPEND
-MODULE_DEPEND(iconv_xlat, libiconv, 1, 1, 1);
-#endif
-
-/*
- * XLAT converter instance
- */
-struct iconv_xlat {
-       KOBJ_FIELDS;
-       u_char *                d_table;
-       struct iconv_cspair *   d_csp;
-};
-
-static int
-iconv_xlat_open(struct iconv_converter_class *dcp,
-       struct iconv_cspair *csp, struct iconv_cspair *cspf, void **dpp)
-{
-       struct iconv_xlat *dp;
-
-       dp = (struct iconv_xlat *)kobj_create((struct kobj_class*)dcp, M_ICONV, M_WAITOK);
-       dp->d_table = csp->cp_data;
-       dp->d_csp = csp;
-       csp->cp_refcount++;
-       *dpp = (void*)dp;
-       return 0;
-}
-
-static int
-iconv_xlat_close(void *data)
-{
-       struct iconv_xlat *dp = data;
-
-       dp->d_csp->cp_refcount--;
-       kobj_delete((struct kobj*)data, M_ICONV);
-       return 0;
-}
-
-static int
-iconv_xlat_conv(void *d2p, const char **inbuf,
-       size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
-{
-       struct iconv_xlat *dp = (struct iconv_xlat*)d2p;
-       const char *src;
-       char *dst;
-       int n, r;
-
-       if (inbuf == NULL || *inbuf == NULL || outbuf == NULL || *outbuf == NULL)
-               return 0;
-       r = n = min(*inbytesleft, *outbytesleft);
-       src = *inbuf;
-       dst = *outbuf;
-       while(r--)
-               *dst++ = dp->d_table[(u_char)*src++];
-       *inbuf += n;
-       *outbuf += n;
-       *inbytesleft += n;
-       *outbytesleft -= n;
-       return 0;
-}
-
-static const char *
-iconv_xlat_name(struct iconv_converter_class *dcp)
-{
-       return "xlat";
-}
-
-static kobj_method_t iconv_xlat_methods[] = {
-       KOBJMETHOD(iconv_converter_open,        iconv_xlat_open),
-       KOBJMETHOD(iconv_converter_close,       iconv_xlat_close),
-       KOBJMETHOD(iconv_converter_conv,        iconv_xlat_conv),
-#if 0
-       KOBJMETHOD(iconv_converter_init,        iconv_xlat_init),
-       KOBJMETHOD(iconv_converter_done,        iconv_xlat_done),
-#endif
-       KOBJMETHOD(iconv_converter_name,        iconv_xlat_name),
-       {0, 0}
-};
-
-KICONV_CONVERTER(xlat, sizeof(struct iconv_xlat));