POK(kernelpart)
/home/jaouen/pok_official/pok/trunk/kernel/core/cons.c
Go to the documentation of this file.
00001 /*
00002  *                               POK header
00003  * 
00004  * The following file is a part of the POK project. Any modification should
00005  * made according to the POK licence. You CANNOT use this file or a part of
00006  * this file is this part of a file for your own project
00007  *
00008  * For more information on the POK licence, please see our LICENCE FILE
00009  *
00010  * Please follow the coding guidelines described in doc/CODING_GUIDELINES
00011  *
00012  *                                      Copyright (c) 2007-2009 POK team 
00013  *
00014  * Created by julien on Thu Jan 15 23:34:13 2009 
00015  */
00016 
00017 #if defined (POK_NEEDS_CONSOLE) || defined (POK_NEEDS_DEBUG) || defined (POK_NEEDS_INSTRUMENTATION) || defined (POK_NEEDS_COVERAGE_INFOS)
00018 
00019 #include <arch.h>
00020 #include <errno.h>
00021 #include <core/cons.h>
00022 
00023 
00024 
00025 print_char_fn_t pok_print_char_fn = NULL;
00026 print_attr_fn_t pok_print_attr_fn = NULL;
00027 
00028 
00029 
00030 void pok_print_char (const char c)
00031 {
00032    if (pok_print_char_fn != NULL)
00033    {
00034       return (pok_print_char_fn(c));
00035    }
00036 }
00037 
00038 void pok_print_attr (uint8_t attr)
00039 {
00040    if (pok_print_attr_fn != NULL)
00041    {
00042       pok_print_attr_fn(attr);
00043    }
00044 }
00045 
00046 int pok_write (const char *s, size_t length)
00047 {
00048    size_t i;
00049 
00050    for (i = 0; i < length; i++)
00051    {
00052       pok_print_char (*s++);
00053    }
00054 
00055    return (i);
00056 }
00057 
00058 int pok_print_init (print_char_fn_t print_char_fn,
00059                     print_attr_fn_t print_attr_fn)
00060 {
00061    pok_print_char_fn = print_char_fn;
00062    pok_print_attr_fn = print_attr_fn;
00063 
00064    return (POK_ERRNO_OK);
00065 }
00066 
00067 #endif /* POK_NEEDS_CONSOLE, POK_NEEDS_DEBUG */