= GIET-VM / TTY0 access functions = [[PageOutline]] The [source:soft/giet_vm/giet_common/utils.c utils.c] and [source:soft/giet_vm/giet_common/utils.h util.h] files define the functions used to access the kernel terminal TTY[0]. The ''_put*'' functions do not take the lock protecting exclusive access. The ''_printf'' function takes the lock protecting exclusive access. They are prefixed by "_" to remind that they can only be executed by a processor in kernel mode. === void _puts( char* string ) === Displays a ''string'' on kernel TTY0. This function does NOT take the TTY0 lock. === void _putx( unsigned int value ) === Displays a 32 bits word as an hexadecimal string on kernel TTY0. This function does NOT take the TTY0 lock. === void _putl( unsigned long long value ) === Displays a 64 bits word as an hexadecimal string on kernel TTY0. This function does NOT take the TTY0 lock. === void _putd( unsigned int value ) === Displays a 32 bits word as an decimal string on kernel TTY0. This function does NOT take the TTY0 lock. === void _printf( char* format, ... ) === Display a format on kernel TTY0. To provide an atomic display, this function takes the lock protecting exclusive access to TTY0, entering a critical section until the lock is released. Only a limited number of formats are supported: * %d : 32 bits signed decimal * %u : 32 bits unsigned decimal * %x : 32 bits unsigned hexa * %l : 64 bits unsigned hexa * %c : char * %s : string === void _getc( char* byte ) === This blocking function uses a polling strategy on the TTY0 status register to get a single character.