OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [newlib-1.18.0/] [newlib-1.18.0-or32-1.0rc2/] [newlib/] [libc/] [sys/] [linux/] [include/] [gconv.h] - Diff between revs 207 and 520

Only display areas with differences | Details | Blame | View Log

Rev 207 Rev 520
/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
   This file is part of the GNU C Library.
   This file is part of the GNU C Library.
 
 
   The GNU C Library is free software; you can redistribute it and/or
   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.
   version 2.1 of the License, or (at your option) any later version.
 
 
   The GNU C Library is distributed in the hope that it will be useful,
   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.
   Lesser General Public License for more details.
 
 
   You should have received a copy of the GNU Lesser General Public
   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, write to the Free
   License along with the GNU C Library; if not, write to the Free
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   02111-1307 USA.  */
   02111-1307 USA.  */
 
 
/* This header provides no interface for a user to the internals of
/* This header provides no interface for a user to the internals of
   the gconv implementation in the libc.  Therefore there is no use
   the gconv implementation in the libc.  Therefore there is no use
   for these definitions beside for writing additional gconv modules.  */
   for these definitions beside for writing additional gconv modules.  */
 
 
#ifndef _GCONV_H
#ifndef _GCONV_H
#define _GCONV_H        1
#define _GCONV_H        1
 
 
#include <features.h>
#include <features.h>
#define __need_mbstate_t
#define __need_mbstate_t
#include <wchar.h>
#include <wchar.h>
#define __need_size_t
#define __need_size_t
#define __need_wchar_t
#define __need_wchar_t
#include <stddef.h>
#include <stddef.h>
 
 
/* ISO 10646 value used to signal invalid value.  */
/* ISO 10646 value used to signal invalid value.  */
#define __UNKNOWN_10646_CHAR    ((wchar_t) 0xfffd)
#define __UNKNOWN_10646_CHAR    ((wchar_t) 0xfffd)
 
 
/* Error codes for gconv functions.  */
/* Error codes for gconv functions.  */
enum
enum
{
{
  __GCONV_OK = 0,
  __GCONV_OK = 0,
  __GCONV_NOCONV,
  __GCONV_NOCONV,
  __GCONV_NODB,
  __GCONV_NODB,
  __GCONV_NOMEM,
  __GCONV_NOMEM,
 
 
  __GCONV_EMPTY_INPUT,
  __GCONV_EMPTY_INPUT,
  __GCONV_FULL_OUTPUT,
  __GCONV_FULL_OUTPUT,
  __GCONV_ILLEGAL_INPUT,
  __GCONV_ILLEGAL_INPUT,
  __GCONV_INCOMPLETE_INPUT,
  __GCONV_INCOMPLETE_INPUT,
 
 
  __GCONV_ILLEGAL_DESCRIPTOR,
  __GCONV_ILLEGAL_DESCRIPTOR,
  __GCONV_INTERNAL_ERROR
  __GCONV_INTERNAL_ERROR
};
};
 
 
 
 
/* Flags the `__gconv_open' function can set.  */
/* Flags the `__gconv_open' function can set.  */
enum
enum
{
{
  __GCONV_IS_LAST = 0x0001,
  __GCONV_IS_LAST = 0x0001,
  __GCONV_IGNORE_ERRORS = 0x0002
  __GCONV_IGNORE_ERRORS = 0x0002
};
};
 
 
 
 
/* Forward declarations.  */
/* Forward declarations.  */
struct __gconv_step;
struct __gconv_step;
struct __gconv_step_data;
struct __gconv_step_data;
struct __gconv_loaded_object;
struct __gconv_loaded_object;
struct __gconv_trans_data;
struct __gconv_trans_data;
 
 
 
 
/* Type of a conversion function.  */
/* Type of a conversion function.  */
typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
                            __const unsigned char **, __const unsigned char *,
                            __const unsigned char **, __const unsigned char *,
                            unsigned char **, size_t *, int, int);
                            unsigned char **, size_t *, int, int);
 
 
/* Constructor and destructor for local data for conversion step.  */
/* Constructor and destructor for local data for conversion step.  */
typedef int (*__gconv_init_fct) (struct __gconv_step *);
typedef int (*__gconv_init_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);
 
 
 
 
/* Type of a transliteration/transscription function.  */
/* Type of a transliteration/transscription function.  */
typedef int (*__gconv_trans_fct) (struct __gconv_step *,
typedef int (*__gconv_trans_fct) (struct __gconv_step *,
                                  struct __gconv_step_data *, void *,
                                  struct __gconv_step_data *, void *,
                                  __const unsigned char *,
                                  __const unsigned char *,
                                  __const unsigned char **,
                                  __const unsigned char **,
                                  __const unsigned char *, unsigned char **,
                                  __const unsigned char *, unsigned char **,
                                  size_t *);
                                  size_t *);
 
 
/* Function to call to provide transliteration module with context.  */
/* Function to call to provide transliteration module with context.  */
typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
                                          __const unsigned char *,
                                          __const unsigned char *,
                                          unsigned char *, unsigned char *);
                                          unsigned char *, unsigned char *);
 
 
/* Function to query module about supported encoded character sets.  */
/* Function to query module about supported encoded character sets.  */
typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
                                        size_t *);
                                        size_t *);
 
 
/* Constructor and destructor for local data for transliteration.  */
/* Constructor and destructor for local data for transliteration.  */
typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef void (*__gconv_trans_end_fct) (void *);
typedef void (*__gconv_trans_end_fct) (void *);
 
 
struct __gconv_trans_data
struct __gconv_trans_data
{
{
  /* Transliteration/Transscription function.  */
  /* Transliteration/Transscription function.  */
  __gconv_trans_fct __trans_fct;
  __gconv_trans_fct __trans_fct;
  __gconv_trans_context_fct __trans_context_fct;
  __gconv_trans_context_fct __trans_context_fct;
  __gconv_trans_end_fct __trans_end_fct;
  __gconv_trans_end_fct __trans_end_fct;
  void *__data;
  void *__data;
  struct __gconv_trans_data *__next;
  struct __gconv_trans_data *__next;
};
};
 
 
 
 
/* Description of a conversion step.  */
/* Description of a conversion step.  */
struct __gconv_step
struct __gconv_step
{
{
  struct __gconv_loaded_object *__shlib_handle;
  struct __gconv_loaded_object *__shlib_handle;
  __const char *__modname;
  __const char *__modname;
 
 
  int __counter;
  int __counter;
 
 
  char *__from_name;
  char *__from_name;
  char *__to_name;
  char *__to_name;
 
 
  __gconv_fct __fct;
  __gconv_fct __fct;
  __gconv_init_fct __init_fct;
  __gconv_init_fct __init_fct;
  __gconv_end_fct __end_fct;
  __gconv_end_fct __end_fct;
 
 
  /* Information about the number of bytes needed or produced in this
  /* Information about the number of bytes needed or produced in this
     step.  This helps optimizing the buffer sizes.  */
     step.  This helps optimizing the buffer sizes.  */
  int __min_needed_from;
  int __min_needed_from;
  int __max_needed_from;
  int __max_needed_from;
  int __min_needed_to;
  int __min_needed_to;
  int __max_needed_to;
  int __max_needed_to;
 
 
  /* Flag whether this is a stateful encoding or not.  */
  /* Flag whether this is a stateful encoding or not.  */
  int __stateful;
  int __stateful;
 
 
  void *__data;         /* Pointer to step-local data.  */
  void *__data;         /* Pointer to step-local data.  */
};
};
 
 
/* Additional data for steps in use of conversion descriptor.  This is
/* Additional data for steps in use of conversion descriptor.  This is
   allocated by the `init' function.  */
   allocated by the `init' function.  */
struct __gconv_step_data
struct __gconv_step_data
{
{
  unsigned char *__outbuf;    /* Output buffer for this step.  */
  unsigned char *__outbuf;    /* Output buffer for this step.  */
  unsigned char *__outbufend; /* Address of first byte after the output
  unsigned char *__outbufend; /* Address of first byte after the output
                                 buffer.  */
                                 buffer.  */
 
 
  /* Is this the last module in the chain.  */
  /* Is this the last module in the chain.  */
  int __flags;
  int __flags;
 
 
  /* Counter for number of invocations of the module function for this
  /* Counter for number of invocations of the module function for this
     descriptor.  */
     descriptor.  */
  int __invocation_counter;
  int __invocation_counter;
 
 
  /* Flag whether this is an internal use of the module (in the mb*towc*
  /* Flag whether this is an internal use of the module (in the mb*towc*
     and wc*tomb* functions) or regular with iconv(3).  */
     and wc*tomb* functions) or regular with iconv(3).  */
  int __internal_use;
  int __internal_use;
 
 
  mbstate_t *__statep;
  mbstate_t *__statep;
  mbstate_t __state;    /* This element must not be used directly by
  mbstate_t __state;    /* This element must not be used directly by
                           any module; always use STATEP!  */
                           any module; always use STATEP!  */
 
 
  /* Transliteration information.  */
  /* Transliteration information.  */
  struct __gconv_trans_data *__trans;
  struct __gconv_trans_data *__trans;
};
};
 
 
 
 
/* Combine conversion step description with data.  */
/* Combine conversion step description with data.  */
typedef struct __gconv_info
typedef struct __gconv_info
{
{
  size_t __nsteps;
  size_t __nsteps;
  struct __gconv_step *__steps;
  struct __gconv_step *__steps;
  __extension__ struct __gconv_step_data __data __flexarr;
  __extension__ struct __gconv_step_data __data __flexarr;
} *__gconv_t;
} *__gconv_t;
 
 
#endif /* gconv.h */
#endif /* gconv.h */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.