Ignore:
File:
1 edited

Legend:

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

    rd9fae235 rd99c1d2  
    4141extern bool fb_exported;
    4242
    43 typedef enum {
    44         SYSINFO_VAL_UNDEFINED = 0,
    45         SYSINFO_VAL_VAL = 1,
    46         SYSINFO_VAL_DATA = 2,
    47         SYSINFO_VAL_FUNCTION_VAL = 3,
    48         SYSINFO_VAL_FUNCTION_DATA = 4
    49 } sysinfo_item_val_type_t;
    50 
    51 typedef enum {
    52         SYSINFO_SUBTREE_NONE = 0,
    53         SYSINFO_SUBTREE_TABLE = 1,
    54         SYSINFO_SUBTREE_FUNCTION = 2
    55 } sysinfo_subtree_type_t;
    56 
    57 struct sysinfo_item;
    58 
    59 typedef unative_t (*sysinfo_fn_val_t)(struct sysinfo_item *);
    60 typedef void *(*sysinfo_fn_data_t)(struct sysinfo_item *, size_t *);
    61 typedef struct sysinfo_item *(*sysinfo_fn_subtree_t)(const char *);
    62 
    63 typedef struct {
    64         void *data;
    65         size_t size;
    66 } sysinfo_data_t;
    67 
    68 typedef union {
     43typedef union sysinfo_item_val {
    6944        unative_t val;
    70         sysinfo_fn_val_t fn_val;
    71         sysinfo_fn_data_t fn_data;
    72         sysinfo_data_t data;
     45        void *fn;
    7346} sysinfo_item_val_t;
    74 
    75 typedef union {
    76         struct sysinfo_item *table;
    77         sysinfo_fn_subtree_t find_item;
    78 } sysinfo_subtree_t;
    7947
    8048typedef struct sysinfo_item {
    8149        char *name;
    82        
    83         sysinfo_item_val_type_t val_type;
    84         sysinfo_item_val_t val;
    85        
    86         sysinfo_subtree_type_t subtree_type;
    87         sysinfo_subtree_t subtree;
    88        
     50        union {
     51                unative_t val;
     52                void *fn;
     53        } val;
     54
     55        union {
     56                struct sysinfo_item *table;
     57                void *fn;
     58        } subinfo;
     59
    8960        struct sysinfo_item *next;
     61        int val_type;
     62        int subinfo_type;
    9063} sysinfo_item_t;
    9164
    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;
     65#define SYSINFO_VAL_VAL        0
     66#define SYSINFO_VAL_FUNCTION   1
     67#define SYSINFO_VAL_UNDEFINED  U_SPECIAL
    9968
    100 extern void sysinfo_init(void);
     69#define SYSINFO_SUBINFO_NONE      0
     70#define SYSINFO_SUBINFO_TABLE     1
     71#define SYSINFO_SUBINFO_FUNCTION  2
    10172
    102 extern void sysinfo_set_item_val(const char *, sysinfo_item_t **, unative_t);
    103 extern void sysinfo_set_item_data(const char *, sysinfo_item_t **, void *,
    104     size_t);
    105 extern void sysinfo_set_item_val_fn(const char *, sysinfo_item_t **,
    106     sysinfo_fn_val_t);
    107 extern void sysinfo_set_item_data_fn(const char *, sysinfo_item_t **,
    108     sysinfo_fn_data_t);
    109 extern void sysinfo_set_item_undefined(const char *, sysinfo_item_t **);
     73typedef unative_t (*sysinfo_val_fn_t)(sysinfo_item_t *root);
     74typedef unative_t (*sysinfo_subinfo_fn_t)(const char *subname);
    11075
    111 extern sysinfo_return_t sysinfo_get_item(const char *, sysinfo_item_t **);
    112 extern void sysinfo_dump(sysinfo_item_t **, unsigned int);
     76typedef struct sysinfo_rettype {
     77        unative_t val;
     78        unative_t valid;
     79} sysinfo_rettype_t;
    11380
    114 unative_t sys_sysinfo_get_tag(void *, size_t);
    115 unative_t sys_sysinfo_get_value(void *, size_t, void *);
    116 unative_t sys_sysinfo_get_data_size(void *, size_t, void *);
    117 unative_t sys_sysinfo_get_data(void *, size_t, void *, size_t);
     81void sysinfo_set_item_val(const char *name, sysinfo_item_t **root, unative_t val);
     82void sysinfo_dump(sysinfo_item_t **root, int depth);
     83void sysinfo_set_item_function(const char *name, sysinfo_item_t **root, sysinfo_val_fn_t fn);
     84void sysinfo_set_item_undefined(const char *name, sysinfo_item_t **root);
     85
     86sysinfo_rettype_t sysinfo_get_val(const char *name, sysinfo_item_t **root);
     87
     88unative_t sys_sysinfo_valid(unative_t ptr, unative_t len);
     89unative_t sys_sysinfo_value(unative_t ptr, unative_t len);
    11890
    11991#endif
Note: See TracChangeset for help on using the changeset viewer.