#include <stdbool.h>
#include <stdint.h>
#include <string.h>
#include <errno.h>
#include <sys/kassert.h>
#include <sys/kdebug.h>
#include <sys/sysctl.h>
Go to the source code of this file.
|
#define | SYSCTL_STR(_PATH, _FLAGS, _DESCRIPTION, _DEFAULT) { #_PATH, SYSCTL_TYPE_STR, _FLAGS, _DESCRIPTION, &SYSCTL_##_PATH }, |
|
#define | SYSCTL_INT(_PATH, _FLAGS, _DESCRIPTION, _DEFAULT) { #_PATH, SYSCTL_TYPE_INT, _FLAGS, _DESCRIPTION, &SYSCTL_##_PATH }, |
|
#define | SYSCTL_BOOL(_PATH, _FLAGS, _DESCRIPTION, _DEFAULT) { #_PATH, SYSCTL_TYPE_BOOL, _FLAGS, _DESCRIPTION, &SYSCTL_##_PATH }, |
|
#define | SYSCTL_STR(_PATH, _FLAGS, _DESCRIPTION, _DEFAULT) SysCtlString SYSCTL_##_PATH = { #_PATH, _DEFAULT }; |
|
#define | SYSCTL_INT(_PATH, _FLAGS, _DESCRIPTION, _DEFAULT) SysCtlInt SYSCTL_##_PATH = { #_PATH, _DEFAULT }; |
|
#define | SYSCTL_BOOL(_PATH, _FLAGS, _DESCRIPTION, _DEFAULT) SysCtlBool SYSCTL_##_PATH = { #_PATH, _DEFAULT }; |
|
◆ SysCtlEntry
Definition at line 10 of file sysctl.c.
Data Fields |
char |
description[128] |
|
int |
flags |
|
void * |
node |
|
char |
path[64] |
|
int |
type |
|
◆ SYSCTL_BOOL [1/2]
#define SYSCTL_BOOL |
( |
|
_PATH, |
|
|
|
_FLAGS, |
|
|
|
_DESCRIPTION, |
|
|
|
_DEFAULT |
|
) |
| { #_PATH, SYSCTL_TYPE_BOOL, _FLAGS, _DESCRIPTION, &SYSCTL_##_PATH }, |
◆ SYSCTL_BOOL [2/2]
#define SYSCTL_BOOL |
( |
|
_PATH, |
|
|
|
_FLAGS, |
|
|
|
_DESCRIPTION, |
|
|
|
_DEFAULT |
|
) |
| SysCtlBool SYSCTL_##_PATH = { #_PATH, _DEFAULT }; |
◆ SYSCTL_INT [1/2]
#define SYSCTL_INT |
( |
|
_PATH, |
|
|
|
_FLAGS, |
|
|
|
_DESCRIPTION, |
|
|
|
_DEFAULT |
|
) |
| { #_PATH, SYSCTL_TYPE_INT, _FLAGS, _DESCRIPTION, &SYSCTL_##_PATH }, |
◆ SYSCTL_INT [2/2]
#define SYSCTL_INT |
( |
|
_PATH, |
|
|
|
_FLAGS, |
|
|
|
_DESCRIPTION, |
|
|
|
_DEFAULT |
|
) |
| SysCtlInt SYSCTL_##_PATH = { #_PATH, _DEFAULT }; |
◆ SYSCTL_STR [1/2]
#define SYSCTL_STR |
( |
|
_PATH, |
|
|
|
_FLAGS, |
|
|
|
_DESCRIPTION, |
|
|
|
_DEFAULT |
|
) |
| { #_PATH, SYSCTL_TYPE_STR, _FLAGS, _DESCRIPTION, &SYSCTL_##_PATH }, |
◆ SYSCTL_STR [2/2]
#define SYSCTL_STR |
( |
|
_PATH, |
|
|
|
_FLAGS, |
|
|
|
_DESCRIPTION, |
|
|
|
_DEFAULT |
|
) |
| SysCtlString SYSCTL_##_PATH = { #_PATH, _DEFAULT }; |
◆ SysCtlEntry
◆ Debug_SysCtl()
void Debug_SysCtl |
( |
int |
argc, |
|
|
const char * |
argv[] |
|
) |
| |
Definition at line 111 of file sysctl.c.
112{
113 int i;
114
115 if (argc == 1) {
116 kprintf(
"%-20s %s\n",
"Name",
"Description");
119 }
120
121 return;
122 }
123
124 if (argc != 2 && argc != 3) {
125 kprintf(
"Usage: sysctl NODE [VALUE]\n");
126 return;
127 }
128
130 if (i == -1) {
131 kprintf(
"Unknown sysctl node!\n");
132 return;
133 }
134
135 if (argc == 2) {
140 break;
141 }
145 break;
146 }
149 kprintf(
"%s: %s\n", argv[1], val->
value ?
"true" :
"false");
150 break;
151 }
152 }
153
154 return;
155 }
156
157 if (argc == 3) {
159 kprintf(
"Sysctl node is read-only!\n");
160 return;
161 }
162
167 break;
168 }
172 break;
173 }
176 if (
strcmp(argv[2],
"0") == 0) {
178 }
else if (
strcmp(argv[2],
"1") == 0) {
180 } else {
182 }
183 break;
184 }
185 }
186 }
187}
int kprintf(const char *fmt,...)
uint64_t Debug_StrToInt(const char *s)
SysCtlEntry SYSCTLTable[]
int strcmp(const char *s1, const char *s2)
char * strncpy(char *to, const char *from, size_t len)
SYSCTL_LIST int SysCtl_Lookup(const char *path)
#define SYSCTL_STR_MAXLENGTH
char value[SYSCTL_STR_MAXLENGTH]
◆ REGISTER_DBGCMD()
◆ SysCtl_GetObject()
void * SysCtl_GetObject |
( |
const char * |
node | ) |
|
Definition at line 69 of file sysctl.c.
70{
72 if (i == -1) {
74 }
75
77}
◆ SysCtl_GetType()
uint64_t SysCtl_GetType |
( |
const char * |
node | ) |
|
Definition at line 58 of file sysctl.c.
59{
61 if (i == -1) {
63 }
64
66}
#define SYSCTL_TYPE_INVALID
◆ SysCtl_Lookup()
Definition at line 45 of file sysctl.c.
46{
47 int i;
48
51 return i;
52 }
53
54 return -1;
55}
◆ SysCtl_SetObject()
uint64_t SysCtl_SetObject |
( |
const char * |
node, |
|
|
void * |
obj |
|
) |
| |
Definition at line 80 of file sysctl.c.
81{
83 if (i == -1) {
85 }
86
88 kprintf(
"Sysctl node is read-only!\n");
90 }
91
95 memcpy(val, obj,
sizeof(*val));
96 }
99 memcpy(val, obj,
sizeof(*val));
100 }
103 memcpy(val, obj,
sizeof(*val));
104 }
105 }
106
107 return 0;
108}
void * memcpy(void *dst, const void *src, size_t len)
◆ SYSCTLTable
Initial value:
Definition at line 25 of file sysctl.c.