diff options
Diffstat (limited to 'iconv/gconv_int.h')
-rw-r--r-- | iconv/gconv_int.h | 89 |
1 files changed, 49 insertions, 40 deletions
diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h index 5261284d7f..5e0723ed34 100644 --- a/iconv/gconv_int.h +++ b/iconv/gconv_int.h @@ -29,8 +29,8 @@ __BEGIN_DECLS /* Structure for alias definition. Simply to strings. */ struct gconv_alias { - __const char *fromname; - __const char *toname; + const char *fromname; + const char *toname; }; @@ -38,19 +38,41 @@ struct gconv_alias #define GCONV_DEFAULT_BUFSIZE 8160 +/* Structure describing one loaded shared object. This normally are + objects to perform conversation but as a special case the db shared + object is also handled. */ +struct gconv_loaded_object +{ + /* Name of the object. */ + const char *name; + + /* Reference counter for the db functionality. If no conversion is + needed we unload the db library. */ + int counter; + + /* The handle for the shared object. */ + struct link_map *handle; + + /* Pointer to the functions the module defines. */ + gconv_fct fct; + gconv_init_fct init_fct; + gconv_end_fct end_fct; +}; + + /* Description for an available conversion module. */ struct gconv_module { - __const char *from_pattern; - __const char *from_constpfx; + const char *from_pattern; + const char *from_constpfx; size_t from_constpfx_len; - __const regex_t *from_regex; + const regex_t *from_regex; - __const char *to_string; + const char *to_string; int cost; - __const char *module_name; + const char *module_name; }; @@ -65,65 +87,56 @@ extern struct gconv_module **__gconv_modules_db; /* Return in *HANDLE decriptor for transformation from FROMSET to TOSET. */ -extern int __gconv_open __P ((__const char *__toset, __const char *__fromset, - gconv_t *__handle)) +extern int __gconv_open (const char *__toset, const char *__fromset, + gconv_t *__handle) internal_function; /* Free resources associated with transformation descriptor CD. */ -extern int __gconv_close __P ((gconv_t cd)) +extern int __gconv_close (gconv_t cd) internal_function; /* Transform at most *INBYTESLEFT bytes from buffer starting at *INBUF according to rules described by CD and place up to *OUTBYTESLEFT bytes in buffer starting at *OUTBUF. Return number of written characters in *CONVERTED if this pointer is not null. */ -extern int __gconv __P ((gconv_t __cd, - __const char **__inbuf, size_t *__inbytesleft, - char **__outbuf, size_t *__outbytesleft, - size_t *__converted)) +extern int __gconv (gconv_t __cd, const char **__inbuf, size_t *__inbytesleft, + char **__outbuf, size_t *__outbytesleft, + size_t *__converted) internal_function; /* Return in *HANDLE a pointer to an array with *NSTEPS elements describing the single steps necessary for transformation from FROMSET to TOSET. */ -extern int __gconv_find_transform __P ((__const char *__toset, - __const char *__fromset, - struct gconv_step **__handle, - size_t *__nsteps)) +extern int __gconv_find_transform (const char *__toset, const char *__fromset, + struct gconv_step **__handle, + size_t *__nsteps) internal_function; /* Read all the configuration data and cache it. */ -extern void __gconv_read_conf __P ((void)) +extern void __gconv_read_conf (void) internal_function; /* Comparison function to search alias. */ -extern int __gconv_alias_compare __P ((__const void *__p1, - __const void *__p2)); +extern int __gconv_alias_compare (const void *__p1, const void *__p2); /* Clear reference to transformation step implementations which might cause the code to be unloaded. */ -extern int __gconv_close_transform __P ((struct gconv_step *__steps, - size_t __nsteps)) - internal_function; - - -/* Find in the shared object associated with HANDLE for a function with - name NAME. Return function pointer or NULL. */ -extern void *__gconv_find_func __P ((void *__handle, __const char *__name)) +extern int __gconv_close_transform (struct gconv_step *__steps, + size_t __nsteps) internal_function; /* Load shared object named by NAME. If already loaded increment reference count. */ -extern void *__gconv_find_shlib __P ((__const char *__name)) +extern struct gconv_loaded_object *__gconv_find_shlib (const char *__name) internal_function; /* Release shared object. If no further reference is available unload the object. */ -extern int __gconv_release_shlib __P ((void *__handle)) +extern int __gconv_release_shlib (struct gconv_loaded_object *__handle) internal_function; /* Fill STEP with information about builtin module with NAME. */ -extern void __gconv_get_builtin_trans __P ((__const char *__name, - struct gconv_step *__step)) +extern void __gconv_get_builtin_trans (const char *__name, + struct gconv_step *__step) internal_function; @@ -131,9 +144,9 @@ extern void __gconv_get_builtin_trans __P ((__const char *__name, /* Builtin transformations. */ #ifdef _LIBC # define __BUILTIN_TRANS(Name) \ - extern int Name __P ((struct gconv_step *__step, \ - struct gconv_step_data *__data, __const char *__inbuf,\ - size_t *__inlen, size_t *__written, int __do_flush)) + extern int Name (struct gconv_step *__step, struct gconv_step_data *__data, \ + const char *__inbuf, size_t *__inlen, size_t *__written, \ + int __do_flush) __BUILTIN_TRANS (__gconv_transform_dummy); __BUILTIN_TRANS (__gconv_transform_ucs4_utf8); @@ -142,10 +155,6 @@ __BUILTIN_TRANS (__gconv_transform_ucs2_ucs4); __BUILTIN_TRANS (__gconv_transform_ucs4_ucs2); # undef __BUITLIN_TRANS -extern int __gconv_transform_init_rstate __P ((struct gconv_step *__step, - struct gconv_step_data *__data)); -extern void __gconv_transform_end_rstate __P ((struct gconv_step_data *__data)); - #endif __END_DECLS |