Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/sysinfo.c

    rd9fae235 r63f8966  
    3131 */
    3232/** @file
    33  */
     33 */ 
    3434
    3535#include <libc.h>
    3636#include <sysinfo.h>
    3737#include <str.h>
    38 #include <errno.h>
    39 #include <malloc.h>
    40 #include <bool.h>
    4138
    42 sysinfo_item_tag_t sysinfo_get_tag(const char *path)
     39sysarg_t sysinfo_value(const char *name)
    4340{
    44         return (sysinfo_item_tag_t) __SYSCALL2(SYS_SYSINFO_GET_TAG,
    45             (sysarg_t) path, (sysarg_t) str_size(path));
    46 }
    47 
    48 int sysinfo_get_value(const char *path, sysarg_t *value)
    49 {
    50         return (int) __SYSCALL3(SYS_SYSINFO_GET_VALUE, (sysarg_t) path,
    51             (sysarg_t) str_size(path), (sysarg_t) value);
    52 }
    53 
    54 static int sysinfo_get_data_size(const char *path, size_t *size)
    55 {
    56         return (int) __SYSCALL3(SYS_SYSINFO_GET_DATA_SIZE, (sysarg_t) path,
    57             (sysarg_t) str_size(path), (sysarg_t) size);
    58 }
    59 
    60 extern void *sysinfo_get_data(const char *path, size_t *size)
    61 {
    62         while (true) {
    63                 int ret = sysinfo_get_data_size(path, size);
    64                 if (ret != EOK)
    65                         return NULL;
    66                
    67                 void *data = malloc(*size);
    68                 if (data == NULL)
    69                         return NULL;
    70                
    71                 ret = __SYSCALL4(SYS_SYSINFO_GET_DATA, (sysarg_t) path,
    72                     (sysarg_t) str_size(path), (sysarg_t) data, (sysarg_t) *size);
    73                 if (ret == EOK)
    74                         return data;
    75                
    76                 if (ret != ENOMEM)
    77                         return NULL;
    78                
    79                 free(data);
    80         }
     41        return __SYSCALL2(SYS_SYSINFO_VALUE, (sysarg_t) name,
     42            (sysarg_t) str_size(name));
    8143}
    8244
Note: See TracChangeset for help on using the changeset viewer.