SLOF/lib/libc
Thomas Huth 12278e72d5 libc: Add a simple implementation of an assert() function
... useful for "this should never happen" situations, where
you want to make sure that it really never happens.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
[aik: removed extra ';' and empty line]
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2018-06-07 16:38:42 +10:00
..
ctype Initial import of slof-JX-1.7.0-4 2010-12-01 09:51:44 +11:00
getopt Initial import of slof-JX-1.7.0-4 2010-12-01 09:51:44 +11:00
include libc: Add a simple implementation of an assert() function 2018-06-07 16:38:42 +10:00
stdio libc: Add the snprintf() function 2018-05-29 19:06:14 +10:00
stdlib libc: Check for NULL pointers in free() 2018-05-24 19:03:53 +10:00
string libc: Implement strrchr() 2018-05-24 19:03:52 +10:00
Makefile Initial import of slof-JX-1.7.0-4 2010-12-01 09:51:44 +11:00
README.txt Initial import of slof-JX-1.7.0-4 2010-12-01 09:51:44 +11:00

README.txt

 Standard C library for the SLOF firmware project
 ================================================

To use this library, link your target against the "libc.a" archive.

However, there are some prerequisites before you can use certain parts of the
library:

1) If you want to use malloc() and the like, you have to supply an implemen-
   tation of sbrk() in your own code. malloc() uses sbrk() to get new, free
   memory regions.
   
   Prototype:   void *sbrk(int incr);
   Description: sbrk() increments the available data space by incr bytes and
                returns a pointer to the start of the new area.
   
   See the man-page of sbrk for details about this function.

2) Before you can use the stdio output functions like printf(), puts() and the
   like, you have to provide a standard write() function in your code.
   printf() and the like use write() to print out the strings to the standard
   output.

   Prototype:   ssize_t write(int fd, const void *buf, size_t cnt);
   Description: Write cnt byte from the buffer buf to the stream associated
                with the file descriptor fd.

   The stdio functions will print their output to the stdout channel which is
   assigned with the file descriptor 1 by default. Note that the stdio
   functions will not use open() before calling write(), so if the stdout
   cannel needs to be opened first, you should do that in your start-up code
   before using the libc functions for the first time.
   
3) Before you can use the stdio input functions like scanf() and the
   like, you have to provide a standard read() function in your code.
   scanf() and the like use read() to get the characters from the standard
   input.

   Prototype:   ssize_t read(int fd, void *buf, size_t cnt);
   Description: Read cnt byte from the stream associated with the file
                descriptor fd and put them into the buffer buf.

   The stdio functions will get their input from the stdin channel which is
   assigned with the file descriptor 0 by default. Note that the stdio
   functions will not use open() before calling read(), so if the stdin
   cannel needs to be opened first, you should do that in your start-up code
   before using the libc functions for the first time.