Rev 1787 | Rev 1888 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1787 | Rev 1819 | ||
|---|---|---|---|
| Line 24... | Line 24... | ||
| 24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 27 | */ |
27 | */ |
| 28 | 28 | ||
| 29 | /** @addtogroup generic |
29 | /** @addtogroup generic |
| 30 | * @{ |
30 | * @{ |
| 31 | */ |
31 | */ |
| 32 | /** @file |
32 | /** @file |
| 33 | */ |
33 | */ |
| 34 | 34 | ||
| 35 | #include <arch/types.h> |
35 | #include <arch/types.h> |
| 36 | 36 | ||
| 37 | typedef union sysinfo_item_val |
37 | typedef union sysinfo_item_val { |
| 38 | { |
- | |
| 39 | unative_t val; |
38 | unative_t val; |
| 40 | void *fn; |
39 | void *fn; |
| 41 | }sysinfo_item_val_t; |
40 | } sysinfo_item_val_t; |
| 42 | 41 | ||
| 43 | typedef struct sysinfo_item |
42 | typedef struct sysinfo_item { |
| 44 | { |
- | |
| 45 | char *name; |
43 | char *name; |
| 46 | union |
44 | union { |
| 47 | { |
- | |
| 48 | unative_t val; |
45 | unative_t val; |
| 49 | void *fn; |
46 | void *fn; |
| 50 | }val; |
47 | } val; |
| 51 | 48 | ||
| 52 | union |
49 | union { |
| 53 | { |
- | |
| 54 | struct sysinfo_item *table; |
50 | struct sysinfo_item *table; |
| 55 | void *fn; |
51 | void *fn; |
| 56 | }subinfo; |
52 | } subinfo; |
| 57 | 53 | ||
| 58 | struct sysinfo_item *next; |
54 | struct sysinfo_item *next; |
| 59 | int val_type; |
55 | int val_type; |
| 60 | int subinfo_type; |
56 | int subinfo_type; |
| 61 | }sysinfo_item_t; |
57 | } sysinfo_item_t; |
| 62 | 58 | ||
| 63 | #define SYSINFO_VAL_VAL 0 |
59 | #define SYSINFO_VAL_VAL 0 |
| 64 | #define SYSINFO_VAL_FUNCTION 1 |
60 | #define SYSINFO_VAL_FUNCTION 1 |
| 65 | #define SYSINFO_VAL_UNDEFINED '?' |
61 | #define SYSINFO_VAL_UNDEFINED '?' |
| 66 | 62 | ||
| Line 70... | Line 66... | ||
| 70 | 66 | ||
| 71 | 67 | ||
| 72 | typedef unative_t (*sysinfo_val_fn_t)(sysinfo_item_t *root); |
68 | typedef unative_t (*sysinfo_val_fn_t)(sysinfo_item_t *root); |
| 73 | typedef unative_t (*sysinfo_subinfo_fn_t)(const char *subname); |
69 | typedef unative_t (*sysinfo_subinfo_fn_t)(const char *subname); |
| 74 | 70 | ||
| 75 | typedef struct sysinfo_rettype |
71 | typedef struct sysinfo_rettype { |
| 76 | { |
- | |
| 77 | unative_t val; |
72 | unative_t val; |
| 78 | unative_t valid; |
73 | unative_t valid; |
| 79 | }sysinfo_rettype_t; |
74 | } sysinfo_rettype_t; |
| 80 | 75 | ||
| 81 | void sysinfo_set_item_val(const char *name,sysinfo_item_t **root,unative_t val); |
76 | 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); |
77 | 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); |
78 | 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); |
79 | void sysinfo_set_item_undefined(const char *name,sysinfo_item_t **root); |
| Line 86... | Line 81... | ||
| 86 | sysinfo_rettype_t sysinfo_get_val(const char *name,sysinfo_item_t **root); |
81 | sysinfo_rettype_t sysinfo_get_val(const char *name,sysinfo_item_t **root); |
| 87 | 82 | ||
| 88 | unative_t sys_sysinfo_valid(unative_t ptr,unative_t len); |
83 | unative_t sys_sysinfo_valid(unative_t ptr,unative_t len); |
| 89 | unative_t sys_sysinfo_value(unative_t ptr,unative_t len); |
84 | unative_t sys_sysinfo_value(unative_t ptr,unative_t len); |
| 90 | 85 | ||
| 91 | - | ||
| 92 | - | ||
| 93 | /** @} |
86 | /** @} |
| 94 | */ |
87 | */ |
| 95 | - | ||