citrus_iconv_std_local.h revision 331722
1/* $FreeBSD: stable/11/lib/libiconv_modules/iconv_std/citrus_iconv_std_local.h 331722 2018-03-29 02:50:57Z eadler $ */
2/*	$NetBSD: citrus_iconv_std_local.h,v 1.2 2003/07/01 09:42:16 tshiozak Exp $	*/
3
4/*-
5 * Copyright (c)2003 Citrus Project,
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 *    notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 *    notice, this list of conditions and the following disclaimer in the
15 *    documentation and/or other materials provided with the distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 */
29
30#ifndef _CITRUS_ICONV_STD_LOCAL_H_
31#define _CITRUS_ICONV_STD_LOCAL_H_
32
33/*
34 * encoding
35 */
36struct _citrus_iconv_std_encoding {
37	struct _citrus_stdenc	*se_handle;
38	void			*se_ps;
39	void			*se_pssaved;
40};
41
42/*
43 * dst
44 */
45struct _citrus_iconv_std_dst {
46	TAILQ_ENTRY(_citrus_iconv_std_dst)	 sd_entry;
47	struct _citrus_csmapper			*sd_mapper;
48	_citrus_csid_t				 sd_csid;
49	unsigned long				 sd_norm;
50};
51TAILQ_HEAD(_citrus_iconv_std_dst_list, _citrus_iconv_std_dst);
52
53/*
54 * src
55 */
56struct _citrus_iconv_std_src {
57	TAILQ_ENTRY(_citrus_iconv_std_src)	 ss_entry;
58	struct _citrus_iconv_std_dst_list	 ss_dsts;
59	_citrus_csid_t				 ss_csid;
60};
61TAILQ_HEAD(_citrus_iconv_std_src_list, _citrus_iconv_std_src);
62
63/*
64 * iconv_std handle
65 */
66struct _citrus_iconv_std_shared {
67	struct _citrus_stdenc			*is_dst_encoding;
68	struct _citrus_stdenc			*is_src_encoding;
69	struct _citrus_iconv_std_src_list	 is_srcs;
70	_citrus_wc_t				 is_invalid;
71	int					 is_use_invalid;
72};
73
74/*
75 * iconv_std context
76 */
77struct _citrus_iconv_std_context {
78	struct _citrus_iconv_std_encoding	 sc_dst_encoding;
79	struct _citrus_iconv_std_encoding	 sc_src_encoding;
80};
81
82#endif
83