Standard library
The Embedded XINU standard library contains a portion of the functions defined by the ANSI standard. The functions parallel the ANSI standard C library as close as possible.
Contents
- 1 Input and Output <stdio.h>
- 2 Character Class Tests <ctype.h>
- 3 String Functions <string.h>
- 4 Utility Functions <stdlib.h>
- 5 Diagnostics <assert.h>
- 6 Variable Argument Lists <stdarg.h>
- 7 Signals <signal.h>
- 8 Date and Time Functions <time.h>
- 9 Implementation-defined Limits <limits.h>
- 10 Not Implemented Headers
Input and Output <stdio.h>
The input and output functions are currently being tested and augmented.
Character Class Tests <ctype.h>
The character class functions are currently being tested and augmented.
String Functions <string.h>
The string functions are currently being tested and augmented.
Utility Functions <stdlib.h>
The utility functions are currently being tested and augmented.
Diagnostics <assert.h>
A macro ASSERT(int expression)
is defined in kernel.h
. No assert.h
header file is included in the Embedded XINU standard library.
Variable Argument Lists <stdarg.h>
Code relating to variable argument lists currently resides in the header vararg.h
This header needs to be tested and migrated to the standard header stdarg.h
.
Signals <signal.h>
Signals are not currently implemented in the XINU standard library. However, this portion of the library would be a beneficial addition for future releases. The header signal.h
provides functionality for handling conditions that arise during execution including termination and error conditions.
Date and Time Functions <time.h>
Dates and times are not currently used in Embedded XINU. However, this portion of the library would be a beneficial addition for future releases. The header time.h
provides functions for date and time formatting and determining current date and time. This header would be more useful after the network driver is complete and Embedded XINU is able to synchronize with an time server.
Implementation-defined Limits <limits.h>
The header limits.h
defines maximum and minimum values for the integral C types. The constants defined are set according to the 32-bit Mips architecture of the supported platforms.
Char
- Bits in a character = 8
- Maximum value of a
char
= +127 - Minimum value of a
char
= -128 - Maximum value of a
signed char
= +127 - Minimum value of a
signed char
= -128 - Maximum value of an
unsigned char
(uchar
) = 255
Int
- Maximum value of an
int
= +2147483647 - Minimum value of an
int
= -2147483648 - Maximum value of an
unsigned int
= 4294967295
Long
- Maximum value of a
long
= +2147483647 - Minimum value of a
long
= -2147483648 - Maximum value of an
unsigned long
(ulong
) = 4294967295
Short
- Maximum value of a
short
= +32767 - Minimum value of a
short
= -32768 - Maximum value of an
unsigned short
(ushort</code) = 65535
Not Implemented Headers
Some of the ANSI standard library headers are not included in the XINU standard library, nor are there reasons to add these headers. The following headers have been excluded due to architectural limitations and lack of feasibility:
math.h
float.h
setjmp.h
locale.h
errno.h
stddef.h