/*
 * Libraries and headers for PDC release 3.3 (C) 1989 Lionel Hummel.
 * PDC Software Distribution (C) 1989 Lionel Hummel and Paul Petersen.
 * PDC I/O Library (C) 1987 by J.A. Lydiatt.
 *
 * This code is freely redistributable upon the conditions that this
 * notice remains intact and that modified versions of this file not
 * be included as part of the PDC Software Distribution without the
 * express consent of the copyright holders.  No warrantee of any
 * kind is provided with this code.  For further information, contact:
 *
 *  PDC Software Distribution    Internet:                     BIX:
 *  P.O. Box 4006             or hummel@cs.uiuc.edu            lhummel
 *  Urbana, IL  61801-8801       petersen@uicsrd.csrd.uiuc.edu
 */

/*
 * stdlib.h - Declarations for functions in the standard C library
 *
 * 3.3.91 sjw; use K&R2 prototypes
 * 17.3.91 sjw; more work
 * 15.4.91 sjw; added RAND_MAX
 * 12.10.91 sjw; implement abs(), labs()
 */

#ifndef __STDLIB_H__
#define __STDLIB_H__

#ifndef __STDDEF_H__
#include <stddef.h>
#endif

double        atof(const char *s);
int           atoi(const char *s);
long          atol(const char *s);
double        strtod(const char *s, char **endp);
long          strtol(const char *s, char **endp, int base);
unsigned long strtoul(const char *s, char **endp, int base);
#define       RAND_MAX 0x7fffffff
int           rand(void);
void          srand(unsigned int seed);
void         *calloc(size_t nobj, size_t size);
void         *malloc(size_t size);
void         *realloc(void *p, size_t size);
void          free(void *p);
void          abort(void);
void          exit(int status);
int           atexit(void (*fcn)(void));
int           system(const char *s);
char         *getenv(const char *name);
int           setenv(const char *name, const char *value);
int           putenv(const char *expression);
void          qsort(void *base,
                    size_t n,
                    size_t size,
                    int (*cmp)(const void *, const void *));
int           abs(int n);
long          labs(long n);

#if 0                    /* Not yet implemented */
typedef struct {
    int quot;
    int rem;
    } div_t;

typedef struct {
    long quot;
    long rem;
    } ldiv_t;

char         *bsearch(char *, char *, unsigned, int, int (*compar)());
div_t         div(int, int);
ldiv_t        ldiv(long, long);
#endif /* 0 */

#endif /* __STDLIB_H__ */


