1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License").  You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22/*
23 * Copyright (c) 1996-1998 by Sun Microsystems, Inc.
24 * All rights reserved.
25 */
26
27#pragma ident	"%Z%%M%	%I%	%E% SMI"
28
29/*
30 * m_wio.h
31 *
32 * Wide I/O Library
33 *
34 * Copyright 1990, 1995 by Mortice Kern Systems Inc.  All rights reserved.
35 *
36 * $Header: /rd/h/rcs/m_wio.h 1.3 1995/10/02 15:36:15 ant Exp $
37 */
38
39#ifndef __M_WIO_H__
40#define	__M_WIO_H__
41
42#include <stdlib.h>
43#include <wchar.h>
44
45typedef struct {
46	/* Public. */
47	void	*object;	/* I/O object (normally a stream). */
48	int	(*get)(void *);	/* Get byte from input object. */
49	int	(*put)(int, void *);	/* Put byte to output object. */
50	int	(*unget)(int, void *);	/* Push byte onto input object. */
51	int	(*iseof)(void *);	/* Eof last read? */
52	int	(*iserror)(void *);	/* Error last read/write? */
53	void	(*reset)(void *);	/* Reset error flags. */
54
55	/* Private. */
56	int	_next;
57	int	_size;
58	unsigned char	_mb[MB_LEN_MAX];
59} t_wide_io;
60
61extern wint_t	m_wio_get(t_wide_io *);
62extern int	m_wio_put(wint_t, t_wide_io *);
63
64#endif /* __M_WIO_H__ */
65