2#ifndef __SYS_SYSCTL_H__
3#define __SYS_SYSCTL_H__
15#define SYSCTL_TYPE_INVALID 0
16#define SYSCTL_TYPE_STR 1
17#define SYSCTL_TYPE_INT 2
18#define SYSCTL_TYPE_BOOL 3
20#define SYSCTL_FLAG_RO 1
21#define SYSCTL_FLAG_RW 2
24 SYSCTL_STR(kern_ostype, SYSCTL_FLAG_RO, "OS Type", "Castor") \
25 SYSCTL_INT(kern_hz, SYSCTL_FLAG_RW, "Tick frequency", 100) \
26 SYSCTL_INT(time_tzadj, SYSCTL_FLAG_RW, "Time zone offset in seconds", 0) \
27 SYSCTL_INT(log_syscall, SYSCTL_FLAG_RW, "Syscall log level", 1) \
28 SYSCTL_INT(log_loader, SYSCTL_FLAG_RW, "Loader log level", 1) \
29 SYSCTL_INT(log_vfs, SYSCTL_FLAG_RW, "VFS log level", 1) \
30 SYSCTL_INT(log_o2fs, SYSCTL_FLAG_RW, "O2FS log level", 0) \
31 SYSCTL_INT(log_ide, SYSCTL_FLAG_RW, "IDE log level", 0)
33#define SYSCTL_STR_MAXLENGTH 128
50#define SYSCTL_STR(_PATH, _FLAGS, _DESCRIPTION, _DEFAULT) \
51extern SysCtlString SYSCTL_##_PATH;
52#define SYSCTL_INT(_PATH, _FLAGS, _DESCRIPTION, _DEFAULT) \
53extern SysCtlInt SYSCTL_##_PATH;
54#define SYSCTL_BOOL(_PATH, _FLAGS, _DESCRIPTION, _DEFAULT) \
55extern SysCtlBool SYSCTL_##_PATH;
61#define SYSCTL_GETSTR(_PATH) SYSCTL_##_PATH.value
62#define SYSCTL_SETSTR(_PATH, _VALUE) strncpy(SYSCTL_##_PATH.value, _VALUE, SYSCTL_STR_MAXLENGTH);
63#define SYSCTL_GETINT(_PATH) SYSCTL_##_PATH.value
64#define SYSCTL_SETINT(_PATH, _VALUE) SYSCTL_##_PATH.value = _VALUE
65#define SYSCTL_GETBOOL(_PATH) SYSCTL_##_PATH.value
66#define SYSCTL_SETBOOL(_PATH, _VALUE) SYSCTL_##_PATH.value = _VALUE
#define SYSCTL_STR_MAXLENGTH
char value[SYSCTL_STR_MAXLENGTH]
uint64_t SysCtl_SetObject(const char *node, void *obj)
uint64_t SysCtl_GetType(const char *node)
void * SysCtl_GetObject(const char *node)