this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add kern.sysv.semmns (#692)

+30 -7
+29 -7
src/kernel/emulation/linux/misc/sysctl_kern.c
··· 16 16 17 17 enum { 18 18 _KERN_MSGBUF = 1000, 19 + _KERN_SEMMNS = 1000, 19 20 }; 20 21 21 22 static sysctl_handler(handle_msgbuf); ··· 32 33 static sysctl_handler(handle_maxproc); 33 34 static sysctl_handler(handle_netboot); 34 35 static sysctl_handler(handle_safeboot); 36 + static sysctl_handler(handle_sysv_semmns); 35 37 36 38 extern int _sysctl_proc(int what, int flag, struct kinfo_proc* out, unsigned long* buflen); 37 39 extern int _sysctl_procargs(int pid, char* buf, unsigned long* buflen); 38 40 extern int strlcpy(char* dst, const char* src, __SIZE_TYPE__ dst_size); 39 41 extern __SIZE_TYPE__ strlen(const char* str); 40 42 43 + const struct known_sysctl sysctls_kern_sysv[] = { 44 + { .oid = _KERN_SEMMNS, .type = CTLTYPE_INT, .exttype = "I", .name = "semmns", .handler = handle_sysv_semmns }, 45 + { .oid = -1 } 46 + }; 47 + 41 48 const struct known_sysctl sysctls_kern[] = { 42 49 { .oid = _KERN_MSGBUF, .type = CTLTYPE_STRING, .exttype = "S", .name = "msgbuf", .handler = handle_msgbuf }, 43 50 { .oid = KERN_PROC, .type = CTLTYPE_STRUCT, .exttype = "", .name = "proc", .handler = handle_proc }, ··· 53 60 { .oid = KERN_OSRELEASE, .type = CTLTYPE_STRING, .exttype = "S", .name = "osrelease", .handler = handle_osrelease }, 54 61 { .oid = KERN_VERSION, .type = CTLTYPE_STRING, .exttype = "S", .name = "version", .handler = handle_version }, 55 62 { .oid = KERN_OSVERSION, .type = CTLTYPE_STRING, .exttype = "S", .name = "osversion", .handler = handle_osversion }, 63 + { .oid = KERN_SYSV, .type = CTLTYPE_NODE, .exttype = "", .name = "sysv", .subctls = sysctls_kern_sysv }, 56 64 { .oid = -1 } 57 65 }; 58 66 ··· 220 228 int value = 1024; 221 229 int* ovalue = (int*) old; 222 230 223 - if (!oldlen || *oldlen < sizeof(int)) 231 + if (!oldlen) 224 232 return -EINVAL; 225 233 226 234 if (fd >= 0) ··· 245 253 sysctl_handler(handle_netboot) 246 254 { 247 255 int* ovalue = (int*) old; 248 - 249 - if (!oldlen || *oldlen < sizeof(int)) 256 + if (!oldlen) 250 257 return -EINVAL; 251 - *ovalue = 0; 258 + 259 + if (*oldlen >= sizeof(int)) 260 + *ovalue = 0; 261 + *oldlen = sizeof(int); 252 262 253 263 return 0; 254 264 } ··· 256 266 sysctl_handler(handle_safeboot) 257 267 { 258 268 int* ovalue = (int*) old; 259 - 260 - if (!oldlen || *oldlen < sizeof(int)) 269 + if (!oldlen) 261 270 return -EINVAL; 262 - *ovalue = 0; 271 + 272 + if (*oldlen >= sizeof(int)) 273 + *ovalue = 0; 274 + *oldlen = sizeof(int); 263 275 264 276 return 0; 265 277 } 266 278 279 + sysctl_handler(handle_sysv_semmns) 280 + { 281 + int* ovalue = (int*) old; 282 + if (!oldlen) 283 + return -EINVAL; 284 + if (*oldlen >= sizeof(int)) 285 + *ovalue = -1; 286 + *oldlen = sizeof(int); 287 + return 0; 288 + } 267 289
+1
src/kernel/emulation/linux/misc/sysctl_unspec.c
··· 3 3 4 4 enum { 5 5 _OID_TO_NAME = 1, 6 + // TODO: implement 2 - for listing? 6 7 _NAME_TO_OID = 3, 7 8 _GET_DATA_TYPE = 4, 8 9 };