[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Included Interfaces without documentation update



"Andrew Pham" <andpha@us.ibm.com> writes:

> Hello all,
> 
> Kevin and I had looked at SUSv2, GNU upstream man pages (the one maintained
> by Brouwer Andries), SUS-XCU, SUS-XNS, SUS-IDX, SUS-XBD, SUS-XSH,
> SUS-XCURSES, and we are in the process of looking at ISO-C99 for
> documentation for the included interfaces.  Of the 77 interfaces remain; we
> still are not able to find any info for 58 below:
> 
> 
> _IO_2_1_stderr_
> _IO_2_1_stdin_
> _IO_2_1_stdout_

Those variables are used to implement stdin etc. (from libio/stdio.c):

_IO_FILE *stdin = (FILE *) &_IO_2_1_stdin_;
_IO_FILE *stdout = (FILE *) &_IO_2_1_stdout_;
_IO_FILE *stderr = (FILE *) &_IO_2_1_stderr_;


> _IO_feof
Mangle for feof
> _IO_getc
Mangle for getc
> _IO_putc
Mangle for putc
> _IO_puts
Mangle for puts

> __ctype_b

This is used to implement the isXXX macros (check <ctype.h>):
extern __const unsigned short int *__ctype_b;   /* Characteristics.  */
#define __isctype(c, type) \
  (__ctype_b[(int) (c)] & (unsigned short int) type)
# define isalnum(c)     __isctype((c), _ISalnum)


> __ctype_tolower
> __ctype_toupper

Those are used to implement tolower/toupper efficiently (check <ctype.h>):
extern __const __int32_t *__ctype_tolower; /* Case conversions.  */
extern __const __int32_t *__ctype_toupper; /* Case conversions.  */

extern __inline int
toupper (int __c) __THROW
{
  return __c >= -128 && __c < 256 ? __ctype_toupper[__c] : __c;
}

> __dcgettext
Mangle of dcgettext
> __divdi3
> __environ
> __libc_start_main
> __lxstat

Mangle of lstat - see __fxstat for details.

> __mempcpy
Mangle of mempcpy - see the glibc manual.
> __rawmemchr
Mangle of rawmemchr - see the glibc manual.
> __stpcpy

Mangle of stpcpy - see the glibc manual.

> _environ
> _nl_msg_cat_cntr
> _obstack_begin
> _obstack_newchunk
> _sys_errlist
> _sys_siglist
> adjtime
> alphasort64
Check the glibc manual.
> cfsetspeed
> dcgettext
> dladdr
>From <dladdr.h>:
/* Structure containing information about object searched using
   `dladdr'.  */
typedef struct
{
  __const char *dli_fname;      /* File name of defining object.  */
  void *dli_fbase;              /* Load address of that object.  */
  __const char *dli_sname;      /* Name of nearest symbol.  */
  void *dli_saddr;              /* Exact value of nearest symbol.  */
} Dl_info;

/* Fill in *INFO with the following information about ADDRESS.
   Returns 0 iff no shared object's segments contain that address.  */
extern int dladdr (const void *__address, Dl_info *__info) __THROW;

> errx
> getloadavg
> gettext
> loc2
> newscr
> rexecoptions
> sem_timedwait
> setspent
> sigandset
> sigisemptyset
> sigorset
> strcasestr
> strerror_r
> strndup
See the glibc manual
> strtoq
> strtouq
> strverscmp
> textdomain
See the glibc manual
> vasprintf
> vdprintf
> verrx
> warn
> warnx
> wcstoq
> wcstouq
> 
> Please let us know if anyone has any suggestions with what to do with them
> or would like to help.

Check everything in the glibc manual first, some of these are GNU
extensions and documented there.

Hope the pointers help, I don't have time for real examples but if you
have any detailed questions, feel free to ask me.

Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj



Reply to: