/* Header for module libc, generated by p2c */
#ifndef libcH 
#define libcH 

/*
#ifndef SYSTEMH
#include "SYSTEM.h"
#endif
*/

#ifdef libcG 
# define vextern 
#else 
# define vextern extern 
#endif 

/*
   Author     : Gaius Mulley
   Title      : libc
   Date       : Wed Jun  6 11:49:37 BST 1990
   Description: Provides an interface to the c library functions.
   Last update: Wed Jun  6 11:49:55 BST 1990
*/




/*
     int write(d, buf, nbytes)
     int d;
     char *buf;
     int nbytes;
*/

extern long libc_write PP((long nbytes, Anyptr buf, long d));


/*
     int read(d, buf, nbytes)
     int d;
     char *buf;
     int nbytes;
*/

extern long libc_read PP((long nbytes, Anyptr buf, long d));


/*
     system(string)
     char *string;
*/

extern int libc_system PP((Anyptr a));


/*
     abort - generate a fault

     abort() first closes all open files if possible, then sends
     an IOT signal to the process.  This signal usually results
     in termination with a core dump, which may be used for
     debugging.

     It is possible for abort() to return control if is caught or
     ignored, in which case the value returned is that of the
     kill(2V) system call.
*/

extern Void libc_abort PV();


/*
   malloc and cfree.

DESCRIPTION
     These routines provide a general-purpose memory allocation
     package.  They maintain a table of free blocks for efficient
     allocation and coalescing of free storage.  When there is no
     suitable space already free, the allocation routines call
     sbrk() (see brk(2)) to get more memory from the system.

     Each of the allocation routines returns a pointer to space
     suitably aligned for storage of any type of object. Each
     returns a NULL pointer if the request cannot be completed.
*/


/*
     malloc - memory allocator.

     char *malloc(size)
     unsigned size;

     malloc() returns a pointer to a block of at least size
     bytes, which is appropriately aligned.  If size is zero,
     malloc() returns a non-NULL pointer, but this pointer should
     not be dereferenced.
*/

extern Anyptr libc_malloc PP((unsigned long size));


/*
     cfree - memory deallocator.

     cfree(ptr)
     char *ptr;

     free() releases a previously allocated block.  Its argument
     is a pointer to a block previously allocated by malloc, cal-
     loc, realloc, malloc, or memalign.
*/

extern Void libc_cfree PP((Anyptr ptr));


extern char **libc_environ PV();

extern Void libc_exit PP((int));

#undef vextern 

#endif /*libcH*/ 

/* End. */