Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/printf/vprintf.c

    r28a5ebd r163e34c  
    3333 */
    3434
     35#include <arch/asm.h>
     36#include <console/console.h>
    3537#include <print.h>
    36 #include <printf/printf_core.h>
     38#include <printf_core.h>
    3739#include <putchar.h>
     40#include <str.h>
    3841#include <synch/spinlock.h>
    39 #include <arch/asm.h>
    4042#include <typedefs.h>
    41 #include <str.h>
    4243
    43 static int vprintf_str_write(const char *str, size_t size, void *data)
     44static errno_t vprintf_str_write(const char *str, size_t size, void *data)
    4445{
    4546        size_t offset = 0;
    46         size_t chars = 0;
    4747
    48         while (offset < size) {
     48        while (offset < size)
    4949                putuchar(str_decode(str, &offset, size));
    50                 chars++;
    51         }
    5250
    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;
     51        return EOK;
    6852}
    6953
     
    7458        char32_t uc;
    7559
     60        console_lock();
     61
    7662        while ((uc = str_decode(str, &offset, STR_NO_LIMIT)) != 0) {
    7763                putuchar(uc);
     
    8066
    8167        putuchar('\n');
     68
     69        console_unlock();
    8270        return chars;
    8371}
     
    8775        printf_spec_t ps = {
    8876                vprintf_str_write,
    89                 vprintf_wstr_write,
    9077                NULL
    9178        };
    9279
    93         return printf_core(fmt, &ps, ap);
     80        console_lock();
     81        int ret = printf_core(fmt, &ps, ap);
     82        console_unlock();
     83        return ret;
    9484}
    9585
Note: See TracChangeset for help on using the changeset viewer.