Changeset 81df0ce in mainline


Ignore:
Timestamp:
2009-01-31T18:41:22Z (16 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
96a2e45
Parents:
2425349
Message:

make sys_klog atomic

Location:
kernel/generic/src
Files:
2 edited

Legend:

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

    r2425349 r81df0ce  
    6363        struct printf_spec ps = {(int(*)(void *, size_t, void *)) vprintf_write, NULL};
    6464       
    65         int irqpri = interrupts_disable();
     65        ipl_t ipl = interrupts_disable();
    6666        spinlock_lock(&printf_lock);
    6767       
     
    6969       
    7070        spinlock_unlock(&printf_lock);
    71         interrupts_restore(irqpri);
     71        interrupts_restore(ipl);
    7272       
    7373        return ret;
  • kernel/generic/src/syscall/syscall.c

    r2425349 r81df0ce  
    6363static unative_t sys_klog(int fd, const void * buf, size_t count)
    6464{
    65         size_t i;
    6665        char *data;
    6766        int rc;
     
    7170       
    7271        if (count > 0) {
    73                 data = (char *) malloc(count, 0);
     72                data = (char *) malloc(count + 1, 0);
    7473                if (!data)
    7574                        return ENOMEM;
     
    8079                        return rc;
    8180                }
    82        
    83                 for (i = 0; i < count; i++)
    84                         putchar(data[i]);
     81                data[count] = 0;
     82               
     83                printf("%s", data);
    8584                free(data);
    8685        } else
Note: See TracChangeset for help on using the changeset viewer.