1258283Speter/*- 2258283Speter * Copyright (c) 2013 Peter Wemm 3258283Speter * All rights reserved. 4258283Speter * 5258283Speter * Redistribution and use in source and binary forms, with or without 6258283Speter * modification, are permitted provided that the following conditions 7258283Speter * are met: 8258283Speter * 1. Redistributions of source code must retain the above copyright 9258283Speter * notice, this list of conditions and the following disclaimer. 10258283Speter * 2. Redistributions in binary form must reproduce the above copyright 11258283Speter * notice, this list of conditions and the following disclaimer in the 12258283Speter * documentation and/or other materials provided with the distribution. 13258283Speter * 14258283Speter * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15258283Speter * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16258283Speter * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17258283Speter * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18258283Speter * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19258283Speter * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20258283Speter * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21258283Speter * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22258283Speter * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23258283Speter * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24258283Speter * SUCH DAMAGE. 25258283Speter * 26258283Speter * $FreeBSD$ 27258283Speter */ 28258283Speter 29258283Speter/* 30258283Speter * These are ABI implementations for when the raw iconv_* symbol 31258283Speter * space was exposed via libc.so.7 in its early life. This is 32258283Speter * a transition aide, these wrappers will not normally ever be 33258283Speter * executed except via __sym_compat() references. 34258283Speter */ 35258283Speter#include <sys/types.h> 36258283Speter#include <iconv.h> 37258283Speter#include "iconv-internal.h" 38258283Speter 39258283Spetersize_t 40281550Stijl__iconv_compat(iconv_t a, char ** b, size_t * c, char ** d, 41258283Speter size_t * e, __uint32_t f, size_t *g) 42258283Speter{ 43258283Speter return __bsd___iconv(a, b, c, d, e, f, g); 44258283Speter} 45258283Speter 46258283Spetervoid 47258283Speter__iconv_free_list_compat(char ** a, size_t b) 48258283Speter{ 49258283Speter __bsd___iconv_free_list(a, b); 50258283Speter} 51258283Speter 52258283Speterint 53258283Speter__iconv_get_list_compat(char ***a, size_t *b, __iconv_bool c) 54258283Speter{ 55258283Speter return __bsd___iconv_get_list(a, b, c); 56258283Speter} 57258283Speter 58258283Spetersize_t 59281550Stijliconv_compat(iconv_t a, char ** __restrict b, 60258283Speter size_t * __restrict c, char ** __restrict d, 61258283Speter size_t * __restrict e) 62258283Speter{ 63258283Speter return __bsd_iconv(a, b, c, d, e); 64258283Speter} 65258283Speter 66258283Speterconst char * 67258283Spetericonv_canonicalize_compat(const char *a) 68258283Speter{ 69258283Speter return __bsd_iconv_canonicalize(a); 70258283Speter} 71258283Speter 72258283Speterint 73258283Spetericonv_close_compat(iconv_t a) 74258283Speter{ 75258283Speter return __bsd_iconv_close(a); 76258283Speter} 77258283Speter 78258283Spetericonv_t 79258283Spetericonv_open_compat(const char *a, const char *b) 80258283Speter{ 81258283Speter return __bsd_iconv_open(a, b); 82258283Speter} 83258283Speter 84258283Speterint 85258283Spetericonv_open_into_compat(const char *a, const char *b, iconv_allocation_t *c) 86258283Speter{ 87258283Speter return __bsd_iconv_open_into(a, b, c); 88258283Speter} 89258283Speter 90258283Spetervoid 91258283Spetericonv_set_relocation_prefix_compat(const char *a, const char *b) 92258283Speter{ 93258283Speter return __bsd_iconv_set_relocation_prefix(a, b); 94258283Speter} 95258283Speter 96258283Speterint 97258283Spetericonvctl_compat(iconv_t a, int b, void *c) 98258283Speter{ 99258283Speter return __bsd_iconvctl(a, b, c); 100258283Speter} 101258283Speter 102258283Spetervoid 103258283Spetericonvlist_compat(int (*a) (unsigned int, const char * const *, void *), void *b) 104258283Speter{ 105258283Speter return __bsd_iconvlist(a, b); 106258283Speter} 107258283Speter 108258283Speterint _iconv_version_compat = 0x0108; /* Magic - not used */ 109258283Speter 110258283Speter__sym_compat(__iconv, __iconv_compat, FBSD_1.2); 111258283Speter__sym_compat(__iconv_free_list, __iconv_free_list_compat, FBSD_1.2); 112258283Speter__sym_compat(__iconv_get_list, __iconv_get_list_compat, FBSD_1.2); 113258283Speter__sym_compat(_iconv_version, _iconv_version_compat, FBSD_1.3); 114258283Speter__sym_compat(iconv, iconv_compat, FBSD_1.3); 115258283Speter__sym_compat(iconv_canonicalize, iconv_canonicalize_compat, FBSD_1.2); 116258283Speter__sym_compat(iconv_close, iconv_close_compat, FBSD_1.3); 117258283Speter__sym_compat(iconv_open, iconv_open_compat, FBSD_1.3); 118258283Speter__sym_compat(iconv_open_into, iconv_open_into_compat, FBSD_1.3); 119258283Speter__sym_compat(iconv_set_relocation_prefix, iconv_set_relocation_prefix_compat, FBSD_1.3); 120258283Speter__sym_compat(iconvctl, iconvctl_compat, FBSD_1.3); 121258283Speter__sym_compat(iconvlist, iconvlist_compat, FBSD_1.3); 122