Changeset d9fae235 in mainline for kernel/generic/include/sysinfo/sysinfo.h
- Timestamp:
- 2010-04-17T01:28:38Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9d6bfa5
- Parents:
- 9256ad29
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/sysinfo/sysinfo.h
r9256ad29 rd9fae235 41 41 extern bool fb_exported; 42 42 43 typedef union sysinfo_item_val { 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 { 44 69 unative_t val; 45 void *fn; 70 sysinfo_fn_val_t fn_val; 71 sysinfo_fn_data_t fn_data; 72 sysinfo_data_t data; 46 73 } sysinfo_item_val_t; 74 75 typedef union { 76 struct sysinfo_item *table; 77 sysinfo_fn_subtree_t find_item; 78 } sysinfo_subtree_t; 47 79 48 80 typedef struct sysinfo_item { 49 81 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 89 struct sysinfo_item *next; 90 } sysinfo_item_t; 91 92 typedef struct { 93 sysinfo_item_val_type_t tag; 50 94 union { 51 95 unative_t val; 52 void *fn; 53 } val; 96 sysinfo_data_t data; 97 }; 98 } sysinfo_return_t; 54 99 55 union { 56 struct sysinfo_item *table; 57 void *fn; 58 } subinfo; 100 extern void sysinfo_init(void); 59 101 60 struct sysinfo_item *next; 61 int val_type; 62 int subinfo_type; 63 } sysinfo_item_t; 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 **); 64 110 65 #define SYSINFO_VAL_VAL 0 66 #define SYSINFO_VAL_FUNCTION 1 67 #define SYSINFO_VAL_UNDEFINED U_SPECIAL 111 extern sysinfo_return_t sysinfo_get_item(const char *, sysinfo_item_t **); 112 extern void sysinfo_dump(sysinfo_item_t **, unsigned int); 68 113 69 #define SYSINFO_SUBINFO_NONE 0 70 #define SYSINFO_SUBINFO_TABLE 1 71 #define SYSINFO_SUBINFO_FUNCTION 2 72 73 typedef unative_t (*sysinfo_val_fn_t)(sysinfo_item_t *root); 74 typedef unative_t (*sysinfo_subinfo_fn_t)(const char *subname); 75 76 typedef struct sysinfo_rettype { 77 unative_t val; 78 unative_t valid; 79 } sysinfo_rettype_t; 80 81 void sysinfo_set_item_val(const char *name, sysinfo_item_t **root, unative_t val); 82 void sysinfo_dump(sysinfo_item_t **root, int depth); 83 void sysinfo_set_item_function(const char *name, sysinfo_item_t **root, sysinfo_val_fn_t fn); 84 void sysinfo_set_item_undefined(const char *name, sysinfo_item_t **root); 85 86 sysinfo_rettype_t sysinfo_get_val(const char *name, sysinfo_item_t **root); 87 88 unative_t sys_sysinfo_valid(unative_t ptr, unative_t len); 89 unative_t sys_sysinfo_value(unative_t ptr, unative_t len); 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); 90 118 91 119 #endif
Note:
See TracChangeset
for help on using the changeset viewer.