1*3fe5961aSDevin Teske /* 2*3fe5961aSDevin Teske * Copyright (c) 2013-2026 Devin Teske <dteske@FreeBSD.org> 3*3fe5961aSDevin Teske * Copyright (c) 2021-2026 Faraz Vahedi <kfv@FreeBSD.org> 4*3fe5961aSDevin Teske * 5*3fe5961aSDevin Teske * SPDX-License-Identifier: BSD-2-Clause 6*3fe5961aSDevin Teske */ 7*3fe5961aSDevin Teske 8*3fe5961aSDevin Teske #include "bsdconf_formats.h" 9*3fe5961aSDevin Teske 10*3fe5961aSDevin Teske /* 11*3fe5961aSDevin Teske * BSDCONF_FORMAT_SYSCTL: sysctl.conf(5) 12*3fe5961aSDevin Teske * 13*3fe5961aSDevin Teske * Assignments in the format of the sysctl(8) command, whose file parser 14*3fe5961aSDevin Teske * trims whitespace around the `=' and strips one pair of quotes around the 15*3fe5961aSDevin Teske * value, so values are written unquoted unless quoting is required to 16*3fe5961aSDevin Teske * round-trip (embedded whitespace or a comment character). 17*3fe5961aSDevin Teske * 18*3fe5961aSDevin Teske * Sourced at boot in the order below: the first two by rc.d/sysctl (and 19*3fe5961aSDevin Teske * again by rc.d/sysctl_lastload), the module-specific drop-in by 20*3fe5961aSDevin Teske * rc.subr(8)'s load_kld when the named kernel module loads. 21*3fe5961aSDevin Teske */ 22*3fe5961aSDevin Teske static const struct bsdconf_source bsdconf_sysctl_sources[] = { 23*3fe5961aSDevin Teske { BSDCONF_SOURCE_FILE, "/etc/sysctl.conf" }, 24*3fe5961aSDevin Teske { BSDCONF_SOURCE_FILE, "/etc/sysctl.conf.local" }, 25*3fe5961aSDevin Teske { BSDCONF_SOURCE_MODDIR, "/etc/sysctl.kld.d" }, 26*3fe5961aSDevin Teske { BSDCONF_SOURCE_FILE, NULL }, 27*3fe5961aSDevin Teske }; 28*3fe5961aSDevin Teske 29*3fe5961aSDevin Teske const struct bsdconf_format_def bsdconf_format_sysctl_def = { 30*3fe5961aSDevin Teske .keyword = "sysctl", 31*3fe5961aSDevin Teske .path = "/etc/sysctl.conf", 32*3fe5961aSDevin Teske .sources = bsdconf_sysctl_sources, 33*3fe5961aSDevin Teske .processing = BSDCONF_BREAK_ON_EQUALS | BSDCONF_CASE_SENSITIVE | 34*3fe5961aSDevin Teske BSDCONF_REQUIRE_EQUALS, 35*3fe5961aSDevin Teske .put = BSDCONF_PUT_ALLOW_EMPTY, 36*3fe5961aSDevin Teske }; 37