Ignore:
Timestamp:
2010-04-18T00:24:40Z (14 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a80687e5
Parents:
d8e3467
Message:

sysinfo API cleanup

  • better support for generated subtrees
  • synchronization
  • memory management (generated items cleanup)
  • simplier sysinfo_dump()

remove separate statistical syscalls, replace with virtual sysinfo items (some functionality is still missing)

  • naming consolidation
  • cleaner API
  • proper synchronization

minor renames

  • zone_print_list() → zones_print_list()
  • zone_busy_and_free() → zones_stats()
File:
1 edited

Legend:

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

    rd8e3467 r9dae191e  
    5959typedef unative_t (*sysinfo_fn_val_t)(struct sysinfo_item *);
    6060typedef void *(*sysinfo_fn_data_t)(struct sysinfo_item *, size_t *);
    61 typedef struct sysinfo_item *(*sysinfo_fn_subtree_t)(const char *);
    6261
    6362typedef struct {
     
    7372} sysinfo_item_val_t;
    7473
     74typedef struct {
     75        sysinfo_item_val_type_t tag;
     76        union {
     77                unative_t val;
     78                sysinfo_data_t data;
     79        };
     80} sysinfo_return_t;
     81
     82typedef sysinfo_return_t (*sysinfo_fn_subtree_t)(const char *);
     83
    7584typedef union {
    7685        struct sysinfo_item *table;
    77         sysinfo_fn_subtree_t find_item;
     86        sysinfo_fn_subtree_t get_data;
    7887} sysinfo_subtree_t;
    7988
     
    9099} sysinfo_item_t;
    91100
    92 typedef struct {
    93         sysinfo_item_val_type_t tag;
    94         union {
    95                 unative_t val;
    96                 sysinfo_data_t data;
    97         };
    98 } sysinfo_return_t;
    99 
    100 extern void sysinfo_init(void);
    101 
    102101extern void sysinfo_set_item_val(const char *, sysinfo_item_t **, unative_t);
    103102extern void sysinfo_set_item_data(const char *, sysinfo_item_t **, void *,
    104103    size_t);
    105 extern void sysinfo_set_item_val_fn(const char *, sysinfo_item_t **,
     104extern void sysinfo_set_item_fn_val(const char *, sysinfo_item_t **,
    106105    sysinfo_fn_val_t);
    107 extern void sysinfo_set_item_data_fn(const char *, sysinfo_item_t **,
     106extern void sysinfo_set_item_fn_data(const char *, sysinfo_item_t **,
    108107    sysinfo_fn_data_t);
    109108extern void sysinfo_set_item_undefined(const char *, sysinfo_item_t **);
    110109
    111 extern sysinfo_return_t sysinfo_get_item(const char *, sysinfo_item_t **);
    112 extern void sysinfo_dump(sysinfo_item_t **, unsigned int);
     110extern void sysinfo_set_subtree_fn(const char *, sysinfo_item_t **,
     111    sysinfo_fn_subtree_t);
     112
     113extern void sysinfo_init(void);
     114extern void sysinfo_dump(sysinfo_item_t *);
    113115
    114116unative_t sys_sysinfo_get_tag(void *, size_t);
Note: See TracChangeset for help on using the changeset viewer.