Changeset a801688b in mainline


Ignore:
Timestamp:
2012-11-23T20:25:27Z (11 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ec85df0
Parents:
2f33fbc
Message:

Make the SYS_KLOG interface more generic.

  • Define klog methods KLOG_WRITE, KLOG_UPDATE and KLOG_COMMAND.
  • KLOG_COMMAND is to be used to feed commands to the kconsole thread.
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/console/console.h

    r2f33fbc ra801688b  
    6767extern wchar_t getc(indev_t *indev);
    6868extern size_t gets(indev_t *indev, char *buf, size_t buflen);
    69 extern sysarg_t sys_klog(int fd, const void *buf, size_t size);
     69extern sysarg_t sys_klog(int cmd, const void *buf, size_t size);
    7070
    7171extern void grab_console(void);
  • kernel/generic/src/console/console.c

    r2f33fbc ra801688b  
    5252#include <errno.h>
    5353#include <str.h>
     54#include <abi/klog.h>
    5455
    5556#define KLOG_PAGES    8
     
    335336 *
    336337 */
    337 sysarg_t sys_klog(int fd, const void *buf, size_t size)
     338sysarg_t sys_klog(int cmd, const void *buf, size_t size)
    338339{
    339340        char *data;
    340341        int rc;
    341        
     342
     343        switch (cmd) {
     344        case KLOG_UPDATE:
     345                klog_update(NULL);
     346                return EOK;
     347        case KLOG_WRITE:
     348        case KLOG_COMMAND:
     349                break;
     350        default:
     351                return ENOTSUP;
     352        }
     353
    342354        if (size > PAGE_SIZE)
    343355                return (sysarg_t) ELIMIT;
  • uspace/lib/c/generic/io/klog.c

    r2f33fbc ra801688b  
    3939#include <unistd.h>
    4040#include <errno.h>
     41#include <abi/klog.h>
    4142#include <io/klog.h>
    4243#include <io/printf_core.h>
     
    4445size_t klog_write(const void *buf, size_t size)
    4546{
    46         ssize_t ret = (ssize_t) __SYSCALL3(SYS_KLOG, 1, (sysarg_t) buf, size);
     47        ssize_t ret = (ssize_t) __SYSCALL3(SYS_KLOG, KLOG_WRITE, (sysarg_t) buf, size);
    4748       
    4849        if (ret >= 0)
     
    5455void klog_update(void)
    5556{
    56         (void) __SYSCALL3(SYS_KLOG, 1, (uintptr_t) NULL, 0);
     57        (void) __SYSCALL3(SYS_KLOG, KLOG_UPDATE, (uintptr_t) NULL, 0);
    5758}
    5859
  • uspace/lib/c/include/stdio.h

    r2f33fbc ra801688b  
    4040#include <str.h>
    4141#include <io/verify.h>
     42#include <abi/klog.h>
    4243
    4344#define EOF  (-1)
     
    5152                int _n = snprintf(_buf, sizeof(_buf), fmt, ##__VA_ARGS__); \
    5253                if (_n > 0) \
    53                         (void) __SYSCALL3(SYS_KLOG, 1, (sysarg_t) _buf, str_size(_buf)); \
     54                        (void) __SYSCALL3(SYS_KLOG, KLOG_WRITE, (sysarg_t) _buf, str_size(_buf)); \
    5455        }
    5556
Note: See TracChangeset for help on using the changeset viewer.