Changes in kernel/generic/src/printf/vprintf.c [690ad20:28a5ebd] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/printf/vprintf.c
r690ad20 r28a5ebd 33 33 */ 34 34 35 #include <print.h> 36 #include <printf/printf_core.h> 37 #include <putchar.h> 38 #include <synch/spinlock.h> 35 39 #include <arch/asm.h> 36 #include <console/console.h> 37 #include <print.h> 38 #include <printf_core.h> 40 #include <typedefs.h> 39 41 #include <str.h> 40 #include <synch/spinlock.h>41 #include <typedefs.h>42 42 43 static errno_t vprintf_str_write(const char *str, size_t size, void *data)43 static int vprintf_str_write(const char *str, size_t size, void *data) 44 44 { 45 putstr(str, size); 46 return EOK; 45 size_t offset = 0; 46 size_t chars = 0; 47 48 while (offset < size) { 49 putuchar(str_decode(str, &offset, size)); 50 chars++; 51 } 52 53 return chars; 54 } 55 56 static int vprintf_wstr_write(const char32_t *str, size_t size, void *data) 57 { 58 size_t offset = 0; 59 size_t chars = 0; 60 61 while (offset < size) { 62 putuchar(str[chars]); 63 chars++; 64 offset += sizeof(char32_t); 65 } 66 67 return chars; 47 68 } 48 69 49 70 int puts(const char *str) 50 71 { 51 size_t n = str_size(str); 52 putstr(str, n); 53 return n; 72 size_t offset = 0; 73 size_t chars = 0; 74 char32_t uc; 75 76 while ((uc = str_decode(str, &offset, STR_NO_LIMIT)) != 0) { 77 putuchar(uc); 78 chars++; 79 } 80 81 putuchar('\n'); 82 return chars; 54 83 } 55 84 … … 58 87 printf_spec_t ps = { 59 88 vprintf_str_write, 89 vprintf_wstr_write, 60 90 NULL 61 91 }; 62 92 63 console_lock(); 64 int ret = printf_core(fmt, &ps, ap); 65 console_unlock(); 66 return ret; 93 return printf_core(fmt, &ps, ap); 67 94 } 68 95
Note:
See TracChangeset
for help on using the changeset viewer.