]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/l4con/lib/src/contxt_write.c
Inital import
[l4.git] / l4 / pkg / l4con / lib / src / contxt_write.c
1 #include "internal.h"
2
3 /** contxt_write
4  *
5  * \param s   output string
6  * \param len string length
7  *
8  * print a string (low-level)
9  */
10 int
11 contxt_write(const char *s, int len)
12 {
13   l4_uint8_t c, strbuf[vtc_cols];
14   int sidx, bidx = 0, x = sb_x;
15     
16   for(sidx = 0; sidx < len; sidx++) 
17     {
18       c = s[sidx];
19     
20       if(c == '\n') 
21         {
22           _flush(strbuf, bidx, 1);
23           bidx = 0;
24           x    = 0;
25           continue;
26         }
27       if(bidx >= vtc_cols || x == vtc_cols)
28         {
29           _flush(strbuf, bidx, 1);
30           bidx = 0;
31           x    = 0;
32         }
33       strbuf[bidx++] = c;
34       x++;
35     }
36   
37   if(bidx != 0)
38     _flush(strbuf, bidx, 0);
39
40   return len;
41 }
42