llib-lstdc revision 1.2
1/* $NetBSD: llib-lstdc,v 1.2 1995/07/03 21:25:11 cgd Exp $ */ 2 3/* 4 * Copyright (c) 1994, 1995 Jochen Pohl 5 * All Rights Reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 3. All advertising materials mentioning features or use of this software 16 * must display the following acknowledgement: 17 * This product includes software developed by Jochen Pohl for 18 * The NetBSD Project. 19 * 4. The name of the author may not be used to endorse or promote products 20 * derived from this software without specific prior written permission. 21 * 22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 23 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 24 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 25 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 26 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 27 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 31 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34/* LINTLIBRARY */ 35 36#define _ANSI_SOURCE 37 38#include <assert.h> 39#include <ctype.h> 40#include <errno.h> 41#include <locale.h> 42#include <math.h> 43#include <setjmp.h> 44#include <signal.h> 45#include <stdarg.h> 46#include <stddef.h> 47#include <stdio.h> 48#include <stdlib.h> 49#include <string.h> 50#include <time.h> 51 52/* PROTOLIB1 */ 53 54/* 55 * assert.h 56 */ 57#ifdef __NetBSD__ 58void (__assert)(const char *expression, int line, const char *file); 59#else 60void (assert)(int expression); 61#endif 62 63/* 64 * ctype.h 65 */ 66int (isalnum)(int c); 67int (isalpha)(int c); 68int (iscntrl)(int c); 69int (isdigit)(int c); 70int (isgraph)(int c); 71int (islower)(int c); 72int (isprint)(int c); 73int (ispunct)(int c); 74int (isspace)(int c); 75int (isupper)(int c); 76int (isxdigit)(int c); 77int (tolower)(int c); 78int (toupper)(int c); 79 80/* 81 * errno.h 82 */ 83int (errno); 84 85/* 86 * locale.h 87 */ 88char *(setlocale)(int category, const char *locale); 89struct lconv *(localeconv)(void); 90 91/* 92 * math.h 93 */ 94double (acos)(double x); 95double (asin)(double x); 96double (atan)(double x); 97double (atan2)(double y, double x); 98double (cos)(double x); 99double (sin)(double x); 100double (tan)(double x); 101double (cosh)(double x); 102double (sinh)(double x); 103double (tanh)(double x); 104double (exp)(double x); 105double (frexp)(double value, int *exp); 106double (ldexp)(double x, int exp); 107double (log)(double x); 108double (log10)(double x); 109double (modf)(double value, double *iptr); 110double (pow)(double x, double y); 111double (sqrt)(double x); 112double (ceil)(double x); 113double (fabs)(double x); 114double (floor)(double x); 115double (fmod)(double x, double y); 116 117/* 118 * setjmp.h 119 */ 120int (setjmp)(jmp_buf env); 121void (longjmp)(jmp_buf env, int val); 122 123/* 124 * signal.h 125 */ 126void (*(signal)(int sig, void (*func)(int)))(int); 127int (raise)(int sig); 128 129/* 130 * stdio.h 131 */ 132int (remove)(const char *filename); 133int (rename)(const char *old, const char *new); 134FILE *(tmpfile)(void); 135char *(tmpnam)(char *s); 136int (fclose)(FILE *stream); 137int (fflush)(FILE *stream); 138FILE *(fopen)(const char *filename, const char *mode); 139FILE *(freopen)(const char *filename, const char *mode, FILE *stream); 140void (setbuf)(FILE *stream, char *buf); 141int (setvbuf)(FILE *stream, char *buf, int mode, size_t size); 142/* PRINTFLIKE2 */ 143int (fprintf)(FILE *stream, const char *format, ...); 144/* SCANFLIKE2 */ 145int (fscanf)(FILE *stream, const char *format, ...); 146/* PRINTFLIKE1 */ 147int (printf)(const char *format, ...); 148/* SCANFLIKE1 */ 149int (scanf)(const char *format, ...); 150/* PRINTFLIKE2 */ 151int (sprintf)(char *s, const char *format, ...); 152/* SCANFLIKE2 */ 153int (sscanf)(const char *s, const char *format, ...); 154int (vfprintf)(FILE *stream, const char *format, va_list arg); 155int (vprintf)(const char *format, va_list arg); 156int (vsprintf)(char *s, const char *format, va_list arg); 157int (fgetc)(FILE *stream); 158#ifdef __NetBSD__ 159char *(fgets)(char *s, size_t n, FILE *stream); 160#else 161char *(fgets)(char *s, int n, FILE *stream); 162#endif 163int (fputc)(int c, FILE *stream); 164int (fputs)(const char *s, FILE *stream); 165int (getc)(FILE *stream); 166int (getchar)(void); 167char *(gets)(char *s); 168int (putc)(int c, FILE *stream); 169int (putchar)(int c); 170int (puts)(const char *s); 171int (ungetc)(int c, FILE *stream); 172size_t (fread)(void *ptr, size_t size, size_t nmemb, FILE *stream); 173size_t (fwrite)(const void *ptr, size_t size, size_t nmemb, FILE *stream); 174int (fgetpos)(FILE *stream, fpos_t *pos); 175int (fseek)(FILE *stream, long offset, int whence); 176int (fsetpos)(FILE *stream, const fpos_t *pos); 177#ifdef __NetBSD__ 178long (ftell)(const FILE *stream); 179#else 180long (ftell)(FILE *stream); 181#endif 182void (rewind)(FILE *stream); 183void (clearerr)(FILE *stream); 184int (feof)(FILE *stream); 185int (ferror)(FILE *stream); 186void (perror)(const char *s); 187 188/* 189 * stdlib.h 190 */ 191double (atof)(const char *nptr); 192int (atoi)(const char *nptr); 193long (atol)(const char *nptr); 194double (strtod)(const char *nptr, char **endptr); 195long (strtol)(const char *nptr, char **endptr, int base); 196unsigned long (strtoul)(const char *nptr, char **endptr, int base); 197int (rand)(void); 198void (srand)(unsigned seed); 199void *(calloc)(size_t nmemb, size_t size); 200void (free)(void *ptr); 201void *(malloc)(size_t size); 202void *(realloc)(void *ptr, size_t size); 203void (abort)(void); 204int (atexit)(void (*func)(void)); 205void (exit)(int status); 206char *(getenv)(const char *name); 207int (system)(const char *string); 208void *(bsearch)(const void *key, const void *base, size_t nmemb, 209 size_t size, int (*compar)(const void *, const void *)); 210void (qsort)(void *base, size_t nmemb, size_t size, 211 int (*compar)(const void *, const void *)); 212int (abs)(int j); 213div_t (div)(int numer, int denom); 214long (labs)(long j); 215ldiv_t (ldiv)(long numer, long denom); 216int (mblen)(const char *s, size_t n); 217int (mbtowc)(wchar_t *PWC, const char *s, size_t n); 218int (wctomb)(char *s, wchar_t wchar); 219size_t (mbstowcs)(wchar_t *pwcs, const char *s, size_t n); 220size_t (wcstombs)(char *s, const wchar_t *pwcs, size_t n); 221 222/* 223 * string.h 224 */ 225void *(memcpy)(void *s1, const void *s2, size_t n); 226void *(memmove)(void *s1, const void *s2, size_t n); 227char *(strcpy)(char *s1, const char *s2); 228char *(strncpy)(char *s1, const char *s2, size_t n); 229char *(strcat)(char *s1, const char *s2); 230char *(strncat)(char *s1, const char *s2, size_t n); 231int (memcmp)(const void *s1, const void *s2, size_t n); 232int (strcmp)(const char *s1, const char *s2); 233int (strcoll)(const char *s1, const char *s2); 234int (strncmp)(const char *s1, const char *s2, size_t n); 235size_t (strxfrm)(char *s1, const char *s2, size_t n); 236void *(memchr)(const void *s, int c, size_t n); 237char *(strchr)(const char *s, int c); 238size_t (strcspn)(const char *s1, const char *s2); 239char *(strpbrk)(const char *s1, const char *s2); 240char *(strrchr)(const char *s1, int c); 241size_t (strspn)(const char *s1, const char *s2); 242char *(strstr)(const char *s1, const char *s2); 243char *(strtok)(char *s1, const char *s2); 244void *(memset)(void *s, int c, size_t n); 245char *(strerror)(int errnom); 246size_t (strlen)(const char *s); 247 248/* 249 * time.h 250 */ 251clock_t (clock)(void); 252double (difftime)(time_t time1, time_t time2); 253time_t (mktime)(struct tm *timeptr); 254time_t (time)(time_t *timer); 255char *(asctime)(const struct tm *timeptr); 256char *(ctime)(const time_t *timer); 257struct tm *(gmtime)(const time_t *timer); 258struct tm *(localtime)(const time_t *timer); 259size_t (strftime)(char *s, size_t maxsize, const char *format, 260 const struct tm *timeptr); 261